dop-wallet-v6 1.1.7 → 1.1.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (106) hide show
  1. package/dist/services/artifacts/artifact-downloader.d.ts +1 -1
  2. package/dist/services/artifacts/artifact-downloader.js +20 -20
  3. package/dist/services/artifacts/artifact-downloader.js.map +1 -1
  4. package/dist/services/artifacts/artifact-hash.d.ts +1 -1
  5. package/dist/services/artifacts/artifact-hash.js +8 -8
  6. package/dist/services/artifacts/artifact-hash.js.map +1 -1
  7. package/dist/services/artifacts/artifact-util.d.ts +1 -1
  8. package/dist/services/artifacts/artifact-util.js +13 -13
  9. package/dist/services/artifacts/artifact-util.js.map +1 -1
  10. package/dist/services/dop/core/artifacts.d.ts +2 -2
  11. package/dist/services/dop/core/artifacts.js +5 -5
  12. package/dist/services/dop/core/artifacts.js.map +1 -1
  13. package/dist/services/dop/core/engine.d.ts +2 -2
  14. package/dist/services/dop/core/engine.js +13 -13
  15. package/dist/services/dop/core/engine.js.map +1 -1
  16. package/dist/services/dop/core/prover.d.ts +1 -1
  17. package/dist/services/dop/core/prover.js +2 -2
  18. package/dist/services/dop/core/prover.js.map +1 -1
  19. package/dist/services/dop/core/providers.d.ts +3 -3
  20. package/dist/services/dop/core/providers.js +16 -16
  21. package/dist/services/dop/core/providers.js.map +1 -1
  22. package/dist/services/dop/core/shields.d.ts +1 -1
  23. package/dist/services/dop/core/shields.js +2 -2
  24. package/dist/services/dop/core/shields.js.map +1 -1
  25. package/dist/services/dop/history/transaction-history.d.ts +2 -2
  26. package/dist/services/dop/history/transaction-history.js +14 -14
  27. package/dist/services/dop/history/transaction-history.js.map +1 -1
  28. package/dist/services/dop/process/extract-first-note.d.ts +2 -2
  29. package/dist/services/dop/process/extract-first-note.js +15 -15
  30. package/dist/services/dop/process/extract-first-note.js.map +1 -1
  31. package/dist/services/dop/quick-sync/empty-events.d.ts +1 -1
  32. package/dist/services/dop/quick-sync/empty-events.js.map +1 -1
  33. package/dist/services/dop/quick-sync/graph-type-formatters.d.ts +1 -1
  34. package/dist/services/dop/quick-sync/graph-type-formatters.js +15 -15
  35. package/dist/services/dop/quick-sync/graph-type-formatters.js.map +1 -1
  36. package/dist/services/dop/quick-sync/quick-sync-graph.d.ts +1 -1
  37. package/dist/services/dop/quick-sync/quick-sync-graph.js +17 -17
  38. package/dist/services/dop/quick-sync/quick-sync-graph.js.map +1 -1
  39. package/dist/services/dop/util/bytes.d.ts +1 -1
  40. package/dist/services/dop/util/bytes.js +7 -7
  41. package/dist/services/dop/util/bytes.js.map +1 -1
  42. package/dist/services/dop/util/commitment.d.ts +2 -2
  43. package/dist/services/dop/util/commitment.js +2 -2
  44. package/dist/services/dop/util/commitment.js.map +1 -1
  45. package/dist/services/dop/util/crypto.d.ts +2 -2
  46. package/dist/services/dop/util/crypto.js +15 -15
  47. package/dist/services/dop/util/crypto.js.map +1 -1
  48. package/dist/services/dop/util/db.d.ts +1 -1
  49. package/dist/services/dop/util/db.js +2 -2
  50. package/dist/services/dop/util/db.js.map +1 -1
  51. package/dist/services/dop/wallets/balance-update.d.ts +2 -2
  52. package/dist/services/dop/wallets/balance-update.js +6 -6
  53. package/dist/services/dop/wallets/balance-update.js.map +1 -1
  54. package/dist/services/dop/wallets/balances.d.ts +2 -2
  55. package/dist/services/dop/wallets/balances.js.map +1 -1
  56. package/dist/services/dop/wallets/wallets.d.ts +2 -2
  57. package/dist/services/dop/wallets/wallets.js +10 -10
  58. package/dist/services/dop/wallets/wallets.js.map +1 -1
  59. package/dist/services/ethers/ethers-util.js +2 -2
  60. package/dist/services/ethers/ethers-util.js.map +1 -1
  61. package/dist/services/transactions/proof-cache.d.ts +1 -1
  62. package/dist/services/transactions/proof-cache.js +16 -16
  63. package/dist/services/transactions/proof-cache.js.map +1 -1
  64. package/dist/services/transactions/tx-cross-contract-calls.d.ts +2 -2
  65. package/dist/services/transactions/tx-cross-contract-calls.js +21 -21
  66. package/dist/services/transactions/tx-cross-contract-calls.js.map +1 -1
  67. package/dist/services/transactions/tx-gas-details.d.ts +1 -1
  68. package/dist/services/transactions/tx-gas-details.js +22 -22
  69. package/dist/services/transactions/tx-gas-details.js.map +1 -1
  70. package/dist/services/transactions/tx-gas-relayer-fee-estimator.d.ts +2 -2
  71. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js +2 -2
  72. package/dist/services/transactions/tx-gas-relayer-fee-estimator.js.map +1 -1
  73. package/dist/services/transactions/tx-generator.d.ts +2 -2
  74. package/dist/services/transactions/tx-generator.js +17 -17
  75. package/dist/services/transactions/tx-generator.js.map +1 -1
  76. package/dist/services/transactions/tx-notes.d.ts +2 -2
  77. package/dist/services/transactions/tx-notes.js +13 -13
  78. package/dist/services/transactions/tx-notes.js.map +1 -1
  79. package/dist/services/transactions/tx-nullifiers.d.ts +1 -1
  80. package/dist/services/transactions/tx-nullifiers.js.map +1 -1
  81. package/dist/services/transactions/tx-proof-transfer.d.ts +2 -2
  82. package/dist/services/transactions/tx-proof-transfer.js +3 -3
  83. package/dist/services/transactions/tx-proof-transfer.js.map +1 -1
  84. package/dist/services/transactions/tx-proof-unshield.d.ts +2 -2
  85. package/dist/services/transactions/tx-proof-unshield.js +8 -8
  86. package/dist/services/transactions/tx-proof-unshield.js.map +1 -1
  87. package/dist/services/transactions/tx-shield-base-token.d.ts +1 -1
  88. package/dist/services/transactions/tx-shield-base-token.js +5 -5
  89. package/dist/services/transactions/tx-shield-base-token.js.map +1 -1
  90. package/dist/services/transactions/tx-shield.d.ts +1 -1
  91. package/dist/services/transactions/tx-shield.js +12 -12
  92. package/dist/services/transactions/tx-shield.js.map +1 -1
  93. package/dist/services/transactions/tx-transfer.d.ts +1 -1
  94. package/dist/services/transactions/tx-transfer.js +3 -3
  95. package/dist/services/transactions/tx-transfer.js.map +1 -1
  96. package/dist/services/transactions/tx-unshield.d.ts +1 -1
  97. package/dist/services/transactions/tx-unshield.js +7 -7
  98. package/dist/services/transactions/tx-unshield.js.map +1 -1
  99. package/dist/utils/blocked-address.js +3 -3
  100. package/dist/utils/blocked-address.js.map +1 -1
  101. package/dist/utils/error.js +2 -2
  102. package/dist/utils/error.js.map +1 -1
  103. package/dist/utils/gas-price.d.ts +1 -1
  104. package/dist/utils/gas-price.js +13 -13
  105. package/dist/utils/gas-price.js.map +1 -1
  106. package/package.json +1 -1
