dop-wallet-v6 1.1.5 → 1.1.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +0 -2
  2. package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
  3. package/dist/services/artifacts/artifact-downloader.js +20 -20
  4. package/dist/services/artifacts/artifact-downloader.js.map +1 -1
  5. package/dist/services/artifacts/artifact-hash.d.ts +1 -2
  6. package/dist/services/artifacts/artifact-hash.js +8 -8
  7. package/dist/services/artifacts/artifact-hash.js.map +1 -1
  8. package/dist/services/artifacts/artifact-store.d.ts +0 -1
  9. package/dist/services/artifacts/artifact-util.d.ts +1 -1
  10. package/dist/services/artifacts/artifact-util.js +18 -26
  11. package/dist/services/artifacts/artifact-util.js.map +1 -1
  12. package/dist/services/artifacts/json/artifact-v2-hashes.json +0 -65
  13. package/dist/services/dop/core/artifacts.d.ts +3 -3
  14. package/dist/services/dop/core/artifacts.js +6 -8
  15. package/dist/services/dop/core/artifacts.js.map +1 -1
  16. package/dist/services/dop/core/engine.d.ts +2 -2
  17. package/dist/services/dop/core/engine.js +13 -16
  18. package/dist/services/dop/core/engine.js.map +1 -1
  19. package/dist/services/dop/core/prover.d.ts +1 -1
  20. package/dist/services/dop/core/prover.js +2 -2
  21. package/dist/services/dop/core/prover.js.map +1 -1
  22. package/dist/services/dop/core/providers.d.ts +3 -3
  23. package/dist/services/dop/core/providers.js +16 -16
  24. package/dist/services/dop/core/providers.js.map +1 -1
  25. package/dist/services/dop/core/shields.d.ts +1 -1
  26. package/dist/services/dop/core/shields.js +2 -2
  27. package/dist/services/dop/core/shields.js.map +1 -1
  28. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  29. package/dist/services/dop/history/transaction-history.js +14 -14
  30. package/dist/services/dop/history/transaction-history.js.map +1 -1
  31. package/dist/services/dop/process/extract-first-note.d.ts +2 -2
  32. package/dist/services/dop/process/extract-first-note.js +15 -15
  33. package/dist/services/dop/process/extract-first-note.js.map +1 -1
  34. package/dist/services/dop/quick-sync/empty-events.d.ts +1 -1
  35. package/dist/services/dop/quick-sync/empty-events.js.map +1 -1
  36. package/dist/services/dop/quick-sync/graph-type-formatters.d.ts +1 -1
  37. package/dist/services/dop/quick-sync/graph-type-formatters.js +15 -15
  38. package/dist/services/dop/quick-sync/graph-type-formatters.js.map +1 -1
  39. package/dist/services/dop/quick-sync/graphql/index.js +5 -5
  40. package/dist/services/dop/quick-sync/graphql/index.js.map +1 -1
  41. package/dist/services/dop/quick-sync/quick-sync-graph.d.ts +1 -1
  42. package/dist/services/dop/quick-sync/quick-sync-graph.js +17 -17
  43. package/dist/services/dop/quick-sync/quick-sync-graph.js.map +1 -1
  44. package/dist/services/dop/util/bytes.d.ts +1 -1
  45. package/dist/services/dop/util/bytes.js +7 -7
  46. package/dist/services/dop/util/bytes.js.map +1 -1
  47. package/dist/services/dop/util/commitment.d.ts +2 -1
  48. package/dist/services/dop/util/commitment.js +4 -5
  49. package/dist/services/dop/util/commitment.js.map +1 -1
  50. package/dist/services/dop/util/crypto.d.ts +2 -2
  51. package/dist/services/dop/util/crypto.js +15 -15
  52. package/dist/services/dop/util/crypto.js.map +1 -1
  53. package/dist/services/dop/util/db.d.ts +1 -1
  54. package/dist/services/dop/util/db.js +2 -2
  55. package/dist/services/dop/util/db.js.map +1 -1
  56. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  57. package/dist/services/dop/wallets/balance-update.js +6 -6
  58. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  59. package/dist/services/dop/wallets/balances.d.ts +2 -2
  60. package/dist/services/dop/wallets/balances.js.map +1 -1
  61. package/dist/services/dop/wallets/wallets.d.ts +2 -4
  62. package/dist/services/dop/wallets/wallets.js +12 -27
  63. package/dist/services/dop/wallets/wallets.js.map +1 -1
  64. package/dist/services/ethers/ethers-util.js +2 -2
  65. package/dist/services/ethers/ethers-util.js.map +1 -1
  66. package/dist/services/transactions/proof-cache.d.ts +1 -1
  67. package/dist/services/transactions/proof-cache.js +16 -16
  68. package/dist/services/transactions/proof-cache.js.map +1 -1
  69. package/dist/services/transactions/tx-cross-contract-calls.d.ts +4 -2
  70. package/dist/services/transactions/tx-cross-contract-calls.js +117 -269
  71. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  72. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  73. package/dist/services/transactions/tx-gas-details.js +24 -36
  74. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  75. package/dist/services/transactions/tx-gas-relayer-fee-estimator.d.ts +4 -1
  76. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js +88 -187
  77. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js.map +1 -1
  78. package/dist/services/transactions/tx-generator.d.ts +5 -4
  79. package/dist/services/transactions/tx-generator.js +42 -71
  80. package/dist/services/transactions/tx-generator.js.map +1 -1
  81. package/dist/services/transactions/tx-notes.d.ts +2 -2
  82. package/dist/services/transactions/tx-notes.js +13 -13
  83. package/dist/services/transactions/tx-notes.js.map +1 -1
  84. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  85. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  86. package/dist/services/transactions/tx-proof-transfer.d.ts +3 -4
  87. package/dist/services/transactions/tx-proof-transfer.js +19 -13
  88. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  89. package/dist/services/transactions/tx-proof-unshield.d.ts +4 -3
  90. package/dist/services/transactions/tx-proof-unshield.js +87 -146
  91. package/dist/services/transactions/tx-proof-unshield.js.map +1 -1
  92. package/dist/services/transactions/tx-shield-base-token.d.ts +2 -2
  93. package/dist/services/transactions/tx-shield-base-token.js +10 -13
  94. package/dist/services/transactions/tx-shield-base-token.js.map +1 -1
  95. package/dist/services/transactions/tx-shield.d.ts +1 -1
  96. package/dist/services/transactions/tx-shield.js +12 -16
  97. package/dist/services/transactions/tx-shield.js.map +1 -1
  98. package/dist/services/transactions/tx-transfer.d.ts +2 -1
  99. package/dist/services/transactions/tx-transfer.js +16 -55
  100. package/dist/services/transactions/tx-transfer.js.map +1 -1
  101. package/dist/services/transactions/tx-unshield.d.ts +3 -1
  102. package/dist/services/transactions/tx-unshield.js +40 -119
  103. package/dist/services/transactions/tx-unshield.js.map +1 -1
  104. package/dist/utils/blocked-address.js +3 -3
  105. package/dist/utils/blocked-address.js.map +1 -1
  106. package/dist/utils/error.js +2 -2
  107. package/dist/utils/error.js.map +1 -1
  108. package/dist/utils/gas-price.d.ts +1 -1
  109. package/dist/utils/gas-price.js +13 -13
  110. package/dist/utils/gas-price.js.map +1 -1
  111. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/services/dop/core/engine.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractLevelDOWN } from 'abstract-leveldown';\nimport {\n DopEngine,\n DopWallet,\n ViewOnlyWallet,\n AbstractWallet,\n EngineEvent,\n MerkletreeHistoryScanEventData,\n MerkletreeHistoryScanUpdateData,\n} from 'dop-engine-v5';\nimport {\n MerkletreeScanUpdateEvent,\n MerkletreeScanStatus,\n} from 'dop-sharedmodel-v5';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport {\n artifactGetterDownloadJustInTime,\n setArtifactStore,\n setUseNativeArtifacts,\n} from './artifacts';\nimport { ArtifactStore } from '../../artifacts/artifact-store';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { quickSyncGraph } from '../quick-sync/quick-sync-graph';\n\nlet engine: Optional<DopEngine>;\n\nexport type EngineDebugger = {\n log: (msg: string) => void;\n error: (error: Error) => void;\n};\n\nexport const getEngine = (): DopEngine => {\n if (!engine) {\n throw new Error('DOP Engine not yet initialized.');\n }\n return engine;\n};\n\nexport const walletForID = (id: string): AbstractWallet => {\n const wallet = engine?.wallets[id];\n if (!wallet) {\n throw new Error('No DOP wallet for ID');\n }\n return wallet;\n};\n\nexport const fullWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof DopWallet)) {\n throw new Error('Can not load View-Only wallet.');\n }\n return wallet ;\n};\n\nexport const viewOnlyWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof ViewOnlyWallet)) {\n throw new Error('Can only load View-Only wallet.');\n }\n return wallet as DopWallet;\n};\n\nconst createEngineDebugger = (): EngineDebugger => {\n return {\n log: (msg: string) => sendMessage(msg),\n error: (error: Error) => sendErrorMessage(error),\n };\n};\n\nexport const setOnMerkletreeScanCallback = (\n onMerkletreeScanCallback: (scanData: MerkletreeScanUpdateEvent) => void,\n) => {\n const engine = getEngine();\n engine.on(\n EngineEvent.MerkletreeHistoryScanStarted,\n ({ chain }: MerkletreeHistoryScanEventData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Started,\n chain,\n progress: 0.0,\n }),\n );\n engine.on(\n EngineEvent.MerkletreeHistoryScanUpdate,\n ({ chain, progress }: MerkletreeHistoryScanUpdateData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Updated,\n chain,\n progress,\n }),\n );\n engine.on(\n EngineEvent.MerkletreeHistoryScanComplete,\n ({ chain }: MerkletreeHistoryScanEventData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Complete,\n chain,\n progress: 1.0,\n }),\n );\n engine.on(\n EngineEvent.MerkletreeHistoryScanIncomplete,\n ({ chain }: MerkletreeHistoryScanEventData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Incomplete,\n chain,\n progress: 1.0,\n }),\n );\n};\n\n/**\n *\n * @param walletSource - Name for your wallet implementation. Encrypted and viewable in private transaction history. Maximum of 16 characters, lowercase.\n * @param db - LevelDOWN compatible database for storing encrypted wallets.\n * @param shouldDebug - Whether to forward Engine debug logs to Logger.\n * @param artifactStore - Persistent store for downloading large artifact files. See Wallet SDK Developer Guide for platform implementations.\n * @param useNativeArtifacts - Whether to download native C++ or web-assembly artifacts. TRUE for mobile. FALSE for nodejs and browser.\n * @param skipMerkletreeScans - Whether to skip merkletree syncs and private balance scans. Only set to TRUE in shield-only applications that don't load private wallets or balances.\n * @returns\n */\nexport const startDopEngine = (\n walletSource: string,\n db: AbstractLevelDOWN,\n shouldDebug: boolean,\n artifactStore: ArtifactStore,\n useNativeArtifacts: boolean,\n skipMerkletreeScans: boolean,\n): void => {\n if (engine) return;\n try {\n engine = new DopEngine(\n walletSource,\n db,\n artifactGetterDownloadJustInTime,\n quickSyncGraph,\n shouldDebug ? createEngineDebugger() : undefined,\n skipMerkletreeScans,\n );\n setArtifactStore(artifactStore);\n setUseNativeArtifacts(useNativeArtifacts);\n } catch (err) {\n throw reportAndSanitizeError(startDopEngine.name, err);\n }\n};\n\nexport const stopDopEngine = async () => {\n await engine?.unload();\n engine = undefined;\n};\n\n\n// 0zk1qy8latj5k07p689yvv7syynynhsqya49fpc7rdxduejcu5kjmgz9pxus3llllllll7y42drr9smwxaxzfu0dhafyn55a9c33tkj2y4sjff7svrcs6djnums8cds\n// 0zk1qy8latj5k07p689yvv7syynynhsqya49fpc7rdxduejcu5kjmgz9pxus3llllllll7y42drr9smwxaxzfu0dhafyn55a9c33tkj2y4sjff7svrcs6djnums8cds\n// 0zk1qyzta4s56qmtuskjsz67rqfdzjudl4kj4rjcd5z69qvytag4hgcraxus3llllllll7dqm9dnmewju0f92s0qsxme2fd3tpvumywc28zszs797jha57jmwclluwl"]}
1
+ {"version":3,"file":"engine.js","sourceRoot":"","sources":["../../../../src/services/dop/core/engine.ts"],"names":[],"mappings":"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","sourcesContent":["import type { AbstractLevelDOWN } from 'abstract-leveldown';\nimport {\n DopEngine,\n DopWallet,\n ViewOnlyWallet,\n AbstractWallet,\n EngineEvent,\n MerkletreeHistoryScanEventData,\n MerkletreeHistoryScanUpdateData,\n} from 'dop-engine';\nimport {\n MerkletreeScanUpdateEvent,\n MerkletreeScanStatus,\n} from 'dop-sharedmodel';\nimport { sendErrorMessage, sendMessage } from '../../../utils/logger';\nimport {\n artifactGetterDownloadJustInTime,\n setArtifactStore,\n setUseNativeArtifacts,\n} from './artifacts';\nimport { ArtifactStore } from '../../artifacts/artifact-store';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { quickSyncGraph } from '../quick-sync/quick-sync-graph';\n\nlet engine: Optional<DopEngine>;\n\nexport type EngineDebugger = {\n log: (msg: string) => void;\n error: (error: Error) => void;\n};\n\nexport const getEngine = (): DopEngine => {\n if (!engine) {\n throw new Error('DOP Engine not yet initialized.');\n }\n return engine;\n};\n\nexport const walletForID = (id: string): AbstractWallet => {\n const wallet = engine?.wallets[id];\n if (!wallet) {\n throw new Error('No DOP wallet for ID');\n }\n return wallet;\n};\n\nexport const fullWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof DopWallet)) {\n throw new Error('Can not load View-Only wallet.');\n }\n return wallet ;\n};\n\nexport const viewOnlyWalletForID = (id: string): DopWallet => {\n const wallet = walletForID(id);\n if (!(wallet instanceof ViewOnlyWallet)) {\n throw new Error('Can only load View-Only wallet.');\n }\n return wallet as DopWallet;\n};\n\nconst createEngineDebugger = (): EngineDebugger => {\n return {\n log: (msg: string) => sendMessage(msg),\n error: (error: Error) => sendErrorMessage(error),\n };\n};\n\nexport const setOnMerkletreeScanCallback = (\n onMerkletreeScanCallback: (scanData: MerkletreeScanUpdateEvent) => void,\n) => {\n const engine = getEngine();\n engine.on(\n EngineEvent.MerkletreeHistoryScanStarted,\n ({ chain }: MerkletreeHistoryScanEventData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Started,\n chain,\n progress: 0.0,\n }),\n );\n engine.on(\n EngineEvent.MerkletreeHistoryScanUpdate,\n ({ chain, progress }: MerkletreeHistoryScanUpdateData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Updated,\n chain,\n progress,\n }),\n );\n engine.on(\n EngineEvent.MerkletreeHistoryScanComplete,\n ({ chain }: MerkletreeHistoryScanEventData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Complete,\n chain,\n progress: 1.0,\n }),\n );\n engine.on(\n EngineEvent.MerkletreeHistoryScanIncomplete,\n ({ chain }: MerkletreeHistoryScanEventData) =>\n onMerkletreeScanCallback({\n scanStatus: MerkletreeScanStatus.Incomplete,\n chain,\n progress: 1.0,\n }),\n );\n};\n\n/**\n *\n * @param walletSource - Name for your wallet implementation. Encrypted and viewable in private transaction history. Maximum of 16 characters, lowercase.\n * @param db - LevelDOWN compatible database for storing encrypted wallets.\n * @param shouldDebug - Whether to forward Engine debug logs to Logger.\n * @param artifactStore - Persistent store for downloading large artifact files. See Wallet SDK Developer Guide for platform implementations.\n * @param useNativeArtifacts - Whether to download native C++ or web-assembly artifacts. TRUE for mobile. FALSE for nodejs and browser.\n * @param skipMerkletreeScans - Whether to skip merkletree syncs and private balance scans. Only set to TRUE in shield-only applications that don't load private wallets or balances.\n * @returns\n */\nexport const startDopEngine = (\n walletSource: string,\n db: AbstractLevelDOWN,\n shouldDebug: boolean,\n artifactStore: ArtifactStore,\n useNativeArtifacts: boolean,\n skipMerkletreeScans: boolean,\n): void => {\n if (engine) return;\n try {\n engine = new DopEngine(\n walletSource,\n db,\n artifactGetterDownloadJustInTime,\n quickSyncGraph,\n shouldDebug ? createEngineDebugger() : undefined,\n skipMerkletreeScans,\n );\n setArtifactStore(artifactStore);\n setUseNativeArtifacts(useNativeArtifacts);\n } catch (err) {\n throw reportAndSanitizeError(startDopEngine.name, err);\n }\n};\n\nexport const stopDopEngine = async () => {\n await engine?.unload();\n engine = undefined;\n};\n"]}
@@ -1,3 +1,3 @@
1
- import { FormattedCircuitInputs, Groth16, Proof, Prover } from 'dop-engine-v5';
1
+ import { FormattedCircuitInputs, Groth16, Proof, Prover } from 'dop-engine';
2
2
  export declare const getProver: () => Prover;
3
3
  export { FormattedCircuitInputs, Proof, Groth16 };
@@ -2,10 +2,10 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getProver = void 0;
4
4
  const engine_1 = require("./engine");