@@ -1 +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 Balances,\n EngineEvent,\n WalletScannedEventData,\n} from 'dop-engine';\nimport {\n DopBalancesEvent,\n DopNFTAmount,\n DopERC20Amount,\n NetworkName,\n NETWORK_CONFIG,\n} from 'dop-sharedmodel';\nimport { sendMessage } from '../../../utils/logger';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { walletForID } from '../core';\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\nconst getSerializedERC20Balances = (\n balances: Balances,\n): DopERC20Amount[] => {\n const tokenHashes = Object.keys(balances);\n\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\nconst getNFTBalances = (balances: Balances): 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 wallet: AbstractWallet,\n chain: Chain,\n): Promise<void> => {\n sendMessage(\n `Wallet balance SCANNED. Getting balances for chain ${chain.type}:${chain.id}.`,\n );\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const balances = await wallet.balances(chain);\n const erc20Amounts = getSerializedERC20Balances(balances);\n const nftAmounts = getNFTBalances(balances);\n\n const balancesEvent: DopBalancesEvent = {\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n};\n\nexport const balanceForERC20Token = async (\n wallet: AbstractWallet,\n networkName: NetworkName,\n tokenAddress: string,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.balances(chain);\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 awaitWalletScan = (walletID: string, chain: Chain) => {\n const wallet = walletForID(walletID);\n return new Promise((resolve, reject) =>\n wallet.once(\n EngineEvent.WalletScanComplete,\n ({ chain: returnedChain }: WalletScannedEventData) =>\n returnedChain.type === chain.type && returnedChain.id === chain.id\n ? resolve(returnedChain)\n : reject(),\n ),\n );\n};\n\nexport const awaitMultipleWalletScans = async (\n walletID: string,\n chain: Chain,\n numScans: number,\n) => {\n let i = 0;\n while (i < numScans) {\n // eslint-disable-next-line no-await-in-loop\n await awaitWalletScan(walletID, chain);\n i += 1;\n }\n return Promise.resolve();\n};\n"]}
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 Balances,\n EngineEvent,\n WalletScannedEventData,\n} from 'dop-engine-v5';\nimport {\n DopBalancesEvent,\n DopNFTAmount,\n DopERC20Amount,\n NetworkName,\n NETWORK_CONFIG,\n} from 'dop-sharedmodel-v5';\nimport { sendMessage } from '../../../utils/logger';\nimport { parseDopTokenAddress } from '../util/bytes';\nimport { walletForID } from '../core';\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\nconst getSerializedERC20Balances = (\n balances: Balances,\n): DopERC20Amount[] => {\n const tokenHashes = Object.keys(balances);\n\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\nconst getNFTBalances = (balances: Balances): 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 wallet: AbstractWallet,\n chain: Chain,\n): Promise<void> => {\n sendMessage(\n `Wallet balance SCANNED. Getting balances for chain ${chain.type}:${chain.id}.`,\n );\n if (!onBalanceUpdateCallback) {\n return;\n }\n\n const balances = await wallet.balances(chain);\n const erc20Amounts = getSerializedERC20Balances(balances);\n const nftAmounts = getNFTBalances(balances);\n\n const balancesEvent: DopBalancesEvent = {\n chain,\n erc20Amounts,\n nftAmounts,\n dopWalletID: wallet.id,\n };\n\n onBalanceUpdateCallback(balancesEvent);\n};\n\nexport const balanceForERC20Token = async (\n wallet: AbstractWallet,\n networkName: NetworkName,\n tokenAddress: string,\n): Promise<bigint> => {\n const { chain } = NETWORK_CONFIG[networkName];\n const balances = await wallet.balances(chain);\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 awaitWalletScan = (walletID: string, chain: Chain) => {\n const wallet = walletForID(walletID);\n return new Promise((resolve, reject) =>\n wallet.once(\n EngineEvent.WalletScanComplete,\n ({ chain: returnedChain }: WalletScannedEventData) =>\n returnedChain.type === chain.type && returnedChain.id === chain.id\n ? resolve(returnedChain)\n : reject(),\n ),\n );\n};\n\nexport const awaitMultipleWalletScans = async (\n walletID: string,\n chain: Chain,\n numScans: number,\n) => {\n let i = 0;\n while (i < numScans) {\n // eslint-disable-next-line no-await-in-loop\n await awaitWalletScan(walletID, chain);\n i += 1;\n }\n return Promise.resolve();\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { Chain } from 'dop-engine';
2
- import { DopBalanceRefreshTrigger } from 'dop-sharedmodel';
1
+ import { Chain } from 'dop-engine-v5';
2
+ import { DopBalanceRefreshTrigger } from 'dop-sharedmodel-v5';
3
3
  export declare const refreshDopBalances: DopBalanceRefreshTrigger;
4
4
  export declare const scanUpdatesForMerkletreeAndWallets: (chain: Chain) => Promise<void>;
5
5
  export declare const rescanFullMerkletreesAndWallets: (chain: Chain) => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balances.ts"],"names":[],"mappings":";;;AAEA,gDAA8D;AAC9D,2CAAwD;AAEjD,MAAM,kBAAkB,GAA6B,KAAK,EAC/D,KAAY,EACZ,WAAmB,EACnB,UAAmB,EACnB,gBAA6C,EAC9B,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,WAAW,CAAC,CAAC;QACxC,IAAI,UAAU,EAAE;YAEd,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;SAC1D;aAAM;YACL,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;SACpD;QAED,qEAAqE;QACrE,sDAAsD;QAEtD,8CAA8C;QAC9C,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACjC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,0BAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC5D;AACH,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B;AAEK,MAAM,kCAAkC,GAAG,KAAK,EACrD,KAAY,EACG,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhC,qEAAqE;QACrE,sDAAsD;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,0CAAkC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC5E;AACH,CAAC,CAAC;AAZW,QAAA,kCAAkC,sCAY7C;AAEK,MAAM,+BAA+B,GAAG,KAAK,EAClD,KAAY,EACG,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;QAEpD,qEAAqE;QACrE,sDAAsD;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,uCAA+B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACzE;AACH,CAAC,CAAC;AAZW,QAAA,+BAA+B,mCAY1C;AAEK,MAAM,4BAA4B,GAAG,KAAK,EAC/C,KAAY,EACZ,gBAA6C,EAC9B,EAAE;IACjB,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC,CAAC;AANW,QAAA,4BAA4B,gCAMvC","sourcesContent":["import { Chain } from 'dop-engine';\nimport { DopBalanceRefreshTrigger } from 'dop-sharedmodel';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getEngine, walletForID } from '../core/engine';\n\nexport const refreshDopBalances: DopBalanceRefreshTrigger = async (\n chain: Chain,\n dopWalletID: string,\n fullRescan: boolean,\n progressCallback?: (progress: number) => void,\n): Promise<void> => {\n try {\n const wallet = walletForID(dopWalletID);\n if (fullRescan) {\n\n await wallet.fullRescanBalances(chain, progressCallback);\n } else {\n await wallet.scanBalances(chain, progressCallback);\n }\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n\n // Also kick off a background merkletree scan.\n // This will also call wallet.scanBalances when it's done, but may take longer.\n // So the user will see balances refresh from existing merkletree first.\n const engine = getEngine();\n await engine.scanHistory(chain);\n } catch (err) {\n throw reportAndSanitizeError(refreshDopBalances.name, err);\n }\n};\n\nexport const scanUpdatesForMerkletreeAndWallets = async (\n chain: Chain,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.scanHistory(chain);\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n } catch (err) {\n throw reportAndSanitizeError(scanUpdatesForMerkletreeAndWallets.name, err);\n }\n};\n\nexport const rescanFullMerkletreesAndWallets = async (\n chain: Chain,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.fullRescanMerkletreesAndWallets(chain);\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n } catch (err) {\n throw reportAndSanitizeError(rescanFullMerkletreesAndWallets.name, err);\n }\n};\n\nexport const fullRescanBalancesAllWallets = async (\n chain: Chain,\n progressCallback?: (progress: number) => void,\n): Promise<void> => {\n const engine = getEngine();\n await engine.scanAllWallets(chain, progressCallback);\n};\n"]}
1
+ {"version":3,"file":"balances.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/balances.ts"],"names":[],"mappings":";;;AAEA,gDAA8D;AAC9D,2CAAwD;AAEjD,MAAM,kBAAkB,GAA6B,KAAK,EAC/D,KAAY,EACZ,WAAmB,EACnB,UAAmB,EACnB,gBAA6C,EAC9B,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,oBAAW,EAAC,WAAW,CAAC,CAAC;QACxC,IAAI,UAAU,EAAE;YAEd,MAAM,MAAM,CAAC,kBAAkB,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;SAC1D;aAAM;YACL,MAAM,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;SACpD;QAED,qEAAqE;QACrE,sDAAsD;QAEtD,8CAA8C;QAC9C,+EAA+E;QAC/E,wEAAwE;QACxE,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;KACjC;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,0BAAkB,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC5D;AACH,CAAC,CAAC;AA1BW,QAAA,kBAAkB,sBA0B7B;AAEK,MAAM,kCAAkC,GAAG,KAAK,EACrD,KAAY,EACG,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAEhC,qEAAqE;QACrE,sDAAsD;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,0CAAkC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KAC5E;AACH,CAAC,CAAC;AAZW,QAAA,kCAAkC,sCAY7C;AAEK,MAAM,+BAA+B,GAAG,KAAK,EAClD,KAAY,EACG,EAAE;IACjB,IAAI;QACF,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;QAC3B,MAAM,MAAM,CAAC,+BAA+B,CAAC,KAAK,CAAC,CAAC;QAEpD,qEAAqE;QACrE,sDAAsD;KACvD;IAAC,OAAO,GAAG,EAAE;QACZ,MAAM,IAAA,8BAAsB,EAAC,uCAA+B,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;KACzE;AACH,CAAC,CAAC;AAZW,QAAA,+BAA+B,mCAY1C;AAEK,MAAM,4BAA4B,GAAG,KAAK,EAC/C,KAAY,EACZ,gBAA6C,EAC9B,EAAE;IACjB,MAAM,MAAM,GAAG,IAAA,kBAAS,GAAE,CAAC;IAC3B,MAAM,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,gBAAgB,CAAC,CAAC;AACvD,CAAC,CAAC;AANW,QAAA,4BAA4B,gCAMvC","sourcesContent":["import { Chain } from 'dop-engine-v5';\nimport { DopBalanceRefreshTrigger } from 'dop-sharedmodel-v5';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getEngine, walletForID } from '../core/engine';\n\nexport const refreshDopBalances: DopBalanceRefreshTrigger = async (\n chain: Chain,\n dopWalletID: string,\n fullRescan: boolean,\n progressCallback?: (progress: number) => void,\n): Promise<void> => {\n try {\n const wallet = walletForID(dopWalletID);\n if (fullRescan) {\n\n await wallet.fullRescanBalances(chain, progressCallback);\n } else {\n await wallet.scanBalances(chain, progressCallback);\n }\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n\n // Also kick off a background merkletree scan.\n // This will also call wallet.scanBalances when it's done, but may take longer.\n // So the user will see balances refresh from existing merkletree first.\n const engine = getEngine();\n await engine.scanHistory(chain);\n } catch (err) {\n throw reportAndSanitizeError(refreshDopBalances.name, err);\n }\n};\n\nexport const scanUpdatesForMerkletreeAndWallets = async (\n chain: Chain,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.scanHistory(chain);\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n } catch (err) {\n throw reportAndSanitizeError(scanUpdatesForMerkletreeAndWallets.name, err);\n }\n};\n\nexport const rescanFullMerkletreesAndWallets = async (\n chain: Chain,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.fullRescanMerkletreesAndWallets(chain);\n\n // Wallet will trigger .emit('scanned', {chain}) event when finished,\n // which calls `onBalancesUpdate` (balance-update.ts).\n } catch (err) {\n throw reportAndSanitizeError(rescanFullMerkletreesAndWallets.name, err);\n }\n};\n\nexport const fullRescanBalancesAllWallets = async (\n chain: Chain,\n progressCallback?: (progress: number) => void,\n): Promise<void> => {\n const engine = getEngine();\n await engine.scanAllWallets(chain, progressCallback);\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { AddressData } from 'dop-engine';
2
- import { DopWalletInfo } from 'dop-sharedmodel';
1
+ import { AddressData } from 'dop-engine-v5';
2
+ import { DopWalletInfo } from 'dop-sharedmodel-v5';
3
3
  export declare const createDopWallet: (encryptionKey: string, mnemonic: string, creationBlockNumbers: Optional<MapType<number>>) => Promise<DopWalletInfo>;
4
4
  export declare const createViewOnlyDopWallet: (encryptionKey: string, shareableViewingKey: string, creationBlockNumbers: Optional<MapType<number>>) => Promise<DopWalletInfo>;
5
5
  export declare const loadWalletByID: (encryptionKey: string, dopWalletID: string, isViewOnlyWallet: boolean) => Promise<DopWalletInfo>;
@@ -1,14 +1,14 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.getWalletShareableViewingKey = exports.getDopAddress = exports.validateEthAddress = exports.assertValidEthAddress = exports.validateDopAddress = exports.assertValidDopAddress = exports.signWithWalletViewingKey = exports.getDopWalletPrivateViewingKey = exports.getDopWalletAddressData = exports.getWalletMnemonic = exports.deleteWalletByID = exports.unloadWalletByID = exports.loadWalletByID = exports.createViewOnlyDopWallet = exports.createDopWallet = void 0;
4
- const dop_engine_1 = require("dop-engine");
5
- const dop_sharedmodel_1 = require("dop-sharedmodel");
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
6
6
  const engine_1 = require("../core/engine");
7
7
  const balance_update_1 = require("./balance-update");
8
8
  const error_1 = require("../../../utils/error");
9
9
  const ethers_1 = require("ethers");
10
10
  const subscribeToBalanceEvents = (wallet) => {
11
- wallet.on(dop_engine_1.EngineEvent.WalletScanComplete, ({ chain }) => {
11
+ wallet.on(dop_engine_v5_1.EngineEvent.WalletScanComplete, ({ chain }) => {
12
12
  // eslint-disable-next-line @typescript-eslint/no-floating-promises
13
13
  (0, balance_update_1.onBalancesUpdate)(wallet, chain);
14
14
  });
@@ -113,7 +113,7 @@ exports.deleteWalletByID = deleteWalletByID;
113
113
  const getWalletMnemonic = async (encryptionKey, dopWalletID) => {
114
114
  const { db } = (0, engine_1.getEngine)();
115
115
  // Reload wallet to ensure that encryption key is valid.
116
- const walletData = (await dop_engine_1.DopWallet.getEncryptedData(db, encryptionKey, dopWalletID));
116
+ const walletData = (await dop_engine_v5_1.DopWallet.getEncryptedData(db, encryptionKey, dopWalletID));
117
117
  if (!walletData.mnemonic) {
118
118
  throw new Error('No mnemonic for wallet.');
119
119
  }
@@ -122,7 +122,7 @@ const getWalletMnemonic = async (encryptionKey, dopWalletID) => {
122
122
  exports.getWalletMnemonic = getWalletMnemonic;
123
123
  const getDopWalletAddressData = (address) => {
124
124
  (0, exports.assertValidDopAddress)(address);
125
- return dop_engine_1.DopEngine.decodeAddress(address);
125
+ return dop_engine_v5_1.DopEngine.decodeAddress(address);
126
126
  };
127
127
  exports.getDopWalletAddressData = getDopWalletAddressData;
128
128
  const getDopWalletPrivateViewingKey = (dopWalletID) => {
@@ -132,8 +132,8 @@ const getDopWalletPrivateViewingKey = (dopWalletID) => {
132
132
  exports.getDopWalletPrivateViewingKey = getDopWalletPrivateViewingKey;
133
133
  const signWithWalletViewingKey = async (dopWalletID, message) => {
134
134
  const wallet = (0, engine_1.walletForID)(dopWalletID);
135
- const signature = await wallet.signWithViewingKey((0, dop_engine_1.hexStringToBytes)(message));
136
- return (0, dop_engine_1.hexlify)(signature);
135
+ const signature = await wallet.signWithViewingKey((0, dop_engine_v5_1.hexStringToBytes)(message));
136
+ return (0, dop_engine_v5_1.hexlify)(signature);
137
137
  };
138
138
  exports.signWithWalletViewingKey = signWithWalletViewingKey;
139
139
  const assertValidDopAddress = (address) => {
@@ -144,7 +144,7 @@ const assertValidDopAddress = (address) => {
144
144
  exports.assertValidDopAddress = assertValidDopAddress;
145
145
  const validateDopAddress = (address) => {
146
146
  try {
147
- return dop_engine_1.DopEngine.decodeAddress(address) != null;
147
+ return dop_engine_v5_1.DopEngine.decodeAddress(address) != null;
148
148
  }
149
149
  catch (err) {
150
150
  return false;
@@ -197,9 +197,9 @@ const formatCreationBlockNumbers = (creationBlockNumbers) => {
197
197
  const formattedCreationBlockNumbers = [];
198
198
  const networksNames = Object.keys(creationBlockNumbers);
199
199
  for (const networkName of networksNames) {
200
- const network = dop_sharedmodel_1.NETWORK_CONFIG[networkName];
200
+ const network = dop_sharedmodel_v5_1.NETWORK_CONFIG[networkName];
201
201
  const blockNumber = creationBlockNumbers[networkName];
202
- if (!(0, dop_sharedmodel_1.isDefined)(blockNumber)) {
202
+ if (!(0, dop_sharedmodel_v5_1.isDefined)(blockNumber)) {
203
203
  continue;
204
204
  }
205
205
  formattedCreationBlockNumbers[_a = network.chain.type] ?? (formattedCreationBlockNumbers[_a] = []);
@@ -1 +1 @@
1
- {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/wallets.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopWallet,\n EngineEvent,\n WalletScannedEventData,\n AbstractWallet,\n WalletData,\n AddressData,\n DopEngine,\n hexlify,\n hexStringToBytes,\n} from 'dop-engine';\nimport {\n DopWalletInfo,\n NetworkName,\n NETWORK_CONFIG,\n isDefined,\n} from 'dop-sharedmodel';\nimport { getEngine, walletForID } from '../core/engine';\nimport { onBalancesUpdate } from './balance-update';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getAddress } from 'ethers';\n\nconst subscribeToBalanceEvents = (wallet: AbstractWallet) => {\n wallet.on(\n EngineEvent.WalletScanComplete,\n ({ chain }: WalletScannedEventData) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onBalancesUpdate(wallet, chain);\n },\n );\n};\n\nconst addressForWallet = (wallet: AbstractWallet): string => {\n return wallet.getAddress();\n};\n\nconst infoForWallet = (wallet: AbstractWallet): DopWalletInfo => {\n const dopAddress = addressForWallet(wallet);\n return {\n id: wallet.id,\n dopAddress,\n };\n};\n\nconst getExistingWallet = (\n dopWalletID: string,\n): Optional<AbstractWallet> => {\n try {\n const existingWallet = walletForID(dopWalletID);\n return existingWallet;\n } catch (_err) {\n return undefined;\n }\n};\n\nconst loadExistingWallet = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n const existingWallet = getExistingWallet(dopWalletID);\n if (existingWallet) {\n return infoForWallet(existingWallet);\n }\n const engine = getEngine();\n let wallet: AbstractWallet;\n\n if (isViewOnlyWallet) {\n wallet = await engine.loadExistingViewOnlyWallet(\n encryptionKey,\n dopWalletID,\n );\n } else {\n wallet = await engine.loadExistingWallet(encryptionKey, dopWalletID);\n }\n\n subscribeToBalanceEvents(wallet);\n return infoForWallet(wallet);\n};\n\nconst createWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createWalletFromMnemonic(\n encryptionKey,\n mnemonic,\n 0,\n formattedCreationBlockNumbers,\n );\n subscribeToBalanceEvents(wallet);\n return infoForWallet(wallet);\n};\n\nconst createViewOnlyWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createViewOnlyWalletFromShareableViewingKey(\n encryptionKey,\n shareableViewingKey,\n formattedCreationBlockNumbers,\n );\n subscribeToBalanceEvents(wallet);\n return infoForWallet(wallet);\n};\n\nexport const createDopWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n try {\n return await createWallet(encryptionKey, mnemonic, creationBlockNumbers);\n } catch (err) {\n throw reportAndSanitizeError(createDopWallet.name, err);\n }\n};\n\nexport const createViewOnlyDopWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n try {\n return await createViewOnlyWallet(\n encryptionKey,\n shareableViewingKey,\n creationBlockNumbers,\n );\n } catch (err) {\n throw reportAndSanitizeError(createViewOnlyDopWallet.name, err);\n }\n};\n\nexport const loadWalletByID = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n try {\n return await loadExistingWallet(\n encryptionKey,\n dopWalletID,\n isViewOnlyWallet,\n );\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(loadWalletByID.name, err);\n throw new Error(`Could not load DOP wallet: ${sanitizedError.message}`);\n }\n};\n\nexport const unloadWalletByID = (dopWalletID: string): void => {\n try {\n const engine = getEngine();\n engine.unloadWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not unload DOP wallet.');\n }\n};\n\nexport const deleteWalletByID = async (\n dopWalletID: string,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.deleteWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not delete DOP wallet.');\n }\n};\n\nexport const getWalletMnemonic = async (\n encryptionKey: string,\n dopWalletID: string,\n) => {\n const { db } = getEngine();\n // Reload wallet to ensure that encryption key is valid.\n const walletData = (await DopWallet.getEncryptedData(\n db,\n encryptionKey,\n dopWalletID,\n )) as WalletData;\n\n if (!walletData.mnemonic) {\n throw new Error('No mnemonic for wallet.');\n }\n return walletData.mnemonic;\n};\n\nexport const getDopWalletAddressData = (address: string): AddressData => {\n assertValidDopAddress(address);\n return DopEngine.decodeAddress(address);\n};\n\nexport const getDopWalletPrivateViewingKey = (\n dopWalletID: string,\n): Uint8Array => {\n const wallet = walletForID(dopWalletID);\n return wallet.getViewingKeyPair().privateKey;\n};\n\nexport const signWithWalletViewingKey = async (\n dopWalletID: string,\n message: string,\n): Promise<string> => {\n const wallet = walletForID(dopWalletID);\n const signature = await wallet.signWithViewingKey(hexStringToBytes(message));\n return hexlify(signature);\n};\n\nexport const assertValidDopAddress = (address: string): void => {\n if (!validateDopAddress(address)) {\n throw new Error('Invalid DOP address.');\n }\n};\n\nexport const validateDopAddress = (address: string): boolean => {\n try {\n return DopEngine.decodeAddress(address) != null;\n } catch (err) {\n return false;\n }\n};\n\nexport const assertValidEthAddress = (address: string) => {\n if (!validateEthAddress(address)) {\n throw new Error('Invalid wallet address.');\n }\n};\n\nexport const validateEthAddress = (address: string): boolean => {\n try {\n getAddress(address);\n return true;\n } catch (err) {\n return false;\n }\n};\n\nexport const getDopAddress = (\n dopWalletID: string,\n): Optional<string> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.getAddress();\n } catch (err) {\n reportAndSanitizeError(getDopAddress.name, err);\n return undefined;\n }\n};\n\nexport const getWalletShareableViewingKey = async (\n dopWalletID: string,\n): Promise<Optional<string>> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.generateShareableViewingKey();\n } catch (err) {\n reportAndSanitizeError(getWalletShareableViewingKey.name, err);\n return undefined;\n }\n};\n\nconst formatCreationBlockNumbers = (\n creationBlockNumbers: Optional<MapType<number>>,\n): Optional<number[][]> => {\n // Format creationBlockNumbers from client side { <NetworkName>: <BlockNumber> } map to dop-engine's number[][] type\n if (!creationBlockNumbers) return;\n\n const formattedCreationBlockNumbers: number[][] = [];\n const networksNames = Object.keys(creationBlockNumbers) as NetworkName[];\n\n for (const networkName of networksNames) {\n const network = NETWORK_CONFIG[networkName];\n\n const blockNumber = creationBlockNumbers[networkName];\n if (!isDefined(blockNumber)) {\n continue;\n }\n\n formattedCreationBlockNumbers[network.chain.type] ??= [];\n formattedCreationBlockNumbers[network.chain.type][network.chain.id] =\n blockNumber;\n }\n\n return formattedCreationBlockNumbers;\n};\n"]}
1
+ {"version":3,"file":"wallets.js","sourceRoot":"","sources":["../../../../src/services/dop/wallets/wallets.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n DopWallet,\n EngineEvent,\n WalletScannedEventData,\n AbstractWallet,\n WalletData,\n AddressData,\n DopEngine,\n hexlify,\n hexStringToBytes,\n} from 'dop-engine-v5';\nimport {\n DopWalletInfo,\n NetworkName,\n NETWORK_CONFIG,\n isDefined,\n} from 'dop-sharedmodel-v5';\nimport { getEngine, walletForID } from '../core/engine';\nimport { onBalancesUpdate } from './balance-update';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getAddress } from 'ethers';\n\nconst subscribeToBalanceEvents = (wallet: AbstractWallet) => {\n wallet.on(\n EngineEvent.WalletScanComplete,\n ({ chain }: WalletScannedEventData) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onBalancesUpdate(wallet, chain);\n },\n );\n};\n\nconst addressForWallet = (wallet: AbstractWallet): string => {\n return wallet.getAddress();\n};\n\nconst infoForWallet = (wallet: AbstractWallet): DopWalletInfo => {\n const dopAddress = addressForWallet(wallet);\n return {\n id: wallet.id,\n dopAddress,\n };\n};\n\nconst getExistingWallet = (\n dopWalletID: string,\n): Optional<AbstractWallet> => {\n try {\n const existingWallet = walletForID(dopWalletID);\n return existingWallet;\n } catch (_err) {\n return undefined;\n }\n};\n\nconst loadExistingWallet = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n const existingWallet = getExistingWallet(dopWalletID);\n if (existingWallet) {\n return infoForWallet(existingWallet);\n }\n const engine = getEngine();\n let wallet: AbstractWallet;\n\n if (isViewOnlyWallet) {\n wallet = await engine.loadExistingViewOnlyWallet(\n encryptionKey,\n dopWalletID,\n );\n } else {\n wallet = await engine.loadExistingWallet(encryptionKey, dopWalletID);\n }\n\n subscribeToBalanceEvents(wallet);\n return infoForWallet(wallet);\n};\n\nconst createWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createWalletFromMnemonic(\n encryptionKey,\n mnemonic,\n 0,\n formattedCreationBlockNumbers,\n );\n subscribeToBalanceEvents(wallet);\n return infoForWallet(wallet);\n};\n\nconst createViewOnlyWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n const formattedCreationBlockNumbers =\n formatCreationBlockNumbers(creationBlockNumbers);\n\n const engine = getEngine();\n const wallet = await engine.createViewOnlyWalletFromShareableViewingKey(\n encryptionKey,\n shareableViewingKey,\n formattedCreationBlockNumbers,\n );\n subscribeToBalanceEvents(wallet);\n return infoForWallet(wallet);\n};\n\nexport const createDopWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n try {\n return await createWallet(encryptionKey, mnemonic, creationBlockNumbers);\n } catch (err) {\n throw reportAndSanitizeError(createDopWallet.name, err);\n }\n};\n\nexport const createViewOnlyDopWallet = async (\n encryptionKey: string,\n shareableViewingKey: string,\n creationBlockNumbers: Optional<MapType<number>>,\n): Promise<DopWalletInfo> => {\n try {\n return await createViewOnlyWallet(\n encryptionKey,\n shareableViewingKey,\n creationBlockNumbers,\n );\n } catch (err) {\n throw reportAndSanitizeError(createViewOnlyDopWallet.name, err);\n }\n};\n\nexport const loadWalletByID = async (\n encryptionKey: string,\n dopWalletID: string,\n isViewOnlyWallet: boolean,\n): Promise<DopWalletInfo> => {\n try {\n return await loadExistingWallet(\n encryptionKey,\n dopWalletID,\n isViewOnlyWallet,\n );\n } catch (err) {\n const sanitizedError = reportAndSanitizeError(loadWalletByID.name, err);\n throw new Error(`Could not load DOP wallet: ${sanitizedError.message}`);\n }\n};\n\nexport const unloadWalletByID = (dopWalletID: string): void => {\n try {\n const engine = getEngine();\n engine.unloadWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not unload DOP wallet.');\n }\n};\n\nexport const deleteWalletByID = async (\n dopWalletID: string,\n): Promise<void> => {\n try {\n const engine = getEngine();\n await engine.deleteWallet(dopWalletID);\n } catch (err) {\n throw new Error('Could not delete DOP wallet.');\n }\n};\n\nexport const getWalletMnemonic = async (\n encryptionKey: string,\n dopWalletID: string,\n) => {\n const { db } = getEngine();\n // Reload wallet to ensure that encryption key is valid.\n const walletData = (await DopWallet.getEncryptedData(\n db,\n encryptionKey,\n dopWalletID,\n )) as WalletData;\n\n if (!walletData.mnemonic) {\n throw new Error('No mnemonic for wallet.');\n }\n return walletData.mnemonic;\n};\n\nexport const getDopWalletAddressData = (address: string): AddressData => {\n assertValidDopAddress(address);\n return DopEngine.decodeAddress(address);\n};\n\nexport const getDopWalletPrivateViewingKey = (\n dopWalletID: string,\n): Uint8Array => {\n const wallet = walletForID(dopWalletID);\n return wallet.getViewingKeyPair().privateKey;\n};\n\nexport const signWithWalletViewingKey = async (\n dopWalletID: string,\n message: string,\n): Promise<string> => {\n const wallet = walletForID(dopWalletID);\n const signature = await wallet.signWithViewingKey(hexStringToBytes(message));\n return hexlify(signature);\n};\n\nexport const assertValidDopAddress = (address: string): void => {\n if (!validateDopAddress(address)) {\n throw new Error('Invalid DOP address.');\n }\n};\n\nexport const validateDopAddress = (address: string): boolean => {\n try {\n return DopEngine.decodeAddress(address) != null;\n } catch (err) {\n return false;\n }\n};\n\nexport const assertValidEthAddress = (address: string) => {\n if (!validateEthAddress(address)) {\n throw new Error('Invalid wallet address.');\n }\n};\n\nexport const validateEthAddress = (address: string): boolean => {\n try {\n getAddress(address);\n return true;\n } catch (err) {\n return false;\n }\n};\n\nexport const getDopAddress = (\n dopWalletID: string,\n): Optional<string> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.getAddress();\n } catch (err) {\n reportAndSanitizeError(getDopAddress.name, err);\n return undefined;\n }\n};\n\nexport const getWalletShareableViewingKey = async (\n dopWalletID: string,\n): Promise<Optional<string>> => {\n try {\n const wallet = walletForID(dopWalletID);\n return wallet.generateShareableViewingKey();\n } catch (err) {\n reportAndSanitizeError(getWalletShareableViewingKey.name, err);\n return undefined;\n }\n};\n\nconst formatCreationBlockNumbers = (\n creationBlockNumbers: Optional<MapType<number>>,\n): Optional<number[][]> => {\n // Format creationBlockNumbers from client side { <NetworkName>: <BlockNumber> } map to dop-engine's number[][] type\n if (!creationBlockNumbers) return;\n\n const formattedCreationBlockNumbers: number[][] = [];\n const networksNames = Object.keys(creationBlockNumbers) as NetworkName[];\n\n for (const networkName of networksNames) {\n const network = NETWORK_CONFIG[networkName];\n\n const blockNumber = creationBlockNumbers[networkName];\n if (!isDefined(blockNumber)) {\n continue;\n }\n\n formattedCreationBlockNumbers[network.chain.type] ??= [];\n formattedCreationBlockNumbers[network.chain.type][network.chain.id] =\n blockNumber;\n }\n\n return formattedCreationBlockNumbers;\n};\n"]}
@@ -1,9 +1,9 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mnemonicToPKey = void 0;
4
- const dop_engine_1 = require("dop-engine");
4
+ const dop_engine_v5_1 = require("dop-engine-v5");
5
5
  const mnemonicToPKey = (mnemonic, derivationIndex) => {
6
- return `0x${(0, dop_engine_1.mnemonicToPrivateKey)(mnemonic, derivationIndex)}`;
6
+ return `0x${(0, dop_engine_v5_1.mnemonicToPrivateKey)(mnemonic, derivationIndex)}`;
7
7
  };
8
8
  exports.mnemonicToPKey = mnemonicToPKey;
9
9
  //# sourceMappingURL=ethers-util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ethers-util.js","sourceRoot":"","sources":["../../../src/services/ethers/ethers-util.ts"],"names":[],"mappings":";;;AAAA,2CAAkD;AAE3C,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,eAAwB,EAAE,EAAE;IAC3E,OAAO,KAAK,IAAA,iCAAoB,EAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB","sourcesContent":["import { mnemonicToPrivateKey } from 'dop-engine';\n\nexport const mnemonicToPKey = (mnemonic: string, derivationIndex?: number) => {\n return `0x${mnemonicToPrivateKey(mnemonic, derivationIndex)}`;\n};\n"]}
1
+ {"version":3,"file":"ethers-util.js","sourceRoot":"","sources":["../../../src/services/ethers/ethers-util.ts"],"names":[],"mappings":";;;AAAA,iDAAqD;AAE9C,MAAM,cAAc,GAAG,CAAC,QAAgB,EAAE,eAAwB,EAAE,EAAE;IAC3E,OAAO,KAAK,IAAA,oCAAoB,EAAC,QAAQ,EAAE,eAAe,CAAC,EAAE,CAAC;AAChE,CAAC,CAAC;AAFW,QAAA,cAAc,kBAEzB","sourcesContent":["import { mnemonicToPrivateKey } from 'dop-engine-v5';\n\nexport const mnemonicToPKey = (mnemonic: string, derivationIndex?: number) => {\n return `0x${mnemonicToPrivateKey(mnemonic, derivationIndex)}`;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { NetworkName, ProofType, DopNFTAmountRecipient, DopERC20Amount, DopERC20AmountRecipient, DopNFTAmount, TransactionGasDetails, DopERC20Recipient } from 'dop-sharedmodel';
1
+ import { NetworkName, ProofType, DopNFTAmountRecipient, DopERC20Amount, DopERC20AmountRecipient, DopNFTAmount, TransactionGasDetails, DopERC20Recipient } from 'dop-sharedmodel-v5';
2
2
  import { ContractTransaction } from 'ethers';
3
3
  export type ProvedTransaction = {
4
4
  proofType: ProofType;
@@ -1,7 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.validateCachedProvedTransaction = exports.getCachedProvedTransaction = exports.setCachedProvedTransaction = exports.populateProvedTransaction = void 0;
4
- const dop_sharedmodel_1 = require("dop-sharedmodel");
4
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
5
5
  const gas_price_1 = require("../../utils/gas-price");
6
6
  const utils_1 = require("../../utils/utils");
7
7
  const tx_gas_details_1 = require("./tx-gas-details");
@@ -23,7 +23,7 @@ const populateProvedTransaction = async (networkName, proofType, dopWalletID, sh
23
23
  };
24
24
  exports.populateProvedTransaction = populateProvedTransaction;
25
25
  const setCachedProvedTransaction = (tx) => {
26
- if ((0, dop_sharedmodel_1.isDefined)(tx?.transaction?.from)) {
26
+ if ((0, dop_sharedmodel_v5_1.isDefined)(tx?.transaction?.from)) {
27
27
  throw new Error(`Cannot cache a transaction with a 'from' address.`);
28
28
  }
29
29
  cachedProvedTransaction = tx;
@@ -35,35 +35,35 @@ const getCachedProvedTransaction = () => {
35
35
  exports.getCachedProvedTransaction = getCachedProvedTransaction;
36
36
  const shouldValidateERC20AmountRecipients = (proofType) => {
37
37
  switch (proofType) {
38
- case dop_sharedmodel_1.ProofType.CrossContractCalls:
38
+ case dop_sharedmodel_v5_1.ProofType.CrossContractCalls:
39
39
  // Skip validation for erc20AmountRecipients, which is not used
40
40
  // in this transaction type.
41
41
  return false;
42
- case dop_sharedmodel_1.ProofType.Transfer:
43
- case dop_sharedmodel_1.ProofType.Unshield:
44
- case dop_sharedmodel_1.ProofType.UnshieldBaseToken:
42
+ case dop_sharedmodel_v5_1.ProofType.Transfer:
43
+ case dop_sharedmodel_v5_1.ProofType.Unshield:
44
+ case dop_sharedmodel_v5_1.ProofType.UnshieldBaseToken:
45
45
  return true;
46
46
  }
47
47
  };
48
48
  const shouldValidateRelayAdaptAmounts = (proofType) => {
49
49
  switch (proofType) {
50
- case dop_sharedmodel_1.ProofType.CrossContractCalls:
51
- case dop_sharedmodel_1.ProofType.UnshieldBaseToken:
50
+ case dop_sharedmodel_v5_1.ProofType.CrossContractCalls:
51
+ case dop_sharedmodel_v5_1.ProofType.UnshieldBaseToken:
52
52
  // Only validate for Cross Contract and Unshield Base Token proofs.
53
53
  return true;
54
- case dop_sharedmodel_1.ProofType.Transfer:
55
- case dop_sharedmodel_1.ProofType.Unshield:
54
+ case dop_sharedmodel_v5_1.ProofType.Transfer:
55
+ case dop_sharedmodel_v5_1.ProofType.Unshield:
56
56
  return false;
57
57
  }
58
58
  };
59
59
  const shouldValidateCrossContractCalls = (proofType) => {
60
60
  switch (proofType) {
61
- case dop_sharedmodel_1.ProofType.CrossContractCalls:
61
+ case dop_sharedmodel_v5_1.ProofType.CrossContractCalls:
62
62
  // Only validate for Cross Contract proofs.
63
63
  return true;
64
- case dop_sharedmodel_1.ProofType.Transfer:
65
- case dop_sharedmodel_1.ProofType.Unshield:
66
- case dop_sharedmodel_1.ProofType.UnshieldBaseToken:
64
+ case dop_sharedmodel_v5_1.ProofType.Transfer:
65
+ case dop_sharedmodel_v5_1.ProofType.Unshield:
66
+ case dop_sharedmodel_v5_1.ProofType.UnshieldBaseToken:
67
67
  return false;
68
68
  }
69
69
  };
@@ -77,12 +77,12 @@ const validateCachedProvedTransaction = (networkName, proofType, dopWalletID, sh
77
77
  else if (cachedProvedTransaction.dopWalletID !== dopWalletID) {
78
78
  throw new Error('Mismatch: dopWalletID.');
79
79
  }
80
- else if (proofType === dop_sharedmodel_1.ProofType.Transfer &&
80
+ else if (proofType === dop_sharedmodel_v5_1.ProofType.Transfer &&
81
81
  cachedProvedTransaction.showSenderAddressToRecipient !==
82
82
  showSenderAddressToRecipient) {
83
83
  throw new Error('Mismatch: showSenderAddressToRecipient.');
84
84
  }
85
- else if (proofType === dop_sharedmodel_1.ProofType.Transfer &&
85
+ else if (proofType === dop_sharedmodel_v5_1.ProofType.Transfer &&
86
86
  cachedProvedTransaction.memoText !== memoText) {
87
87
  throw new Error('Mismatch: memoText.');
88
88
  }
@@ -1 +1 @@
1
- {"version":3,"file":"proof-cache.js","sourceRoot":"","sources":["../../../src/services/transactions/proof-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n NetworkName,\n ProofType,\n DopNFTAmountRecipient,\n DopERC20Amount,\n DopERC20AmountRecipient,\n DopNFTAmount,\n TransactionGasDetails,\n isDefined,\n DopERC20Recipient,\n} from 'dop-sharedmodel';\nimport { shouldSetOverallBatchMinGasPriceForNetwork } from '../../utils/gas-price';\nimport { compareContractTransactionArrays } from '../../utils/utils';\nimport { setGasDetailsForTransaction } from './tx-gas-details';\nimport {\n compareERC20AmountRecipients,\n compareERC20AmountRecipientArrays,\n compareERC20AmountArrays,\n compareNFTAmountRecipientArrays,\n compareNFTAmountArrays,\n compareERC20RecipientArrays,\n} from './tx-notes';\nimport { ContractTransaction } from 'ethers';\n\nexport type ProvedTransaction = {\n proofType: ProofType;\n transaction: ContractTransaction;\n dopWalletID: string;\n showSenderAddressToRecipient: boolean;\n memoText: Optional<string>;\n erc20AmountRecipients: DopERC20AmountRecipient[];\n nftAmountRecipients: DopNFTAmountRecipient[];\n relayAdaptUnshieldERC20Amounts: Optional<DopERC20Amount[]>;\n relayAdaptUnshieldNFTAmounts: Optional<DopNFTAmount[]>;\n relayAdaptShieldERC20Recipients: Optional<DopERC20Recipient[]>;\n relayAdaptShieldNFTRecipients: Optional<DopNFTAmount[]>;\n crossContractCalls: Optional<ContractTransaction[]>;\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>;\n sendWithPublicWallet: boolean;\n overallBatchMinGasPrice: Optional<bigint>;\n nullifiers: string[];\n};\n\nlet cachedProvedTransaction: Optional<ProvedTransaction>;\n\nexport const populateProvedTransaction = async (\n networkName: NetworkName,\n proofType: ProofType,\n dopWalletID: string,\n showSenderAddressToRecipient: boolean,\n memoText: Optional<string>,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n relayAdaptUnshieldERC20Amounts: Optional<DopERC20Amount[]>,\n relayAdaptUnshieldNFTAmounts: Optional<DopNFTAmount[]>,\n relayAdaptShieldERC20Recipients: Optional<DopERC20Recipient[]>,\n relayAdaptShieldNFTRecipients: Optional<DopNFTAmount[]>,\n crossContractCalls: Optional<ContractTransaction[]>,\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n gasDetails: TransactionGasDetails,\n): Promise<{\n transaction: ContractTransaction;\n nullifiers: string[];\n}> => {\n try {\n validateCachedProvedTransaction(\n networkName,\n proofType,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptUnshieldERC20Amounts,\n relayAdaptUnshieldNFTAmounts,\n relayAdaptShieldERC20Recipients,\n relayAdaptShieldNFTRecipients,\n crossContractCalls,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n );\n } catch (err) {\n if (!(err instanceof Error)) {\n throw err;\n }\n throw new Error(`Invalid proof for this transaction. ${err.message}`);\n }\n\n const { transaction, nullifiers } = getCachedProvedTransaction();\n\n setGasDetailsForTransaction(\n networkName,\n transaction,\n gasDetails,\n sendWithPublicWallet,\n );\n\n return { transaction, nullifiers };\n};\n\nexport const setCachedProvedTransaction = (tx?: ProvedTransaction) => {\n if (isDefined(tx?.transaction?.from)) {\n throw new Error(`Cannot cache a transaction with a 'from' address.`);\n }\n cachedProvedTransaction = tx;\n};\n\nexport const getCachedProvedTransaction = (): ProvedTransaction => {\n return cachedProvedTransaction as ProvedTransaction;\n};\n\nconst shouldValidateERC20AmountRecipients = (proofType: ProofType) => {\n switch (proofType) {\n case ProofType.CrossContractCalls:\n // Skip validation for erc20AmountRecipients, which is not used\n // in this transaction type.\n return false;\n case ProofType.Transfer:\n case ProofType.Unshield:\n case ProofType.UnshieldBaseToken:\n return true;\n }\n};\n\nconst shouldValidateRelayAdaptAmounts = (proofType: ProofType) => {\n switch (proofType) {\n case ProofType.CrossContractCalls:\n case ProofType.UnshieldBaseToken:\n // Only validate for Cross Contract and Unshield Base Token proofs.\n return true;\n case ProofType.Transfer:\n case ProofType.Unshield:\n return false;\n }\n};\n\nconst shouldValidateCrossContractCalls = (proofType: ProofType) => {\n switch (proofType) {\n case ProofType.CrossContractCalls:\n // Only validate for Cross Contract proofs.\n return true;\n case ProofType.Transfer:\n case ProofType.Unshield:\n case ProofType.UnshieldBaseToken:\n return false;\n }\n};\n\nexport const validateCachedProvedTransaction = (\n networkName: NetworkName,\n proofType: ProofType,\n dopWalletID: string,\n showSenderAddressToRecipient: boolean,\n memoText: Optional<string>,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n relayAdaptUnshieldERC20Amounts: Optional<DopERC20Amount[]>,\n relayAdaptUnshieldNFTAmounts: Optional<DopNFTAmount[]>,\n relayAdaptShieldERC20Recipients: Optional<DopERC20Recipient[]>,\n relayAdaptShieldNFTRecipients: Optional<DopNFTAmount[]>,\n crossContractCalls: Optional<ContractTransaction[]>,\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n): void => {\n if (!cachedProvedTransaction) {\n throw new Error('No proof found.');\n } else if (cachedProvedTransaction.proofType !== proofType) {\n throw new Error('Mismatch: proofType.');\n } else if (cachedProvedTransaction.dopWalletID !== dopWalletID) {\n throw new Error('Mismatch: dopWalletID.');\n } else if (\n proofType === ProofType.Transfer &&\n cachedProvedTransaction.showSenderAddressToRecipient !==\n showSenderAddressToRecipient\n ) {\n throw new Error('Mismatch: showSenderAddressToRecipient.');\n } else if (\n proofType === ProofType.Transfer &&\n cachedProvedTransaction.memoText !== memoText\n ) {\n throw new Error('Mismatch: memoText.');\n } else if (\n shouldValidateERC20AmountRecipients(proofType) &&\n !compareERC20AmountRecipientArrays(\n erc20AmountRecipients,\n cachedProvedTransaction.erc20AmountRecipients,\n )\n ) {\n throw new Error('Mismatch: erc20AmountRecipients.');\n } else if (\n !compareNFTAmountRecipientArrays(\n nftAmountRecipients,\n cachedProvedTransaction.nftAmountRecipients,\n )\n ) {\n throw new Error('Mismatch: nftAmountRecipients.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareERC20AmountArrays(\n relayAdaptUnshieldERC20Amounts,\n cachedProvedTransaction.relayAdaptUnshieldERC20Amounts,\n )\n ) {\n throw new Error('Mismatch: relayAdaptUnshieldERC20Amounts.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareNFTAmountArrays(\n relayAdaptUnshieldNFTAmounts,\n cachedProvedTransaction.relayAdaptUnshieldNFTAmounts,\n )\n ) {\n throw new Error('Mismatch: relayAdaptUnshieldNFTAmounts.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareERC20RecipientArrays(\n relayAdaptShieldERC20Recipients,\n cachedProvedTransaction.relayAdaptShieldERC20Recipients,\n )\n ) {\n throw new Error('Mismatch: relayAdaptShieldERC20Recipients.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareNFTAmountArrays(\n relayAdaptShieldNFTRecipients,\n cachedProvedTransaction.relayAdaptShieldNFTRecipients,\n )\n ) {\n throw new Error('Mismatch: relayAdaptShieldNFTRecipients.');\n } else if (\n shouldValidateCrossContractCalls(proofType) &&\n !compareContractTransactionArrays(\n crossContractCalls,\n cachedProvedTransaction.crossContractCalls,\n )\n ) {\n throw new Error('Mismatch: crossContractCalls.');\n } else if (\n !compareERC20AmountRecipients(\n cachedProvedTransaction.relayerFeeERC20AmountRecipient,\n relayerFeeERC20AmountRecipient,\n )\n ) {\n throw new Error('Mismatch: relayerFeeERC20AmountRecipient.');\n } else if (\n sendWithPublicWallet !== cachedProvedTransaction.sendWithPublicWallet\n ) {\n throw new Error('Mismatch: sendWithPublicWallet.');\n } else if (\n shouldSetOverallBatchMinGasPriceForNetwork(networkName) &&\n overallBatchMinGasPrice !== cachedProvedTransaction.overallBatchMinGasPrice\n ) {\n throw new Error('Mismatch: overallBatchMinGasPrice.');\n }\n};\n"]}
1
+ {"version":3,"file":"proof-cache.js","sourceRoot":"","sources":["../../../src/services/transactions/proof-cache.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n NetworkName,\n ProofType,\n DopNFTAmountRecipient,\n DopERC20Amount,\n DopERC20AmountRecipient,\n DopNFTAmount,\n TransactionGasDetails,\n isDefined,\n DopERC20Recipient,\n} from 'dop-sharedmodel-v5';\nimport { shouldSetOverallBatchMinGasPriceForNetwork } from '../../utils/gas-price';\nimport { compareContractTransactionArrays } from '../../utils/utils';\nimport { setGasDetailsForTransaction } from './tx-gas-details';\nimport {\n compareERC20AmountRecipients,\n compareERC20AmountRecipientArrays,\n compareERC20AmountArrays,\n compareNFTAmountRecipientArrays,\n compareNFTAmountArrays,\n compareERC20RecipientArrays,\n} from './tx-notes';\nimport { ContractTransaction } from 'ethers';\n\nexport type ProvedTransaction = {\n proofType: ProofType;\n transaction: ContractTransaction;\n dopWalletID: string;\n showSenderAddressToRecipient: boolean;\n memoText: Optional<string>;\n erc20AmountRecipients: DopERC20AmountRecipient[];\n nftAmountRecipients: DopNFTAmountRecipient[];\n relayAdaptUnshieldERC20Amounts: Optional<DopERC20Amount[]>;\n relayAdaptUnshieldNFTAmounts: Optional<DopNFTAmount[]>;\n relayAdaptShieldERC20Recipients: Optional<DopERC20Recipient[]>;\n relayAdaptShieldNFTRecipients: Optional<DopNFTAmount[]>;\n crossContractCalls: Optional<ContractTransaction[]>;\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>;\n sendWithPublicWallet: boolean;\n overallBatchMinGasPrice: Optional<bigint>;\n nullifiers: string[];\n};\n\nlet cachedProvedTransaction: Optional<ProvedTransaction>;\n\nexport const populateProvedTransaction = async (\n networkName: NetworkName,\n proofType: ProofType,\n dopWalletID: string,\n showSenderAddressToRecipient: boolean,\n memoText: Optional<string>,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n relayAdaptUnshieldERC20Amounts: Optional<DopERC20Amount[]>,\n relayAdaptUnshieldNFTAmounts: Optional<DopNFTAmount[]>,\n relayAdaptShieldERC20Recipients: Optional<DopERC20Recipient[]>,\n relayAdaptShieldNFTRecipients: Optional<DopNFTAmount[]>,\n crossContractCalls: Optional<ContractTransaction[]>,\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n gasDetails: TransactionGasDetails,\n): Promise<{\n transaction: ContractTransaction;\n nullifiers: string[];\n}> => {\n try {\n validateCachedProvedTransaction(\n networkName,\n proofType,\n dopWalletID,\n showSenderAddressToRecipient,\n memoText,\n erc20AmountRecipients,\n nftAmountRecipients,\n relayAdaptUnshieldERC20Amounts,\n relayAdaptUnshieldNFTAmounts,\n relayAdaptShieldERC20Recipients,\n relayAdaptShieldNFTRecipients,\n crossContractCalls,\n relayerFeeERC20AmountRecipient,\n sendWithPublicWallet,\n overallBatchMinGasPrice,\n );\n } catch (err) {\n if (!(err instanceof Error)) {\n throw err;\n }\n throw new Error(`Invalid proof for this transaction. ${err.message}`);\n }\n\n const { transaction, nullifiers } = getCachedProvedTransaction();\n\n setGasDetailsForTransaction(\n networkName,\n transaction,\n gasDetails,\n sendWithPublicWallet,\n );\n\n return { transaction, nullifiers };\n};\n\nexport const setCachedProvedTransaction = (tx?: ProvedTransaction) => {\n if (isDefined(tx?.transaction?.from)) {\n throw new Error(`Cannot cache a transaction with a 'from' address.`);\n }\n cachedProvedTransaction = tx;\n};\n\nexport const getCachedProvedTransaction = (): ProvedTransaction => {\n return cachedProvedTransaction as ProvedTransaction;\n};\n\nconst shouldValidateERC20AmountRecipients = (proofType: ProofType) => {\n switch (proofType) {\n case ProofType.CrossContractCalls:\n // Skip validation for erc20AmountRecipients, which is not used\n // in this transaction type.\n return false;\n case ProofType.Transfer:\n case ProofType.Unshield:\n case ProofType.UnshieldBaseToken:\n return true;\n }\n};\n\nconst shouldValidateRelayAdaptAmounts = (proofType: ProofType) => {\n switch (proofType) {\n case ProofType.CrossContractCalls:\n case ProofType.UnshieldBaseToken:\n // Only validate for Cross Contract and Unshield Base Token proofs.\n return true;\n case ProofType.Transfer:\n case ProofType.Unshield:\n return false;\n }\n};\n\nconst shouldValidateCrossContractCalls = (proofType: ProofType) => {\n switch (proofType) {\n case ProofType.CrossContractCalls:\n // Only validate for Cross Contract proofs.\n return true;\n case ProofType.Transfer:\n case ProofType.Unshield:\n case ProofType.UnshieldBaseToken:\n return false;\n }\n};\n\nexport const validateCachedProvedTransaction = (\n networkName: NetworkName,\n proofType: ProofType,\n dopWalletID: string,\n showSenderAddressToRecipient: boolean,\n memoText: Optional<string>,\n erc20AmountRecipients: DopERC20AmountRecipient[],\n nftAmountRecipients: DopNFTAmountRecipient[],\n relayAdaptUnshieldERC20Amounts: Optional<DopERC20Amount[]>,\n relayAdaptUnshieldNFTAmounts: Optional<DopNFTAmount[]>,\n relayAdaptShieldERC20Recipients: Optional<DopERC20Recipient[]>,\n relayAdaptShieldNFTRecipients: Optional<DopNFTAmount[]>,\n crossContractCalls: Optional<ContractTransaction[]>,\n relayerFeeERC20AmountRecipient: Optional<DopERC20AmountRecipient>,\n sendWithPublicWallet: boolean,\n overallBatchMinGasPrice: Optional<bigint>,\n): void => {\n if (!cachedProvedTransaction) {\n throw new Error('No proof found.');\n } else if (cachedProvedTransaction.proofType !== proofType) {\n throw new Error('Mismatch: proofType.');\n } else if (cachedProvedTransaction.dopWalletID !== dopWalletID) {\n throw new Error('Mismatch: dopWalletID.');\n } else if (\n proofType === ProofType.Transfer &&\n cachedProvedTransaction.showSenderAddressToRecipient !==\n showSenderAddressToRecipient\n ) {\n throw new Error('Mismatch: showSenderAddressToRecipient.');\n } else if (\n proofType === ProofType.Transfer &&\n cachedProvedTransaction.memoText !== memoText\n ) {\n throw new Error('Mismatch: memoText.');\n } else if (\n shouldValidateERC20AmountRecipients(proofType) &&\n !compareERC20AmountRecipientArrays(\n erc20AmountRecipients,\n cachedProvedTransaction.erc20AmountRecipients,\n )\n ) {\n throw new Error('Mismatch: erc20AmountRecipients.');\n } else if (\n !compareNFTAmountRecipientArrays(\n nftAmountRecipients,\n cachedProvedTransaction.nftAmountRecipients,\n )\n ) {\n throw new Error('Mismatch: nftAmountRecipients.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareERC20AmountArrays(\n relayAdaptUnshieldERC20Amounts,\n cachedProvedTransaction.relayAdaptUnshieldERC20Amounts,\n )\n ) {\n throw new Error('Mismatch: relayAdaptUnshieldERC20Amounts.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareNFTAmountArrays(\n relayAdaptUnshieldNFTAmounts,\n cachedProvedTransaction.relayAdaptUnshieldNFTAmounts,\n )\n ) {\n throw new Error('Mismatch: relayAdaptUnshieldNFTAmounts.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareERC20RecipientArrays(\n relayAdaptShieldERC20Recipients,\n cachedProvedTransaction.relayAdaptShieldERC20Recipients,\n )\n ) {\n throw new Error('Mismatch: relayAdaptShieldERC20Recipients.');\n } else if (\n shouldValidateRelayAdaptAmounts(proofType) &&\n !compareNFTAmountArrays(\n relayAdaptShieldNFTRecipients,\n cachedProvedTransaction.relayAdaptShieldNFTRecipients,\n )\n ) {\n throw new Error('Mismatch: relayAdaptShieldNFTRecipients.');\n } else if (\n shouldValidateCrossContractCalls(proofType) &&\n !compareContractTransactionArrays(\n crossContractCalls,\n cachedProvedTransaction.crossContractCalls,\n )\n ) {\n throw new Error('Mismatch: crossContractCalls.');\n } else if (\n !compareERC20AmountRecipients(\n cachedProvedTransaction.relayerFeeERC20AmountRecipient,\n relayerFeeERC20AmountRecipient,\n )\n ) {\n throw new Error('Mismatch: relayerFeeERC20AmountRecipient.');\n } else if (\n sendWithPublicWallet !== cachedProvedTransaction.sendWithPublicWallet\n ) {\n throw new Error('Mismatch: sendWithPublicWallet.');\n } else if (\n shouldSetOverallBatchMinGasPriceForNetwork(networkName) &&\n overallBatchMinGasPrice !== cachedProvedTransaction.overallBatchMinGasPrice\n ) {\n throw new Error('Mismatch: overallBatchMinGasPrice.');\n }\n};\n"]}
@@ -1,5 +1,5 @@
1
- import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, DopERC20Amount, NetworkName, TransactionReceiptLog, FeeTokenDetails, DopERC20AmountRecipient, DopNFTAmountRecipient, DopNFTAmount, TransactionGasDetails, DopERC20Recipient } from 'dop-sharedmodel';
2
- import { ProverProgressCallback, NFTTokenData } from 'dop-engine';
1
+ import { DopPopulateTransactionResponse, DopTransactionGasEstimateResponse, DopERC20Amount, NetworkName, TransactionReceiptLog, FeeTokenDetails, DopERC20AmountRecipient, DopNFTAmountRecipient, DopNFTAmount, TransactionGasDetails, DopERC20Recipient } from 'dop-sharedmodel-v5';
2
+ import { ProverProgressCallback, NFTTokenData } from 'dop-engine-v5';
3
3
  import { ContractTransaction, Log } from 'ethers';
4
4
  export declare const createRelayAdaptUnshieldERC20AmountRecipients: (networkName: NetworkName, unshieldERC20Amounts: DopERC20Amount[]) => DopERC20AmountRecipient[];
5
5
  export declare const createRelayAdaptUnshieldNFTAmountRecipients: (networkName: NetworkName, unshieldNFTAmounts: DopNFTAmount[]) => DopNFTAmountRecipient[];
@@ -1,12 +1,12 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.parseRelayAdaptReturnValue = exports.getRelayAdaptTransactionError = exports.generateCrossContractCallsProof = exports.gasEstimateForUnprovenCrossContractCalls = exports.populateProvedCrossContractCalls = exports.createNFTTokenDataFromDopNFTAmount = exports.createRelayAdaptUnshieldNFTAmountRecipients = exports.createRelayAdaptUnshieldERC20AmountRecipients = void 0;
4
- const dop_sharedmodel_1 = require("dop-sharedmodel");
4
+ const dop_sharedmodel_v5_1 = require("dop-sharedmodel-v5");
5
5
  const providers_1 = require("../dop/core/providers");
6
6
  const tx_generator_1 = require("./tx-generator");
7
7
  const proof_cache_1 = require("./proof-cache");
8
8
  const logger_1 = require("../../utils/logger");
9
- const dop_engine_1 = require("dop-engine");
9
+ const dop_engine_v5_1 = require("dop-engine-v5");
10
10
  const blocked_address_1 = require("../../utils/blocked-address");
11
11
  const tx_gas_relayer_fee_estimator_1 = require("./tx-gas-relayer-fee-estimator");
12
12
  const error_1 = require("../../utils/error");
@@ -22,7 +22,7 @@ const createValidCrossContractCalls = (crossContractCalls) => {
22
22
  const transaction = {
23
23
  to: transactionRequest.to,
24
24
  value: transactionRequest.value,
25
- data: (0, dop_engine_1.hexlify)(transactionRequest.data, true),
25
+ data: (0, dop_engine_v5_1.hexlify)(transactionRequest.data, true),
26
26
  };
27
27
  (0, blocked_address_1.assertNotBlockedAddress)(transaction.to);
28
28
  return transaction;
@@ -65,9 +65,9 @@ const createNFTTokenDataFromDopNFTAmount = (nftAmount) => {
65
65
  // ? bigIntStringToHex(nftAmount.tokenSubID)
66
66
  // : nftAmount.tokenSubID;
67
67
  return {
68
- tokenAddress: (0, dop_engine_1.formatToByteLength)(nftAmount.nftAddress, dop_engine_1.ByteLength.Address, true),
68
+ tokenAddress: (0, dop_engine_v5_1.formatToByteLength)(nftAmount.nftAddress, dop_engine_v5_1.ByteLength.Address, true),
69
69
  tokenType: nftAmount.nftTokenType,
70
- tokenSubID: (0, dop_engine_1.formatToByteLength)(nftAmount.tokenSubID, dop_engine_1.ByteLength.UINT_256, true),
70
+ tokenSubID: (0, dop_engine_v5_1.formatToByteLength)(nftAmount.tokenSubID, dop_engine_v5_1.ByteLength.UINT_256, true),
71
71
  };
72
72
  };
73
73
  exports.createNFTTokenDataFromDopNFTAmount = createNFTTokenDataFromDopNFTAmount;
@@ -79,7 +79,7 @@ const createRelayAdaptShieldNFTRecipients = (relayAdaptShieldNFTRecipients) => {
79
79
  };
80
80
  const populateProvedCrossContractCalls = async (networkName, dopWalletID, relayAdaptUnshieldERC20Amounts, relayAdaptUnshieldNFTAmounts, relayAdaptShieldERC20Recipients, relayAdaptShieldNFTRecipients, crossContractCalls, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice, gasDetails) => {
81
81
  try {
82
- const { transaction, nullifiers } = await (0, proof_cache_1.populateProvedTransaction)(networkName, dop_sharedmodel_1.ProofType.CrossContractCalls, dopWalletID, false, // showSenderAddressToRecipient
82
+ const { transaction, nullifiers } = await (0, proof_cache_1.populateProvedTransaction)(networkName, dop_sharedmodel_v5_1.ProofType.CrossContractCalls, dopWalletID, false, // showSenderAddressToRecipient
83
83
  undefined, // memoText
84
84
  [], // erc20AmountRecipients
85
85
  [], // nftAmountRecipients
@@ -103,13 +103,13 @@ const gasEstimateForUnprovenCrossContractCalls = async (networkName, dopWalletID
103
103
  const relayAdaptContract = (0, providers_1.getRelayAdaptContractForNetwork)(networkName);
104
104
  const relayAdaptUnshieldERC20AmountRecipients = (0, exports.createRelayAdaptUnshieldERC20AmountRecipients)(networkName, relayAdaptUnshieldERC20Amounts);
105
105
  const relayAdaptUnshieldNFTAmountRecipients = (0, exports.createRelayAdaptUnshieldNFTAmountRecipients)(networkName, relayAdaptUnshieldNFTAmounts);
106
- const shieldRandom = (0, dop_engine_1.randomHex)(16);
107
- const relayShieldRequests = await dop_engine_1.RelayAdaptHelper.generateRelayShieldRequests(shieldRandom, relayAdaptShieldERC20Recipients, createRelayAdaptShieldNFTRecipients(relayAdaptShieldNFTRecipients));
108
- const minimumGasLimit = minGasLimit ?? dop_engine_1.MINIMUM_RELAY_ADAPT_CROSS_CONTRACT_CALLS_GAS_LIMIT;
109
- const response = await (0, tx_gas_relayer_fee_estimator_1.gasEstimateResponseDummyProofIterativeRelayerFee)((relayerFeeERC20Amount) => (0, tx_generator_1.generateDummyProofTransactions)(dop_sharedmodel_1.ProofType.CrossContractCalls, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
106
+ const shieldRandom = (0, dop_engine_v5_1.randomHex)(16);
107
+ const relayShieldRequests = await dop_engine_v5_1.RelayAdaptHelper.generateRelayShieldRequests(shieldRandom, relayAdaptShieldERC20Recipients, createRelayAdaptShieldNFTRecipients(relayAdaptShieldNFTRecipients));
108
+ const minimumGasLimit = minGasLimit ?? dop_engine_v5_1.MINIMUM_RELAY_ADAPT_CROSS_CONTRACT_CALLS_GAS_LIMIT;
109
+ const response = await (0, tx_gas_relayer_fee_estimator_1.gasEstimateResponseDummyProofIterativeRelayerFee)((relayerFeeERC20Amount) => (0, tx_generator_1.generateDummyProofTransactions)(dop_sharedmodel_v5_1.ProofType.CrossContractCalls, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
110
110
  undefined, // memoText
111
111
  relayAdaptUnshieldERC20AmountRecipients, relayAdaptUnshieldNFTAmountRecipients, relayerFeeERC20Amount, sendWithPublicWallet, overallBatchMinGasPrice), async (txs) => {
112
- const relayAdaptParamsRandom = (0, dop_engine_1.randomHex)(31);
112
+ const relayAdaptParamsRandom = (0, dop_engine_v5_1.randomHex)(31);
113
113
  // TODO: We should add the relay adapt contract gas limit here.
114
114
  const transaction = await relayAdaptContract.populateCrossContractCalls(txs, validCrossContractCalls, relayShieldRequests, relayAdaptParamsRandom, true, // isGasEstimate
115
115
  !sendWithPublicWallet, // isRelayerTransaction
@@ -141,15 +141,15 @@ const generateCrossContractCallsProof = async (networkName, dopWalletID, encrypt
141
141
  const relayAdaptUnshieldERC20AmountRecipients = (0, exports.createRelayAdaptUnshieldERC20AmountRecipients)(networkName, relayAdaptUnshieldERC20Amounts);
142
142
  const relayAdaptUnshieldNFTAmountRecipients = (0, exports.createRelayAdaptUnshieldNFTAmountRecipients)(networkName, relayAdaptUnshieldNFTAmounts);
143
143
  // Generate dummy txs for relay adapt params.
144
- const dummyUnshieldTxs = await (0, tx_generator_1.generateDummyProofTransactions)(dop_sharedmodel_1.ProofType.CrossContractCalls, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
144
+ const dummyUnshieldTxs = await (0, tx_generator_1.generateDummyProofTransactions)(dop_sharedmodel_v5_1.ProofType.CrossContractCalls, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
145
145
  undefined, // memoText
146
146
  relayAdaptUnshieldERC20AmountRecipients, relayAdaptUnshieldNFTAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, overallBatchMinGasPrice);
147
147
  // Generate relay adapt params from dummy transactions.
148
- const shieldRandom = (0, dop_engine_1.randomHex)(16);
149
- const relayShieldRequests = await dop_engine_1.RelayAdaptHelper.generateRelayShieldRequests(shieldRandom, relayAdaptShieldERC20Recipients, createRelayAdaptShieldNFTRecipients(relayAdaptShieldNFTRecipients));
150
- const minimumGasLimit = minGasLimit ?? dop_engine_1.MINIMUM_RELAY_ADAPT_CROSS_CONTRACT_CALLS_GAS_LIMIT;
148
+ const shieldRandom = (0, dop_engine_v5_1.randomHex)(16);
149
+ const relayShieldRequests = await dop_engine_v5_1.RelayAdaptHelper.generateRelayShieldRequests(shieldRandom, relayAdaptShieldERC20Recipients, createRelayAdaptShieldNFTRecipients(relayAdaptShieldNFTRecipients));
150
+ const minimumGasLimit = minGasLimit ?? dop_engine_v5_1.MINIMUM_RELAY_ADAPT_CROSS_CONTRACT_CALLS_GAS_LIMIT;
151
151
  const isRelayerTransaction = !sendWithPublicWallet;
152
- const relayAdaptParamsRandom = (0, dop_engine_1.randomHex)(31);
152
+ const relayAdaptParamsRandom = (0, dop_engine_v5_1.randomHex)(31);
153
153
  const relayAdaptParams = await relayAdaptContract.getRelayAdaptParamsCrossContractCalls(dummyUnshieldTxs, validCrossContractCalls, relayShieldRequests, relayAdaptParamsRandom, isRelayerTransaction, minimumGasLimit);
154
154
  const relayAdaptID = {
155
155
  contract: relayAdaptContract.address,
@@ -171,7 +171,7 @@ const generateCrossContractCallsProof = async (networkName, dopWalletID, encrypt
171
171
  // overallBatchMinGasPrice,
172
172
  // progressCallback);
173
173
  // Create real transactions with relay adapt params.
174
- const transactions = await (0, tx_generator_1.generateProofTransactions)(dop_sharedmodel_1.ProofType.CrossContractCalls, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
174
+ const transactions = await (0, tx_generator_1.generateProofTransactions)(dop_sharedmodel_v5_1.ProofType.CrossContractCalls, networkName, dopWalletID, encryptionKey, false, // showSenderAddressToRecipient
175
175
  undefined, // memoText
176
176
  relayAdaptUnshieldERC20AmountRecipients, relayAdaptUnshieldNFTAmountRecipients, relayerFeeERC20AmountRecipient, sendWithPublicWallet, relayAdaptID, false, // useDummyProof
177
177
  overallBatchMinGasPrice, progressCallback);
@@ -180,7 +180,7 @@ const generateCrossContractCallsProof = async (networkName, dopWalletID, encrypt
180
180
  isRelayerTransaction, minimumGasLimit);
181
181
  delete transaction.from;
182
182
  (0, proof_cache_1.setCachedProvedTransaction)({
183
- proofType: dop_sharedmodel_1.ProofType.CrossContractCalls,
183
+ proofType: dop_sharedmodel_v5_1.ProofType.CrossContractCalls,
184
184
  dopWalletID,
185
185
  showSenderAddressToRecipient: false,
186
186
  memoText: undefined,
@@ -205,8 +205,8 @@ const generateCrossContractCallsProof = async (networkName, dopWalletID, encrypt
205
205
  exports.generateCrossContractCallsProof = generateCrossContractCallsProof;
206
206
  const getRelayAdaptTransactionError = (receiptLogs) => {
207
207
  try {
208
- const relayAdaptError = dop_engine_1.RelayAdaptContract.getRelayAdaptCallError(receiptLogs);
209
- if ((0, dop_sharedmodel_1.isDefined)(relayAdaptError)) {
208
+ const relayAdaptError = dop_engine_v5_1.RelayAdaptContract.getRelayAdaptCallError(receiptLogs);
209
+ if ((0, dop_sharedmodel_v5_1.isDefined)(relayAdaptError)) {
210
210
  (0, logger_1.sendErrorMessage)(relayAdaptError);
211
211
  return relayAdaptError;
212
212
  }
@@ -219,7 +219,7 @@ const getRelayAdaptTransactionError = (receiptLogs) => {
219
219
  exports.getRelayAdaptTransactionError = getRelayAdaptTransactionError;
220
220
  const parseRelayAdaptReturnValue = (data) => {
221
221
  try {
222
- const relayAdaptErrorParsed = dop_engine_1.RelayAdaptContract.parseRelayAdaptReturnValue(data);
222
+ const relayAdaptErrorParsed = dop_engine_v5_1.RelayAdaptContract.parseRelayAdaptReturnValue(data);
223
223
  if (relayAdaptErrorParsed) {
224
224
  (0, logger_1.sendErrorMessage)(relayAdaptErrorParsed.error);
225
225
  return relayAdaptErrorParsed.error;