5
- const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
5
+ const dop_sharedmodel_1 = require("dop-sharedmodel");
6
6
  const getProver = () => {
7
7
  const engine = (0, engine_1.getEngine)();
8
- if (!(0, dop_sharedmodel_v5_1.isDefined)(engine)) {
8
+ if (!(0, dop_sharedmodel_1.isDefined)(engine)) {
9
9
  throw new Error('DOP Engine not yet init. Please reload your app or try again.');
10
10
  }
11
11
  return engine.prover;
@@ -1 +1 @@
1
- {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../../src/services/dop/core/prover.ts"],"names":[],"mappings":";;;AAMA,qCAAqC;AACrC,2DAA+C;AAExC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC,IAAA,8BAAS,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB","sourcesContent":["import {\n FormattedCircuitInputs,\n Groth16,\n Proof,\n Prover,\n} from 'dop-engine-v5';\nimport { getEngine } from './engine';\nimport { isDefined } from 'dop-sharedmodel-v5';\n\nexport const getProver = (): Prover => {\n const engine = getEngine();\n if (!isDefined(engine)) {\n throw new Error(\n 'DOP Engine not yet init. Please reload your app or try again.',\n );\n }\n return engine.prover;\n};\n\nexport { FormattedCircuitInputs, Proof, Groth16 };\n"]}
1
+ {"version":3,"file":"prover.js","sourceRoot":"","sources":["../../../../src/services/dop/core/prover.ts"],"names":[],"mappings":";;;AAMA,qCAAqC;AACrC,qDAA4C;AAErC,MAAM,SAAS,GAAG,GAAW,EAAE;IACpC,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,IAAI,CAAC,IAAA,2BAAS,EAAC,MAAM,CAAC,EAAE;QACtB,MAAM,IAAI,KAAK,CACb,+DAA+D,CAChE,CAAC;KACH;IACD,OAAO,MAAM,CAAC,MAAM,CAAC;AACvB,CAAC,CAAC;AARW,QAAA,SAAS,aAQpB","sourcesContent":["import {\n FormattedCircuitInputs,\n Groth16,\n Proof,\n Prover,\n} from 'dop-engine';\nimport { getEngine } from './engine';\nimport { isDefined } from 'dop-sharedmodel';\n\nexport const getProver = (): Prover => {\n const engine = getEngine();\n if (!isDefined(engine)) {\n throw new Error(\n 'DOP Engine not yet init. Please reload your app or try again.',\n );\n }\n return engine.prover;\n};\n\nexport { FormattedCircuitInputs, Proof, Groth16 };\n"]}
@@ -1,11 +1,11 @@
1
- import { FallbackProviderJsonConfig, NetworkName, LoadProviderResponse } from 'dop-sharedmodel-v5';
2
- import { DopSmartWalletContract, RelayAdaptContract, PollingJsonRpcProvider } from 'dop-engine-v5';
1
+ import { FallbackProviderJsonConfig, NetworkName, LoadProviderResponse } from 'dop-sharedmodel';
2
+ import { DopSmartWalletContract, RelayAdaptContract, PollingJsonRpcProvider } from 'dop-engine';
3
3
  import { FallbackProvider } from 'ethers';
4
4
  export declare const getFallbackProviderForNetwork: (networkName: NetworkName) => FallbackProvider;
5
5
  export declare const getPollingProviderForNetwork: (networkName: NetworkName) => PollingJsonRpcProvider;
6
6
  export declare const setFallbackProviderForNetwork: (networkName: NetworkName, provider: FallbackProvider) => void;
7
7
  export declare const setPollingProviderForNetwork: (networkName: NetworkName, provider: PollingJsonRpcProvider) => void;
8
- export declare const getMerkleTreeForNetwork: (networkName: NetworkName) => import("dop-engine-v5/dist/merkletree/merkletree").MerkleTree;
8
+ export declare const getMerkleTreeForNetwork: (networkName: NetworkName) => import("dop-engine/dist/merkletree/merkletree").MerkleTree;
9
9
  export declare const getDopSmartWalletContractForNetwork: (networkName: NetworkName) => DopSmartWalletContract;
10
10
  export declare const getRelayAdaptContractForNetwork: (networkName: NetworkName) => RelayAdaptContract;
11
11
  /**
@@ -1,16 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resumeIsolatedPollingProviderForNetwork = exports.pauseAllPollingProviders = exports.unloadProvider = exports.loadProvider = exports.getRelayAdaptContractForNetwork = exports.getDopSmartWalletContractForNetwork = exports.getMerkleTreeForNetwork = exports.setPollingProviderForNetwork = exports.setFallbackProviderForNetwork = exports.getPollingProviderForNetwork = exports.getFallbackProviderForNetwork = void 0;
4
- const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
4
+ const dop_sharedmodel_1 = require("dop-sharedmodel");
5
5
  const logger_1 = require("../../../utils/logger");
6
6
  const engine_1 = require("./engine");
7
- const dop_engine_v5_1 = require("dop-engine-v5");
7
+ const dop_engine_1 = require("dop-engine");
8
8
  const error_1 = require("../../../utils/error");
9
9
  const fallbackProviderMap = {};
10
10
  const pollingProviderMap = {};
11
11
  const getFallbackProviderForNetwork = (networkName) => {
12
12
  const provider = fallbackProviderMap[networkName];
13
- if (!(0, dop_sharedmodel_v5_1.isDefined)(provider)) {
13
+ if (!(0, dop_sharedmodel_1.isDefined)(provider)) {
14
14
  throw new Error(`Provider not yet loaded for network ${networkName}`);
15
15
  }
16
16
  return provider;
@@ -18,7 +18,7 @@ const getFallbackProviderForNetwork = (networkName) => {
18
18
  exports.getFallbackProviderForNetwork = getFallbackProviderForNetwork;
19
19
  const getPollingProviderForNetwork = (networkName) => {
20
20
  const provider = pollingProviderMap[networkName];
21
- if (!(0, dop_sharedmodel_v5_1.isDefined)(provider)) {
21
+ if (!(0, dop_sharedmodel_1.isDefined)(provider)) {
22
22
  throw new Error(`Polling provider not yet loaded for network ${networkName}`);
23
23
  }
24
24
  return provider;
@@ -33,30 +33,30 @@ const setPollingProviderForNetwork = (networkName, provider) => {
33
33
  };
34
34
  exports.setPollingProviderForNetwork = setPollingProviderForNetwork;
35
35
  const getMerkleTreeForNetwork = (networkName) => {
36
- const network = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
36
+ const network = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
37
37
  const { chain } = network;
38
38
  const merkleTree = (0, engine_1.getEngine)().merkletrees[chain.type][chain.id];
39
- if (!(0, dop_sharedmodel_v5_1.isDefined)(merkleTree)) {
39
+ if (!(0, dop_sharedmodel_1.isDefined)(merkleTree)) {
40
40
  throw new Error(`MerkleTree not yet loaded for network ${network.publicName}`);
41
41
  }
42
42
  return merkleTree;
43
43
  };
44
44
  exports.getMerkleTreeForNetwork = getMerkleTreeForNetwork;
45
45
  const getDopSmartWalletContractForNetwork = (networkName) => {
46
- const network = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
46
+ const network = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
47
47
  const { chain } = network;
48
48
  const dopSmartWalletContract = (0, engine_1.getEngine)().dopSmartWalletContracts[chain.type][chain.id];
49
- if (!(0, dop_sharedmodel_v5_1.isDefined)(dopSmartWalletContract)) {
49
+ if (!(0, dop_sharedmodel_1.isDefined)(dopSmartWalletContract)) {
50
50
  throw new Error(`DopSmartWallet contract not yet loaded for network ${network.publicName}`);
51
51
  }
52
52
  return dopSmartWalletContract;
53
53
  };
54
54
  exports.getDopSmartWalletContractForNetwork = getDopSmartWalletContractForNetwork;
55
55
  const getRelayAdaptContractForNetwork = (networkName) => {
56
- const network = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
56
+ const network = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
57
57
  const { chain } = network;
58
58
  const relayAdaptContract = (0, engine_1.getEngine)().relayAdaptContracts[chain.type][chain.id];
59
- if (!(0, dop_sharedmodel_v5_1.isDefined)(relayAdaptContract)) {
59
+ if (!(0, dop_sharedmodel_1.isDefined)(relayAdaptContract)) {
60
60
  throw new Error(`Relay Adapt contract not yet loaded for network ${network.publicName}`);
61
61
  }
62
62
  return relayAdaptContract;
@@ -67,7 +67,7 @@ const createFallbackProviderForNetwork = async (networkName, fallbackProviderJso
67
67
  if (existingProvider) {
68
68
  return existingProvider;
69
69
  }
70
- const fallbackProvider = (0, dop_sharedmodel_v5_1.createFallbackProviderFromJsonConfig)(fallbackProviderJsonConfig);
70
+ const fallbackProvider = (0, dop_sharedmodel_1.createFallbackProviderFromJsonConfig)(fallbackProviderJsonConfig);
71
71
  (0, exports.setFallbackProviderForNetwork)(networkName, fallbackProvider);
72
72
  return fallbackProvider;
73
73
  };
@@ -76,7 +76,7 @@ const createPollingProviderForNetwork = async (networkName, fallbackProvider, po
76
76
  if (existingProvider) {
77
77
  return existingProvider;
78
78
  }
79
- const pollingProvider = await (0, dop_engine_v5_1.createPollingJsonRpcProviderForListeners)(fallbackProvider, pollingInterval);
79
+ const pollingProvider = await (0, dop_engine_1.createPollingJsonRpcProviderForListeners)(fallbackProvider, pollingInterval);
80
80
  (0, exports.setPollingProviderForNetwork)(networkName, pollingProvider);
81
81
  return pollingProvider;
82
82
  };
@@ -84,7 +84,7 @@ const loadProviderForNetwork = async (chain, networkName, fallbackProviderJsonCo
84
84
  (0, logger_1.sendMessage)(`Load provider for network: ${networkName}`);
85
85
  const fallbackProvider = await createFallbackProviderForNetwork(networkName, fallbackProviderJsonConfig);
86
86
  const pollingProvider = await createPollingProviderForNetwork(networkName, fallbackProvider, pollingInterval);
87
- const network = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
87
+ const network = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
88
88
  const { proxyContract, relayAdaptContract, deploymentBlock, publicName } = network;
89
89
  // eslint-disable-next-line
90
90
  if (!proxyContract) {
@@ -110,7 +110,7 @@ const loadProviderForNetwork = async (chain, networkName, fallbackProviderJsonCo
110
110
  const loadProvider = async (fallbackProviderJsonConfig, networkName, pollingInterval = 15000) => {
111
111
  try {
112
112
  delete fallbackProviderMap[networkName];
113
- const { chain } = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
113
+ const { chain } = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
114
114
  if (fallbackProviderJsonConfig.chainId !== chain.id) {
115
115
  throw new Error('Invalid chain ID');
116
116
  }
@@ -144,7 +144,7 @@ const pauseAllPollingProviders = (excludeNetworkName) => {
144
144
  return;
145
145
  }
146
146
  const pollingProvider = pollingProviderMap[networkName];
147
- if ((0, dop_sharedmodel_v5_1.isDefined)(pollingProvider) && !pollingProvider.paused) {
147
+ if ((0, dop_sharedmodel_1.isDefined)(pollingProvider) && !pollingProvider.paused) {
148
148
  pollingProvider.pause();
149
149
  }
150
150
  });
@@ -153,7 +153,7 @@ exports.pauseAllPollingProviders = pauseAllPollingProviders;
153
153
  const resumeIsolatedPollingProviderForNetwork = (networkName) => {
154
154
  (0, exports.pauseAllPollingProviders)(networkName);
155
155
  const pollingProviderForNetwork = pollingProviderMap[networkName];
156
- if ((0, dop_sharedmodel_v5_1.isDefined)(pollingProviderForNetwork) &&
156
+ if ((0, dop_sharedmodel_1.isDefined)(pollingProviderForNetwork) &&
157
157
  pollingProviderForNetwork.paused) {
158
158
  pollingProviderForNetwork.resume();
159
159
  }
@@ -1 +1 @@
1
- {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/services/dop/core/providers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FallbackProviderJsonConfig,\n createFallbackProviderFromJsonConfig,\n NetworkName,\n NETWORK_CONFIG,\n LoadProviderResponse,\n isDefined,\n} from 'dop-sharedmodel-v5';\nimport { sendMessage } from '../../../utils/logger';\nimport { getEngine } from './engine';\nimport {\n Chain,\n DopSmartWalletContract,\n RelayAdaptContract,\n PollingJsonRpcProvider,\n createPollingJsonRpcProviderForListeners,\n} from 'dop-engine-v5';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { FallbackProvider } from 'ethers';\n\nconst fallbackProviderMap: MapType<FallbackProvider> = {};\nconst pollingProviderMap: MapType<PollingJsonRpcProvider> = {};\n\nexport const getFallbackProviderForNetwork = (\n networkName: NetworkName,\n): FallbackProvider => {\n const provider = fallbackProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(`Provider not yet loaded for network ${networkName}`);\n }\n return provider;\n};\n\nexport const getPollingProviderForNetwork = (\n networkName: NetworkName,\n): PollingJsonRpcProvider => {\n const provider = pollingProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(\n `Polling provider not yet loaded for network ${networkName}`,\n );\n }\n return provider;\n};\n\nexport const setFallbackProviderForNetwork = (\n networkName: NetworkName,\n provider: FallbackProvider,\n): void => {\n fallbackProviderMap[networkName] = provider;\n};\n\nexport const setPollingProviderForNetwork = (\n networkName: NetworkName,\n provider: PollingJsonRpcProvider,\n): void => {\n pollingProviderMap[networkName] = provider;\n};\n\nexport const getMerkleTreeForNetwork = (networkName: NetworkName) => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const merkleTree = getEngine().merkletrees[chain.type][chain.id];\n if (!isDefined(merkleTree)) {\n throw new Error(\n `MerkleTree not yet loaded for network ${network.publicName}`,\n );\n }\n return merkleTree;\n};\n\nexport const getDopSmartWalletContractForNetwork = (\n networkName: NetworkName,\n): DopSmartWalletContract => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n\n const dopSmartWalletContract =\n getEngine().dopSmartWalletContracts[chain.type][chain.id];\n if (!isDefined(dopSmartWalletContract)) {\n throw new Error(\n `DopSmartWallet contract not yet loaded for network ${network.publicName}`,\n );\n }\n return dopSmartWalletContract;\n};\n\nexport const getRelayAdaptContractForNetwork = (\n networkName: NetworkName,\n): RelayAdaptContract => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const relayAdaptContract =\n getEngine().relayAdaptContracts[chain.type][chain.id];\n if (!isDefined(relayAdaptContract)) {\n throw new Error(\n `Relay Adapt contract not yet loaded for network ${network.publicName}`,\n );\n }\n return relayAdaptContract;\n};\n\nconst createFallbackProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n): Promise<FallbackProvider> => {\n const existingProvider = fallbackProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n fallbackProviderJsonConfig,\n );\n setFallbackProviderForNetwork(networkName, fallbackProvider);\n return fallbackProvider;\n};\n\nconst createPollingProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProvider: FallbackProvider,\n pollingInterval: number,\n): Promise<PollingJsonRpcProvider> => {\n const existingProvider = pollingProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const pollingProvider = await createPollingJsonRpcProviderForListeners(\n fallbackProvider,\n pollingInterval,\n );\n setPollingProviderForNetwork(networkName, pollingProvider);\n return pollingProvider;\n};\n\nconst loadProviderForNetwork = async (\n chain: Chain,\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n pollingInterval: number,\n) => {\n sendMessage(`Load provider for network: ${networkName}`);\n\n const fallbackProvider = await createFallbackProviderForNetwork(\n networkName,\n fallbackProviderJsonConfig,\n );\n const pollingProvider = await createPollingProviderForNetwork(\n networkName,\n fallbackProvider,\n pollingInterval,\n );\n\n const network = NETWORK_CONFIG[networkName];\n const { proxyContract, relayAdaptContract, deploymentBlock, publicName } =\n network;\n // eslint-disable-next-line\n if (!proxyContract) {\n throw new Error(`Could not find Proxy contract for network: ${publicName}`);\n }\n // eslint-disable-next-line\n if (!relayAdaptContract) {\n throw new Error(\n `Could not find Relay Adapt contract for network: ${publicName}`,\n );\n }\n\n const engine = getEngine();\n\n // This function will set up the contracts for this chain.\n // Throws if provider does not respond.\n await engine.loadNetwork(\n chain,\n proxyContract,\n relayAdaptContract,\n fallbackProvider,\n pollingProvider,\n deploymentBlock ?? 0,\n );\n\n // NOTE: This is an async call, but we need not await.\n // Let Engine scan events in the background.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n engine.scanHistory(chain);\n};\n\n/**\n * Note: The first provider listed in your fallback provider config is used as a polling provider\n * for new DOP events (balance updates).\n */\nexport const loadProvider = async (\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n networkName: NetworkName,\n pollingInterval = 15000,\n): Promise<LoadProviderResponse> => {\n try {\n delete fallbackProviderMap[networkName];\n\n const { chain } = NETWORK_CONFIG[networkName];\n if (fallbackProviderJsonConfig.chainId !== chain.id) {\n throw new Error('Invalid chain ID');\n }\n\n await loadProviderForNetwork(\n chain,\n networkName,\n fallbackProviderJsonConfig,\n pollingInterval,\n );\n\n const dopSmartWalletContract =\n getDopSmartWalletContractForNetwork(networkName);\n\n const { shield, unshield, nft } = await dopSmartWalletContract.fees();\n\n // Note: Shield and Unshield fees are in basis points.\n // NFT fee is in wei (though currently 0).\n const feesSerialized = {\n shield: shield.toString(),\n unshield: unshield.toString(),\n nft: nft.toString(),\n };\n\n return { feesSerialized };\n } catch (err) {\n throw reportAndSanitizeError(loadProvider.name, err);\n }\n};\n\nexport const unloadProvider = async (\n networkName: NetworkName,\n): Promise<void> => {\n await fallbackProviderMap[networkName]?.destroy();\n pollingProviderMap[networkName]?.destroy();\n delete fallbackProviderMap[networkName];\n delete pollingProviderMap[networkName];\n};\n\nexport const pauseAllPollingProviders = (\n excludeNetworkName?: NetworkName,\n): void => {\n Object.keys(pollingProviderMap).forEach(networkName => {\n if (networkName === excludeNetworkName) {\n return;\n }\n const pollingProvider = pollingProviderMap[networkName];\n if (isDefined(pollingProvider) && !pollingProvider.paused) {\n pollingProvider.pause();\n }\n });\n};\n\nexport const resumeIsolatedPollingProviderForNetwork = (\n networkName: NetworkName,\n): void => {\n pauseAllPollingProviders(\n networkName, // excludeNetworkName\n );\n const pollingProviderForNetwork = pollingProviderMap[networkName];\n if (\n isDefined(pollingProviderForNetwork) &&\n pollingProviderForNetwork.paused\n ) {\n pollingProviderForNetwork.resume();\n }\n};\n"]}
1
+ {"version":3,"file":"providers.js","sourceRoot":"","sources":["../../../../src/services/dop/core/providers.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n FallbackProviderJsonConfig,\n createFallbackProviderFromJsonConfig,\n NetworkName,\n NETWORK_CONFIG,\n LoadProviderResponse,\n isDefined,\n} from 'dop-sharedmodel';\nimport { sendMessage } from '../../../utils/logger';\nimport { getEngine } from './engine';\nimport {\n Chain,\n DopSmartWalletContract,\n RelayAdaptContract,\n PollingJsonRpcProvider,\n createPollingJsonRpcProviderForListeners,\n} from 'dop-engine';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { FallbackProvider } from 'ethers';\n\nconst fallbackProviderMap: MapType<FallbackProvider> = {};\nconst pollingProviderMap: MapType<PollingJsonRpcProvider> = {};\n\nexport const getFallbackProviderForNetwork = (\n networkName: NetworkName,\n): FallbackProvider => {\n const provider = fallbackProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(`Provider not yet loaded for network ${networkName}`);\n }\n return provider;\n};\n\nexport const getPollingProviderForNetwork = (\n networkName: NetworkName,\n): PollingJsonRpcProvider => {\n const provider = pollingProviderMap[networkName];\n if (!isDefined(provider)) {\n throw new Error(\n `Polling provider not yet loaded for network ${networkName}`,\n );\n }\n return provider;\n};\n\nexport const setFallbackProviderForNetwork = (\n networkName: NetworkName,\n provider: FallbackProvider,\n): void => {\n fallbackProviderMap[networkName] = provider;\n};\n\nexport const setPollingProviderForNetwork = (\n networkName: NetworkName,\n provider: PollingJsonRpcProvider,\n): void => {\n pollingProviderMap[networkName] = provider;\n};\n\nexport const getMerkleTreeForNetwork = (networkName: NetworkName) => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const merkleTree = getEngine().merkletrees[chain.type][chain.id];\n if (!isDefined(merkleTree)) {\n throw new Error(\n `MerkleTree not yet loaded for network ${network.publicName}`,\n );\n }\n return merkleTree;\n};\n\nexport const getDopSmartWalletContractForNetwork = (\n networkName: NetworkName,\n): DopSmartWalletContract => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n\n const dopSmartWalletContract =\n getEngine().dopSmartWalletContracts[chain.type][chain.id];\n if (!isDefined(dopSmartWalletContract)) {\n throw new Error(\n `DopSmartWallet contract not yet loaded for network ${network.publicName}`,\n );\n }\n return dopSmartWalletContract;\n};\n\nexport const getRelayAdaptContractForNetwork = (\n networkName: NetworkName,\n): RelayAdaptContract => {\n const network = NETWORK_CONFIG[networkName];\n const { chain } = network;\n const relayAdaptContract =\n getEngine().relayAdaptContracts[chain.type][chain.id];\n if (!isDefined(relayAdaptContract)) {\n throw new Error(\n `Relay Adapt contract not yet loaded for network ${network.publicName}`,\n );\n }\n return relayAdaptContract;\n};\n\nconst createFallbackProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n): Promise<FallbackProvider> => {\n const existingProvider = fallbackProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const fallbackProvider = createFallbackProviderFromJsonConfig(\n fallbackProviderJsonConfig,\n );\n setFallbackProviderForNetwork(networkName, fallbackProvider);\n return fallbackProvider;\n};\n\nconst createPollingProviderForNetwork = async (\n networkName: NetworkName,\n fallbackProvider: FallbackProvider,\n pollingInterval: number,\n): Promise<PollingJsonRpcProvider> => {\n const existingProvider = pollingProviderMap[networkName];\n if (existingProvider) {\n return existingProvider;\n }\n const pollingProvider = await createPollingJsonRpcProviderForListeners(\n fallbackProvider,\n pollingInterval,\n );\n setPollingProviderForNetwork(networkName, pollingProvider);\n return pollingProvider;\n};\n\nconst loadProviderForNetwork = async (\n chain: Chain,\n networkName: NetworkName,\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n pollingInterval: number,\n) => {\n sendMessage(`Load provider for network: ${networkName}`);\n\n const fallbackProvider = await createFallbackProviderForNetwork(\n networkName,\n fallbackProviderJsonConfig,\n );\n const pollingProvider = await createPollingProviderForNetwork(\n networkName,\n fallbackProvider,\n pollingInterval,\n );\n\n const network = NETWORK_CONFIG[networkName];\n const { proxyContract, relayAdaptContract, deploymentBlock, publicName } =\n network;\n // eslint-disable-next-line\n if (!proxyContract) {\n throw new Error(`Could not find Proxy contract for network: ${publicName}`);\n }\n // eslint-disable-next-line\n if (!relayAdaptContract) {\n throw new Error(\n `Could not find Relay Adapt contract for network: ${publicName}`,\n );\n }\n\n const engine = getEngine();\n\n // This function will set up the contracts for this chain.\n // Throws if provider does not respond.\n await engine.loadNetwork(\n chain,\n proxyContract,\n relayAdaptContract,\n fallbackProvider,\n pollingProvider,\n deploymentBlock ?? 0,\n );\n\n // NOTE: This is an async call, but we need not await.\n // Let Engine scan events in the background.\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n engine.scanHistory(chain);\n};\n\n/**\n * Note: The first provider listed in your fallback provider config is used as a polling provider\n * for new DOP events (balance updates).\n */\nexport const loadProvider = async (\n fallbackProviderJsonConfig: FallbackProviderJsonConfig,\n networkName: NetworkName,\n pollingInterval = 15000,\n): Promise<LoadProviderResponse> => {\n try {\n delete fallbackProviderMap[networkName];\n\n const { chain } = NETWORK_CONFIG[networkName];\n if (fallbackProviderJsonConfig.chainId !== chain.id) {\n throw new Error('Invalid chain ID');\n }\n\n await loadProviderForNetwork(\n chain,\n networkName,\n fallbackProviderJsonConfig,\n pollingInterval,\n );\n\n const dopSmartWalletContract =\n getDopSmartWalletContractForNetwork(networkName);\n\n const { shield, unshield, nft } = await dopSmartWalletContract.fees();\n\n // Note: Shield and Unshield fees are in basis points.\n // NFT fee is in wei (though currently 0).\n const feesSerialized = {\n shield: shield.toString(),\n unshield: unshield.toString(),\n nft: nft.toString(),\n };\n\n return { feesSerialized };\n } catch (err) {\n throw reportAndSanitizeError(loadProvider.name, err);\n }\n};\n\nexport const unloadProvider = async (\n networkName: NetworkName,\n): Promise<void> => {\n await fallbackProviderMap[networkName]?.destroy();\n pollingProviderMap[networkName]?.destroy();\n delete fallbackProviderMap[networkName];\n delete pollingProviderMap[networkName];\n};\n\nexport const pauseAllPollingProviders = (\n excludeNetworkName?: NetworkName,\n): void => {\n Object.keys(pollingProviderMap).forEach(networkName => {\n if (networkName === excludeNetworkName) {\n return;\n }\n const pollingProvider = pollingProviderMap[networkName];\n if (isDefined(pollingProvider) && !pollingProvider.paused) {\n pollingProvider.pause();\n }\n });\n};\n\nexport const resumeIsolatedPollingProviderForNetwork = (\n networkName: NetworkName,\n): void => {\n pauseAllPollingProviders(\n networkName, // excludeNetworkName\n );\n const pollingProviderForNetwork = pollingProviderMap[networkName];\n if (\n isDefined(pollingProviderForNetwork) &&\n pollingProviderForNetwork.paused\n ) {\n pollingProviderForNetwork.resume();\n }\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { NetworkName } from 'dop-sharedmodel-v5';
1
+ import { NetworkName } from 'dop-sharedmodel';
2
2
  export type ShieldData = {
3
3
  txid: string;
4
4
  hash: string;
@@ -1,11 +1,11 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getAllShields = void 0;
4
- const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
4
+ const dop_sharedmodel_1 = require("dop-sharedmodel");
5
5
  const engine_1 = require("./engine");
6
6
  const getAllShields = async (networkName, startingBlock) => {
7
7
  const engine = (0, engine_1.getEngine)();
8
- const { chain } = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
8
+ const { chain } = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
9
9
  const encryptCommitments = await engine.getAllEncryptCommitments(chain, startingBlock);
10
10
  return encryptCommitments.map(commitment => {
11
11
  const shieldData = {
@@ -1 +1 @@
1
- {"version":3,"file":"shields.js","sourceRoot":"","sources":["../../../../src/services/dop/core/shields.ts"],"names":[],"mappings":";;;AAAA,2DAAiE;AACjE,qCAAqC;AAQ9B,MAAM,aAAa,GAAG,KAAK,EAChC,WAAwB,EACxB,aAAqB,EACrB,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,mCAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAC9D,KAAK,EACL,aAAa,CACd,CAAC;IAEF,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACzC,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,aAAa,iBAmBxB","sourcesContent":["import { NETWORK_CONFIG, NetworkName } from 'dop-sharedmodel-v5';\nimport { getEngine } from './engine';\n\nexport type ShieldData = {\n txid: string;\n hash: string;\n timestamp: Optional<number>;\n};\n\nexport const getAllShields = async (\n networkName: NetworkName,\n startingBlock: number,\n) => {\n const engine = getEngine();\n const { chain } = NETWORK_CONFIG[networkName];\n const encryptCommitments = await engine.getAllEncryptCommitments(\n chain,\n startingBlock,\n );\n\n return encryptCommitments.map(commitment => {\n const shieldData: ShieldData = {\n txid: commitment.txid,\n hash: commitment.hash,\n timestamp: commitment.timestamp,\n };\n return shieldData;\n });\n};\n"]}
1
+ {"version":3,"file":"shields.js","sourceRoot":"","sources":["../../../../src/services/dop/core/shields.ts"],"names":[],"mappings":";;;AAAA,qDAA8D;AAC9D,qCAAqC;AAQ9B,MAAM,aAAa,GAAG,KAAK,EAChC,WAAwB,EACxB,aAAqB,EACrB,EAAE;IACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,EAAE,KAAK,EAAE,GAAG,gCAAc,CAAC,WAAW,CAAC,CAAC;IAC9C,MAAM,kBAAkB,GAAG,MAAM,MAAM,CAAC,wBAAwB,CAC9D,KAAK,EACL,aAAa,CACd,CAAC;IAEF,OAAO,kBAAkB,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;QACzC,MAAM,UAAU,GAAe;YAC7B,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,IAAI,EAAE,UAAU,CAAC,IAAI;YACrB,SAAS,EAAE,UAAU,CAAC,SAAS;SAChC,CAAC;QACF,OAAO,UAAU,CAAC;IACpB,CAAC,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,aAAa,iBAmBxB","sourcesContent":["import { NETWORK_CONFIG, NetworkName } from 'dop-sharedmodel';\nimport { getEngine } from './engine';\n\nexport type ShieldData = {\n txid: string;\n hash: string;\n timestamp: Optional<number>;\n};\n\nexport const getAllShields = async (\n networkName: NetworkName,\n startingBlock: number,\n) => {\n const engine = getEngine();\n const { chain } = NETWORK_CONFIG[networkName];\n const encryptCommitments = await engine.getAllEncryptCommitments(\n chain,\n startingBlock,\n );\n\n return encryptCommitments.map(commitment => {\n const shieldData: ShieldData = {\n txid: commitment.txid,\n hash: commitment.hash,\n timestamp: commitment.timestamp,\n };\n return shieldData;\n });\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { Chain } from 'dop-engine-v5';
2
- import { TransactionHistoryItem, TransactionHistoryItemCategory } from 'dop-sharedmodel-v5';
1
+ import { Chain } from 'dop-engine';
2
+ import { TransactionHistoryItem, TransactionHistoryItemCategory } from 'dop-sharedmodel';
3
3
  export declare const categoryForTransactionHistoryItem: (historyItem: TransactionHistoryItem) => TransactionHistoryItemCategory;
4
4
  export declare const getWalletTransactionHistory: (chain: Chain, dopWalletID: string, startingBlock: Optional<number>) => Promise<TransactionHistoryItem[]>;
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getWalletTransactionHistory = exports.categoryForTransactionHistoryItem = void 0;
4
- const dop_engine_v5_1 = require("dop-engine-v5");
5
- const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
4
+ const dop_engine_1 = require("dop-engine");
5
+ const dop_sharedmodel_1 = require("dop-sharedmodel");
6
6
  const engine_1 = require("../core/engine");
7
7
  const bytes_1 = require("../util/bytes");
8
8
  const error_1 = require("../../../utils/error");
@@ -67,14 +67,14 @@ const transactionHistoryNFTToDopNFTAmount = (transactionHistoryNFT) => {
67
67
  };
68
68
  };
69
69
  const filterERC20 = (tokenAmount) => {
70
- return tokenAmount.tokenData.tokenType === dop_engine_v5_1.TokenType.ERC20;
70
+ return tokenAmount.tokenData.tokenType === dop_engine_1.TokenType.ERC20;
71
71
  };
72
72
  const filterNFT = (tokenAmount) => {
73
73
  switch (tokenAmount.tokenData.tokenType) {
74
- case dop_engine_v5_1.TokenType.ERC20:
74
+ case dop_engine_1.TokenType.ERC20:
75
75
  return false;
76
- case dop_engine_v5_1.TokenType.ERC721:
77
- case dop_engine_v5_1.TokenType.ERC1155:
76
+ case dop_engine_1.TokenType.ERC721:
77
+ case dop_engine_1.TokenType.ERC1155:
78
78
  return tokenAmount.amount > BigInt(0);
79
79
  }
80
80
  };
@@ -87,14 +87,14 @@ const categoryForTransactionHistoryItem = (historyItem) => {
87
87
  const hasUnshieldNFTs = historyItem.unshieldNFTAmounts.length > 0;
88
88
  if (hasTransferNFTs || hasReceiveNFTs || hasUnshieldNFTs) {
89
89
  // Some kind of NFT Transfer. Unhandled case.
90
- return dop_sharedmodel_v5_1.TransactionHistoryItemCategory.Unknown;
90
+ return dop_sharedmodel_1.TransactionHistoryItemCategory.Unknown;
91
91
  }
92
92
  const hasTransferERC20s = historyItem.transferERC20Amounts.length > 0;
93
93
  const hasReceiveERC20s = historyItem.receiveERC20Amounts.length > 0;
94
94
  const hasUnshieldERC20s = historyItem.unshieldERC20Amounts.length > 0;
95
95
  if (hasTransferERC20s && !hasReceiveERC20s && !hasUnshieldERC20s) {
96
96
  // Only transfer erc20s.
97
- return dop_sharedmodel_v5_1.TransactionHistoryItemCategory.TransferSendERC20s;
97
+ return dop_sharedmodel_1.TransactionHistoryItemCategory.TransferSendERC20s;
98
98
  }
99
99
  if (!hasTransferERC20s && hasReceiveERC20s && !hasUnshieldERC20s) {
100
100
  // Only receive erc20s.
@@ -102,20 +102,20 @@ const categoryForTransactionHistoryItem = (historyItem) => {
102
102
  if (hasShieldFee) {
103
103
  // Note: Shield fees were added to contract events in Mar 2023.
104
104
  // Prior shields will show as TransferReceiveERC20s without fees.
105
- return dop_sharedmodel_v5_1.TransactionHistoryItemCategory.ShieldERC20s;
105
+ return dop_sharedmodel_1.TransactionHistoryItemCategory.ShieldERC20s;
106
106
  }
107
- return dop_sharedmodel_v5_1.TransactionHistoryItemCategory.TransferReceiveERC20s;
107
+ return dop_sharedmodel_1.TransactionHistoryItemCategory.TransferReceiveERC20s;
108
108
  }
109
109
  if (!hasTransferERC20s && !hasReceiveERC20s && hasUnshieldERC20s) {
110
110
  // Only unshield erc20s.
111
- return dop_sharedmodel_v5_1.TransactionHistoryItemCategory.UnshieldERC20s;
111
+ return dop_sharedmodel_1.TransactionHistoryItemCategory.UnshieldERC20s;
112
112
  }
113
- return dop_sharedmodel_v5_1.TransactionHistoryItemCategory.Unknown;
113
+ return dop_sharedmodel_1.TransactionHistoryItemCategory.Unknown;
114
114
  };
115
115
  exports.categoryForTransactionHistoryItem = categoryForTransactionHistoryItem;
116
116
  const serializeTransactionHistory = (transactionHistory) => {
117
117
  const historyItemsUncategorized = transactionHistory.map(historyEntry => ({
118
- txid: (0, dop_engine_v5_1.formatToByteLength)(historyEntry.txid, dop_engine_v5_1.ByteLength.UINT_256, true),
118
+ txid: (0, dop_engine_1.formatToByteLength)(historyEntry.txid, dop_engine_1.ByteLength.UINT_256, true),
119
119
  blockNumber: historyEntry.blockNumber,
120
120
  timestamp: historyEntry.timestamp,
121
121
  transferERC20Amounts: historyEntry.transferTokenAmounts
@@ -143,7 +143,7 @@ const serializeTransactionHistory = (transactionHistory) => {
143
143
  .filter(filterNFT)
144
144
  .map(transactionHistoryUnshieldNFTToDopNFTAmount),
145
145
  version: historyEntry.version,
146
- category: dop_sharedmodel_v5_1.TransactionHistoryItemCategory.Unknown,
146
+ category: dop_sharedmodel_1.TransactionHistoryItemCategory.Unknown,
147
147
  }));
148
148
  // Add category for items based on token types.
149
149
  return historyItemsUncategorized.map(historyItem => ({
@@ -1 +1 @@
1
- {"version":3,"file":"transaction-history.js","sourceRoot":"","sources":["../../../../src/services/dop/history/transaction-history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TransactionHistoryTransferTokenAmount,\n TransactionHistoryTokenAmount,\n TransactionHistoryEntry,\n Chain,\n TransactionHistoryReceiveTokenAmount,\n TokenType,\n formatToByteLength,\n ByteLength,\n TransactionHistoryUnshieldTokenAmount,\n} from 'dop-engine-v5';\nimport {\n TransactionHistoryItem,\n DopERC20Amount,\n DopSendERC20Amount,\n DopReceiveERC20Amount,\n DopSendNFTAmount,\n DopNFTAmount,\n DopReceiveNFTAmount,\n DopUnshieldERC20Amount,\n DopUnshieldNFTAmount,\n TransactionHistoryItemCategory,\n} from 'dop-sharedmodel-v5';\nimport { walletForID } from '../core/engine';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { reportAndSanitizeError } from '../../../utils/error';\n\nconst transactionHistoryReceiveTokenAmountToDopERC20Amount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopReceiveERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n shieldFee: transactionHistoryReceiveTokenAmount.shieldFee,\n };\n};\n\nconst transactionHistoryReceiveNFTToDopNFTAmount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopReceiveNFTAmount => {\n return {\n ...transactionHistoryNFTToDopNFTAmount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n shieldFee: transactionHistoryReceiveTokenAmount.shieldFee,\n };\n};\n\nconst transactionHistoryTransferTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTransferTokenAmount,\n): DopSendERC20Amount => {\n const walletSource =\n transactionHistoryTokenAmount.noteAnnotationData?.walletSource;\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryTokenAmount,\n ),\n recipientAddress: transactionHistoryTokenAmount.recipientAddress,\n memoText: transactionHistoryTokenAmount.memoText,\n walletSource,\n };\n};\n\nconst transactionHistoryUnshieldTokenAmountToDopERC20Amount = (\n transactionHistoryUnshieldTokenAmount: TransactionHistoryUnshieldTokenAmount,\n): DopUnshieldERC20Amount => {\n return {\n ...transactionHistoryTransferTokenAmountToDopERC20Amount(\n transactionHistoryUnshieldTokenAmount,\n ),\n unshieldFee: transactionHistoryUnshieldTokenAmount.unshieldFee,\n };\n};\n\nconst transactionHistoryTransferNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTransferTokenAmount,\n): DopSendNFTAmount => {\n const walletSource = transactionHistoryNFT.noteAnnotationData?.walletSource;\n return {\n ...transactionHistoryNFTToDopNFTAmount(transactionHistoryNFT),\n memoText: transactionHistoryNFT.memoText,\n walletSource,\n recipientAddress: transactionHistoryNFT.recipientAddress,\n };\n};\n\nconst transactionHistoryUnshieldNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryUnshieldTokenAmount,\n): DopUnshieldNFTAmount => {\n return {\n ...transactionHistoryTransferNFTToDopNFTAmount(transactionHistoryNFT),\n unshieldFee: transactionHistoryNFT.unshieldFee,\n };\n};\n\nconst transactionHistoryTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTokenAmount,\n): DopERC20Amount => {\n return {\n tokenAddress: parseDopTokenAddress(\n transactionHistoryTokenAmount.tokenData.tokenAddress,\n ).toLowerCase(),\n amount: transactionHistoryTokenAmount.amount,\n };\n};\n\nconst transactionHistoryNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTokenAmount,\n): DopNFTAmount => {\n return {\n nftAddress: parseDopTokenAddress(\n transactionHistoryNFT.tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: transactionHistoryNFT.tokenData.tokenType as 1 | 2,\n tokenSubID: transactionHistoryNFT.tokenData.tokenSubID,\n amount: transactionHistoryNFT.amount,\n };\n};\n\nconst filterERC20 = (tokenAmount: TransactionHistoryTokenAmount) => {\n return tokenAmount.tokenData.tokenType === TokenType.ERC20;\n};\n\nconst filterNFT = (tokenAmount: TransactionHistoryTokenAmount) => {\n switch (tokenAmount.tokenData.tokenType) {\n case TokenType.ERC20:\n return false;\n case TokenType.ERC721:\n case TokenType.ERC1155:\n return tokenAmount.amount > BigInt(0);\n }\n};\n\nconst receiveERC20AmountsHaveShieldFee = (\n receiveERC20Amounts: DopReceiveERC20Amount[],\n): boolean => {\n return receiveERC20Amounts.find(amount => amount.shieldFee) != null;\n};\n\nexport const categoryForTransactionHistoryItem = (\n historyItem: TransactionHistoryItem,\n): TransactionHistoryItemCategory => {\n const hasTransferNFTs = historyItem.transferNFTAmounts.length > 0;\n const hasReceiveNFTs = historyItem.receiveNFTAmounts.length > 0;\n const hasUnshieldNFTs = historyItem.unshieldNFTAmounts.length > 0;\n if (hasTransferNFTs || hasReceiveNFTs || hasUnshieldNFTs) {\n // Some kind of NFT Transfer. Unhandled case.\n return TransactionHistoryItemCategory.Unknown;\n }\n\n const hasTransferERC20s = historyItem.transferERC20Amounts.length > 0;\n const hasReceiveERC20s = historyItem.receiveERC20Amounts.length > 0;\n const hasUnshieldERC20s = historyItem.unshieldERC20Amounts.length > 0;\n\n if (hasTransferERC20s && !hasReceiveERC20s && !hasUnshieldERC20s) {\n // Only transfer erc20s.\n return TransactionHistoryItemCategory.TransferSendERC20s;\n }\n\n if (!hasTransferERC20s && hasReceiveERC20s && !hasUnshieldERC20s) {\n // Only receive erc20s.\n const hasShieldFee = receiveERC20AmountsHaveShieldFee(\n historyItem.receiveERC20Amounts,\n );\n if (hasShieldFee) {\n // Note: Shield fees were added to contract events in Mar 2023.\n // Prior shields will show as TransferReceiveERC20s without fees.\n return TransactionHistoryItemCategory.ShieldERC20s;\n }\n return TransactionHistoryItemCategory.TransferReceiveERC20s;\n }\n\n if (!hasTransferERC20s && !hasReceiveERC20s && hasUnshieldERC20s) {\n // Only unshield erc20s.\n return TransactionHistoryItemCategory.UnshieldERC20s;\n }\n\n return TransactionHistoryItemCategory.Unknown;\n};\n\nconst serializeTransactionHistory = (\n transactionHistory: TransactionHistoryEntry[],\n): TransactionHistoryItem[] => {\n const historyItemsUncategorized: TransactionHistoryItem[] =\n transactionHistory.map(historyEntry => ({\n txid: formatToByteLength(historyEntry.txid, ByteLength.UINT_256, true),\n blockNumber: historyEntry.blockNumber,\n timestamp: historyEntry.timestamp,\n transferERC20Amounts: historyEntry.transferTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTransferTokenAmountToDopERC20Amount),\n relayerFeeERC20Amount: historyEntry.relayerFeeTokenAmount\n ? transactionHistoryTokenAmountToDopERC20Amount(\n historyEntry.relayerFeeTokenAmount,\n )\n : undefined,\n changeERC20Amounts: historyEntry.changeTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTokenAmountToDopERC20Amount),\n receiveERC20Amounts: historyEntry.receiveTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryReceiveTokenAmountToDopERC20Amount),\n unshieldERC20Amounts: historyEntry.unshieldTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryUnshieldTokenAmountToDopERC20Amount),\n receiveNFTAmounts: historyEntry.receiveTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryReceiveNFTToDopNFTAmount),\n transferNFTAmounts: historyEntry.transferTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryTransferNFTToDopNFTAmount),\n unshieldNFTAmounts: historyEntry.unshieldTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryUnshieldNFTToDopNFTAmount),\n version: historyEntry.version,\n category: TransactionHistoryItemCategory.Unknown,\n }));\n\n // Add category for items based on token types.\n return historyItemsUncategorized.map(historyItem => ({\n ...historyItem,\n category: categoryForTransactionHistoryItem(historyItem),\n }));\n};\n\nexport const getWalletTransactionHistory = async (\n chain: Chain,\n dopWalletID: string,\n startingBlock: Optional<number>,\n): Promise<TransactionHistoryItem[]> => {\n try {\n const wallet = walletForID(dopWalletID);\n const transactionHistory = await wallet.getTransactionHistory(\n chain,\n startingBlock,\n );\n return serializeTransactionHistory(transactionHistory);\n } catch (err) {\n reportAndSanitizeError(getWalletTransactionHistory.name, err);\n throw new Error('Could not load DOP wallet transaction history.');\n }\n};\n"]}
1
+ {"version":3,"file":"transaction-history.js","sourceRoot":"","sources":["../../../../src/services/dop/history/transaction-history.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n TransactionHistoryTransferTokenAmount,\n TransactionHistoryTokenAmount,\n TransactionHistoryEntry,\n Chain,\n TransactionHistoryReceiveTokenAmount,\n TokenType,\n formatToByteLength,\n ByteLength,\n TransactionHistoryUnshieldTokenAmount,\n} from 'dop-engine';\nimport {\n TransactionHistoryItem,\n DopERC20Amount,\n DopSendERC20Amount,\n DopReceiveERC20Amount,\n DopSendNFTAmount,\n DopNFTAmount,\n DopReceiveNFTAmount,\n DopUnshieldERC20Amount,\n DopUnshieldNFTAmount,\n TransactionHistoryItemCategory,\n} from 'dop-sharedmodel';\nimport { walletForID } from '../core/engine';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { reportAndSanitizeError } from '../../../utils/error';\n\nconst transactionHistoryReceiveTokenAmountToDopERC20Amount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopReceiveERC20Amount => {\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n shieldFee: transactionHistoryReceiveTokenAmount.shieldFee,\n };\n};\n\nconst transactionHistoryReceiveNFTToDopNFTAmount = (\n transactionHistoryReceiveTokenAmount: TransactionHistoryReceiveTokenAmount,\n): DopReceiveNFTAmount => {\n return {\n ...transactionHistoryNFTToDopNFTAmount(\n transactionHistoryReceiveTokenAmount,\n ),\n memoText: transactionHistoryReceiveTokenAmount.memoText,\n senderAddress: transactionHistoryReceiveTokenAmount.senderAddress,\n shieldFee: transactionHistoryReceiveTokenAmount.shieldFee,\n };\n};\n\nconst transactionHistoryTransferTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTransferTokenAmount,\n): DopSendERC20Amount => {\n const walletSource =\n transactionHistoryTokenAmount.noteAnnotationData?.walletSource;\n return {\n ...transactionHistoryTokenAmountToDopERC20Amount(\n transactionHistoryTokenAmount,\n ),\n recipientAddress: transactionHistoryTokenAmount.recipientAddress,\n memoText: transactionHistoryTokenAmount.memoText,\n walletSource,\n };\n};\n\nconst transactionHistoryUnshieldTokenAmountToDopERC20Amount = (\n transactionHistoryUnshieldTokenAmount: TransactionHistoryUnshieldTokenAmount,\n): DopUnshieldERC20Amount => {\n return {\n ...transactionHistoryTransferTokenAmountToDopERC20Amount(\n transactionHistoryUnshieldTokenAmount,\n ),\n unshieldFee: transactionHistoryUnshieldTokenAmount.unshieldFee,\n };\n};\n\nconst transactionHistoryTransferNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTransferTokenAmount,\n): DopSendNFTAmount => {\n const walletSource = transactionHistoryNFT.noteAnnotationData?.walletSource;\n return {\n ...transactionHistoryNFTToDopNFTAmount(transactionHistoryNFT),\n memoText: transactionHistoryNFT.memoText,\n walletSource,\n recipientAddress: transactionHistoryNFT.recipientAddress,\n };\n};\n\nconst transactionHistoryUnshieldNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryUnshieldTokenAmount,\n): DopUnshieldNFTAmount => {\n return {\n ...transactionHistoryTransferNFTToDopNFTAmount(transactionHistoryNFT),\n unshieldFee: transactionHistoryNFT.unshieldFee,\n };\n};\n\nconst transactionHistoryTokenAmountToDopERC20Amount = (\n transactionHistoryTokenAmount: TransactionHistoryTokenAmount,\n): DopERC20Amount => {\n return {\n tokenAddress: parseDopTokenAddress(\n transactionHistoryTokenAmount.tokenData.tokenAddress,\n ).toLowerCase(),\n amount: transactionHistoryTokenAmount.amount,\n };\n};\n\nconst transactionHistoryNFTToDopNFTAmount = (\n transactionHistoryNFT: TransactionHistoryTokenAmount,\n): DopNFTAmount => {\n return {\n nftAddress: parseDopTokenAddress(\n transactionHistoryNFT.tokenData.tokenAddress,\n ).toLowerCase(),\n nftTokenType: transactionHistoryNFT.tokenData.tokenType as 1 | 2,\n tokenSubID: transactionHistoryNFT.tokenData.tokenSubID,\n amount: transactionHistoryNFT.amount,\n };\n};\n\nconst filterERC20 = (tokenAmount: TransactionHistoryTokenAmount) => {\n return tokenAmount.tokenData.tokenType === TokenType.ERC20;\n};\n\nconst filterNFT = (tokenAmount: TransactionHistoryTokenAmount) => {\n switch (tokenAmount.tokenData.tokenType) {\n case TokenType.ERC20:\n return false;\n case TokenType.ERC721:\n case TokenType.ERC1155:\n return tokenAmount.amount > BigInt(0);\n }\n};\n\nconst receiveERC20AmountsHaveShieldFee = (\n receiveERC20Amounts: DopReceiveERC20Amount[],\n): boolean => {\n return receiveERC20Amounts.find(amount => amount.shieldFee) != null;\n};\n\nexport const categoryForTransactionHistoryItem = (\n historyItem: TransactionHistoryItem,\n): TransactionHistoryItemCategory => {\n const hasTransferNFTs = historyItem.transferNFTAmounts.length > 0;\n const hasReceiveNFTs = historyItem.receiveNFTAmounts.length > 0;\n const hasUnshieldNFTs = historyItem.unshieldNFTAmounts.length > 0;\n if (hasTransferNFTs || hasReceiveNFTs || hasUnshieldNFTs) {\n // Some kind of NFT Transfer. Unhandled case.\n return TransactionHistoryItemCategory.Unknown;\n }\n\n const hasTransferERC20s = historyItem.transferERC20Amounts.length > 0;\n const hasReceiveERC20s = historyItem.receiveERC20Amounts.length > 0;\n const hasUnshieldERC20s = historyItem.unshieldERC20Amounts.length > 0;\n\n if (hasTransferERC20s && !hasReceiveERC20s && !hasUnshieldERC20s) {\n // Only transfer erc20s.\n return TransactionHistoryItemCategory.TransferSendERC20s;\n }\n\n if (!hasTransferERC20s && hasReceiveERC20s && !hasUnshieldERC20s) {\n // Only receive erc20s.\n const hasShieldFee = receiveERC20AmountsHaveShieldFee(\n historyItem.receiveERC20Amounts,\n );\n if (hasShieldFee) {\n // Note: Shield fees were added to contract events in Mar 2023.\n // Prior shields will show as TransferReceiveERC20s without fees.\n return TransactionHistoryItemCategory.ShieldERC20s;\n }\n return TransactionHistoryItemCategory.TransferReceiveERC20s;\n }\n\n if (!hasTransferERC20s && !hasReceiveERC20s && hasUnshieldERC20s) {\n // Only unshield erc20s.\n return TransactionHistoryItemCategory.UnshieldERC20s;\n }\n\n return TransactionHistoryItemCategory.Unknown;\n};\n\nconst serializeTransactionHistory = (\n transactionHistory: TransactionHistoryEntry[],\n): TransactionHistoryItem[] => {\n const historyItemsUncategorized: TransactionHistoryItem[] =\n transactionHistory.map(historyEntry => ({\n txid: formatToByteLength(historyEntry.txid, ByteLength.UINT_256, true),\n blockNumber: historyEntry.blockNumber,\n timestamp: historyEntry.timestamp,\n transferERC20Amounts: historyEntry.transferTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTransferTokenAmountToDopERC20Amount),\n relayerFeeERC20Amount: historyEntry.relayerFeeTokenAmount\n ? transactionHistoryTokenAmountToDopERC20Amount(\n historyEntry.relayerFeeTokenAmount,\n )\n : undefined,\n changeERC20Amounts: historyEntry.changeTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryTokenAmountToDopERC20Amount),\n receiveERC20Amounts: historyEntry.receiveTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryReceiveTokenAmountToDopERC20Amount),\n unshieldERC20Amounts: historyEntry.unshieldTokenAmounts\n .filter(filterERC20)\n .map(transactionHistoryUnshieldTokenAmountToDopERC20Amount),\n receiveNFTAmounts: historyEntry.receiveTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryReceiveNFTToDopNFTAmount),\n transferNFTAmounts: historyEntry.transferTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryTransferNFTToDopNFTAmount),\n unshieldNFTAmounts: historyEntry.unshieldTokenAmounts\n .filter(filterNFT)\n .map(transactionHistoryUnshieldNFTToDopNFTAmount),\n version: historyEntry.version,\n category: TransactionHistoryItemCategory.Unknown,\n }));\n\n // Add category for items based on token types.\n return historyItemsUncategorized.map(historyItem => ({\n ...historyItem,\n category: categoryForTransactionHistoryItem(historyItem),\n }));\n};\n\nexport const getWalletTransactionHistory = async (\n chain: Chain,\n dopWalletID: string,\n startingBlock: Optional<number>,\n): Promise<TransactionHistoryItem[]> => {\n try {\n const wallet = walletForID(dopWalletID);\n const transactionHistory = await wallet.getTransactionHistory(\n chain,\n startingBlock,\n );\n return serializeTransactionHistory(transactionHistory);\n } catch (err) {\n reportAndSanitizeError(getWalletTransactionHistory.name, err);\n throw new Error('Could not load DOP wallet transaction history.');\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { AddressData, CommitmentCiphertext } from 'dop-engine-v5';
2
- import { Network, DopERC20Amount } from 'dop-sharedmodel-v5';
1
+ import { AddressData, CommitmentCiphertext } from 'dop-engine';
2
+ import { Network, DopERC20Amount } from 'dop-sharedmodel';
3
3
  import { ContractTransaction } from 'ethers';
4
4
  export declare const extractFirstNoteERC20AmountMapFromTransactionRequest: (dopWalletID: string, network: Network, transactionRequest: ContractTransaction, useRelayAdapt: boolean) => Promise<MapType<bigint>>;
5
5
  export declare const extractERC20AmountFromCommitmentCiphertext: (network: Network, commitmentCiphertext: CommitmentCiphertext, commitmentHash: string, receivingViewingPrivateKey: Uint8Array, receivingDopAddressData: AddressData) => Promise<Optional<DopERC20Amount>>;
@@ -1,10 +1,10 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.extractERC20AmountFromCommitmentCiphertext = exports.extractFirstNoteERC20AmountMapFromTransactionRequest = void 0;
4
- const dop_engine_v5_1 = require("dop-engine-v5");
4
+ const dop_engine_1 = require("dop-engine");
5
5
  const engine_1 = require("../core/engine");
6
6
  const wallets_1 = require("../wallets");
7
- const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
7
+ const dop_sharedmodel_1 = require("dop-sharedmodel");
8
8
  const providers_1 = require("../core/providers");
9
9
  const utils_1 = require("../../../utils");
10
10
  const util_1 = require("../util");
@@ -18,9 +18,9 @@ var TransactionName;
18
18
  const getABIForTransaction = (transactionName) => {
19
19
  switch (transactionName) {
20
20
  case TransactionName.DopSmartWallet:
21
- return dop_engine_v5_1.ABIDopSmartWallet;
21
+ return dop_engine_1.ABIDopSmartWallet;
22
22
  case TransactionName.RelayAdapt:
23
- return dop_engine_v5_1.ABIRelayAdapt;
23
+ return dop_engine_1.ABIRelayAdapt;
24
24
  }
25
25
  };
26
26
  const extractFirstNoteERC20AmountMapFromTransactionRequest = (dopWalletID, network, transactionRequest, useRelayAdapt) => {
@@ -87,17 +87,17 @@ const extractFirstNoteERC20AmountMap = async (dopWalletID, network, transactionR
87
87
  const index = 0;
88
88
  const commitmentCiphertextStructOutput = boundParams.commitmentCiphertext[index];
89
89
  const commitmentHash = commitments[index];
90
- if (!(0, dop_sharedmodel_v5_1.isDefined)(commitmentCiphertextStructOutput)) {
90
+ if (!(0, dop_sharedmodel_1.isDefined)(commitmentCiphertextStructOutput)) {
91
91
  (0, utils_1.sendMessage)('no ciphertext found for commitment at index 0');
92
92
  return;
93
93
  }
94
- const commitmentCiphertext = (0, dop_engine_v5_1.formatCommitmentCiphertext)(commitmentCiphertextStructOutput);
94
+ const commitmentCiphertext = (0, dop_engine_1.formatCommitmentCiphertext)(commitmentCiphertextStructOutput);
95
95
  const erc20PaymentAmount = await (0, exports.extractERC20AmountFromCommitmentCiphertext)(network, commitmentCiphertext, commitmentHash, receivingViewingPrivateKey, receivingDopAddressData);
96
96
  if (!erc20PaymentAmount) {
97
97
  return;
98
98
  }
99
99
  const { tokenAddress, amount } = erc20PaymentAmount;
100
- if (!(0, dop_sharedmodel_v5_1.isDefined)(erc20PaymentAmounts[tokenAddress])) {
100
+ if (!(0, dop_sharedmodel_1.isDefined)(erc20PaymentAmounts[tokenAddress])) {
101
101
  erc20PaymentAmounts[tokenAddress] = 0n;
102
102
  }
103
103
  erc20PaymentAmounts[tokenAddress] += amount;
@@ -106,16 +106,16 @@ const extractFirstNoteERC20AmountMap = async (dopWalletID, network, transactionR
106
106
  };
107
107
  const decryptReceiverNoteSafe = async (commitmentCiphertext, receivingViewingPrivateKey, receivingDopAddressData, chain) => {
108
108
  try {
109
- const blindedSenderViewingKey = (0, dop_engine_v5_1.hexStringToBytes)(commitmentCiphertext.blindedSenderViewingKey);
110
- const blindedReceiverViewingKey = (0, dop_engine_v5_1.hexStringToBytes)(commitmentCiphertext.blindedReceiverViewingKey);
111
- const sharedKey = await (0, dop_engine_v5_1.getSharedSymmetricKey)(receivingViewingPrivateKey, blindedSenderViewingKey);
109
+ const blindedSenderViewingKey = (0, dop_engine_1.hexStringToBytes)(commitmentCiphertext.blindedSenderViewingKey);
110
+ const blindedReceiverViewingKey = (0, dop_engine_1.hexStringToBytes)(commitmentCiphertext.blindedReceiverViewingKey);
111
+ const sharedKey = await (0, dop_engine_1.getSharedSymmetricKey)(receivingViewingPrivateKey, blindedSenderViewingKey);
112
112
  if (!sharedKey) {
113
113
  (0, utils_1.sendMessage)('invalid sharedKey');
114
114
  return undefined;
115
115
  }
116
116
  const { db } = (0, engine_1.getEngine)();
117
- const tokenDataGetter = new dop_engine_v5_1.TokenDataGetter(db, chain);
118
- const note = await dop_engine_v5_1.TransactNote.decrypt(receivingDopAddressData, commitmentCiphertext.ciphertext, sharedKey, commitmentCiphertext.memo, commitmentCiphertext.annotationData, blindedReceiverViewingKey, // blindedReceiverViewingKey
117
+ const tokenDataGetter = new dop_engine_1.TokenDataGetter(db, chain);
118
+ const note = await dop_engine_1.TransactNote.decrypt(receivingDopAddressData, commitmentCiphertext.ciphertext, sharedKey, commitmentCiphertext.memo, commitmentCiphertext.annotationData, blindedReceiverViewingKey, // blindedReceiverViewingKey
119
119
  blindedSenderViewingKey, // blindedSenderViewingKey
120
120
  undefined, // senderRandom - not used
121
121
  false, // isSentNote
@@ -140,14 +140,14 @@ const extractERC20AmountFromCommitmentCiphertext = async (network, commitmentCip
140
140
  (0, utils_1.sendMessage)('invalid masterPublicKey');
141
141
  return;
142
142
  }
143
- const noteHash = (0, dop_engine_v5_1.nToHex)(decryptedReceiverNote.hash, dop_engine_v5_1.ByteLength.UINT_256);
144
- const commitHash = (0, dop_engine_v5_1.formatToByteLength)(commitmentHash, dop_engine_v5_1.ByteLength.UINT_256);
143
+ const noteHash = (0, dop_engine_1.nToHex)(decryptedReceiverNote.hash, dop_engine_1.ByteLength.UINT_256);
144
+ const commitHash = (0, dop_engine_1.formatToByteLength)(commitmentHash, dop_engine_1.ByteLength.UINT_256);
145
145
  if (noteHash !== commitHash) {
146
146
  (0, utils_1.sendMessage)('invalid commitHash');
147
147
  return;
148
148
  }
149
149
  const { tokenData } = decryptedReceiverNote;
150
- if (tokenData.tokenType !== dop_engine_v5_1.TokenType.ERC20) {
150
+ if (tokenData.tokenType !== dop_engine_1.TokenType.ERC20) {
151
151
  (0, utils_1.sendMessage)('not an erc20');
152
152
  return;
153
153
  }