dop-wallet-v6 1.3.1 → 1.3.31

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 (124) hide show
  1. package/.eslintrc.js +5 -0
  2. package/dist/services/dop/core/react-native-init.d.ts +2 -2
  3. package/dist/services/dop/core/react-native-init.js +36 -15
  4. package/dist/services/dop/core/react-native-init.js.map +1 -1
  5. package/dist/services/dop/crypto/react-native-crypto-provider.js +4 -2
  6. package/dist/services/dop/crypto/react-native-crypto-provider.js.map +1 -1
  7. package/dist/services/dop/wallets/balances.js +49 -2
  8. package/dist/services/dop/wallets/balances.js.map +1 -1
  9. package/dist/services/dop/wallets/wallets.js +12 -17
  10. package/dist/services/dop/wallets/wallets.js.map +1 -1
  11. package/package.json +6 -1
  12. package/patches/dop-engine-v3+1.4.9.patch +55 -33
  13. package/dist/__tests__/index.test.d.ts +0 -1
  14. package/dist/__tests__/index.test.js +0 -13
  15. package/dist/__tests__/index.test.js.map +0 -1
  16. package/dist/services/artifacts/__tests__/artifact-downloader.test.d.ts +0 -1
  17. package/dist/services/artifacts/__tests__/artifact-downloader.test.js +0 -70
  18. package/dist/services/artifacts/__tests__/artifact-downloader.test.js.map +0 -1
  19. package/dist/services/dop/__tests__/integration.test.d.ts +0 -1
  20. package/dist/services/dop/__tests__/integration.test.js +0 -378
  21. package/dist/services/dop/__tests__/integration.test.js.map +0 -1
  22. package/dist/services/dop/core/__tests__/engine.test.d.ts +0 -1
  23. package/dist/services/dop/core/__tests__/engine.test.js +0 -30
  24. package/dist/services/dop/core/__tests__/engine.test.js.map +0 -1
  25. package/dist/services/dop/core/__tests__/providers.test.d.ts +0 -1
  26. package/dist/services/dop/core/__tests__/providers.test.js +0 -69
  27. package/dist/services/dop/core/__tests__/providers.test.js.map +0 -1
  28. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.d.ts +0 -1
  29. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js +0 -168
  30. package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +0 -1
  31. package/dist/services/dop/history/__tests__/transaction-history.test.d.ts +0 -0
  32. package/dist/services/dop/history/__tests__/transaction-history.test.js +0 -2
  33. package/dist/services/dop/history/__tests__/transaction-history.test.js.map +0 -1
  34. package/dist/services/dop/profile/__tests__/profile-manager.test.d.ts +0 -1
  35. package/dist/services/dop/profile/__tests__/profile-manager.test.js +0 -170
  36. package/dist/services/dop/profile/__tests__/profile-manager.test.js.map +0 -1
  37. package/dist/services/dop/profile/__tests__/selective-transparency.test.d.ts +0 -1
  38. package/dist/services/dop/profile/__tests__/selective-transparency.test.js +0 -256
  39. package/dist/services/dop/profile/__tests__/selective-transparency.test.js.map +0 -1
  40. package/dist/services/dop/profile/__tests__/storage.test.d.ts +0 -1
  41. package/dist/services/dop/profile/__tests__/storage.test.js +0 -174
  42. package/dist/services/dop/profile/__tests__/storage.test.js.map +0 -1
  43. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.d.ts +0 -1
  44. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js +0 -126
  45. package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +0 -1
  46. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.d.ts +0 -1
  47. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js +0 -63
  48. package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +0 -1
  49. package/dist/services/dop/util/__tests__/bytes-util.test.d.ts +0 -1
  50. package/dist/services/dop/util/__tests__/bytes-util.test.js +0 -23
  51. package/dist/services/dop/util/__tests__/bytes-util.test.js.map +0 -1
  52. package/dist/services/dop/util/__tests__/crypto-util.test.d.ts +0 -1
  53. package/dist/services/dop/util/__tests__/crypto-util.test.js +0 -62
  54. package/dist/services/dop/util/__tests__/crypto-util.test.js.map +0 -1
  55. package/dist/services/dop/wallets/__tests__/balances-live.test.d.ts +0 -1
  56. package/dist/services/dop/wallets/__tests__/balances-live.test.js +0 -58
  57. package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +0 -1
  58. package/dist/services/dop/wallets/__tests__/balances-update.test.d.ts +0 -1
  59. package/dist/services/dop/wallets/__tests__/balances-update.test.js +0 -90
  60. package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +0 -1
  61. package/dist/services/dop/wallets/__tests__/balances.test.d.ts +0 -1
  62. package/dist/services/dop/wallets/__tests__/balances.test.js +0 -59
  63. package/dist/services/dop/wallets/__tests__/balances.test.js.map +0 -1
  64. package/dist/services/dop/wallets/__tests__/wallets.test.d.ts +0 -1
  65. package/dist/services/dop/wallets/__tests__/wallets.test.js +0 -80
  66. package/dist/services/dop/wallets/__tests__/wallets.test.js.map +0 -1
  67. package/dist/services/ethers/__tests__/ethers-util.test.d.ts +0 -1
  68. package/dist/services/ethers/__tests__/ethers-util.test.js +0 -19
  69. package/dist/services/ethers/__tests__/ethers-util.test.js.map +0 -1
  70. package/dist/services/transactions/__tests__/json/formatted-relay-adapt-error-logs.json +0 -216
  71. package/dist/services/transactions/__tests__/proof-cache.test.d.ts +0 -1
  72. package/dist/services/transactions/__tests__/proof-cache.test.js +0 -128
  73. package/dist/services/transactions/__tests__/proof-cache.test.js.map +0 -1
  74. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.d.ts +0 -1
  75. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +0 -385
  76. package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +0 -1
  77. package/dist/services/transactions/__tests__/tx-decrypt.test.d.ts +0 -0
  78. package/dist/services/transactions/__tests__/tx-decrypt.test.js +0 -2
  79. package/dist/services/transactions/__tests__/tx-decrypt.test.js.map +0 -1
  80. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.d.ts +0 -1
  81. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js +0 -101
  82. package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +0 -1
  83. package/dist/services/transactions/__tests__/tx-encrypt.test.d.ts +0 -0
  84. package/dist/services/transactions/__tests__/tx-encrypt.test.js +0 -2
  85. package/dist/services/transactions/__tests__/tx-encrypt.test.js.map +0 -1
  86. package/dist/services/transactions/__tests__/tx-gas-details.test.d.ts +0 -1
  87. package/dist/services/transactions/__tests__/tx-gas-details.test.js +0 -112
  88. package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +0 -1
  89. package/dist/services/transactions/__tests__/tx-notes.test.d.ts +0 -1
  90. package/dist/services/transactions/__tests__/tx-notes.test.js +0 -193
  91. package/dist/services/transactions/__tests__/tx-notes.test.js.map +0 -1
  92. package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.d.ts +0 -1
  93. package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.js +0 -50
  94. package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.js.map +0 -1
  95. package/dist/services/transactions/__tests__/tx-transfer.test.d.ts +0 -1
  96. package/dist/services/transactions/__tests__/tx-transfer.test.js +0 -280
  97. package/dist/services/transactions/__tests__/tx-transfer.test.js.map +0 -1
  98. package/dist/tests/balances.test.d.ts +0 -1
  99. package/dist/tests/balances.test.js +0 -419
  100. package/dist/tests/balances.test.js.map +0 -1
  101. package/dist/tests/helper.test.d.ts +0 -3
  102. package/dist/tests/helper.test.js +0 -16
  103. package/dist/tests/helper.test.js.map +0 -1
  104. package/dist/tests/mocks.test.d.ts +0 -50
  105. package/dist/tests/mocks.test.js +0 -202
  106. package/dist/tests/mocks.test.js.map +0 -1
  107. package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +0 -10
  108. package/dist/tests/poi/test-wallet-poi-requester.test.js +0 -15
  109. package/dist/tests/poi/test-wallet-poi-requester.test.js.map +0 -1
  110. package/dist/tests/setup.test.d.ts +0 -9
  111. package/dist/tests/setup.test.js +0 -110
  112. package/dist/tests/setup.test.js.map +0 -1
  113. package/dist/tests/stubs/engine-stubs.test.d.ts +0 -7
  114. package/dist/tests/stubs/engine-stubs.test.js +0 -75
  115. package/dist/tests/stubs/engine-stubs.test.js.map +0 -1
  116. package/dist/utils/__tests__/blocked-address.test.d.ts +0 -1
  117. package/dist/utils/__tests__/blocked-address.test.js +0 -23
  118. package/dist/utils/__tests__/blocked-address.test.js.map +0 -1
  119. package/dist/utils/__tests__/logger.test.d.ts +0 -1
  120. package/dist/utils/__tests__/logger.test.js +0 -28
  121. package/dist/utils/__tests__/logger.test.js.map +0 -1
  122. package/dist/utils/__tests__/utils.test.d.ts +0 -1
  123. package/dist/utils/__tests__/utils.test.js +0 -21
  124. package/dist/utils/__tests__/utils.test.js.map +0 -1
@@ -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 AbstractWallet,\n WalletData,\n AddressData,\n DopEngine,\n ByteUtils,\n ViewOnlyWallet,\n Commitment,\n Mnemonic,\n} from 'dop-engine-v3';\nimport {\n DopWalletInfo,\n NetworkName,\n NETWORK_CONFIG,\n isDefined,\n Chain,\n} from 'dop-sharedmodels-v3';\nimport { onBalancesUpdate } from './balance-update';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getAddress } from 'ethers';\nimport { getEngine } from '../core/engine';\nimport { getCryptoProvider } from '../crypto/react-native-crypto-provider';\n\n// CRITICAL: Test crypto provider initialization for React Native compatibility\nexport const testCircomlibjs = async (): Promise<boolean> => {\n try {\n // eslint-disable-next-line no-console\n console.log('🧪 Testing crypto provider initialization...');\n \n // Use the new crypto provider that automatically selects the right implementation\n const cryptoProvider = await getCryptoProvider();\n // eslint-disable-next-line no-console\n console.log('✅ Crypto provider loaded successfully');\n \n // Check if the provider has the required functions\n if (cryptoProvider == null || typeof cryptoProvider !== 'object') {\n throw new Error('Crypto provider is invalid');\n }\n \n if (typeof cryptoProvider.poseidon !== 'function') {\n throw new Error('Crypto provider missing poseidon function');\n }\n \n if (typeof cryptoProvider.eddsa !== 'object') {\n throw new Error('Crypto provider missing eddsa object');\n }\n \n // Test basic poseidon hash operation\n // eslint-disable-next-line no-console\n console.log('🔢 Testing poseidon hash...');\n const testResult = (cryptoProvider ).poseidon([1n, 2n]);\n // eslint-disable-next-line no-console\n console.log('✅ Poseidon test result:', testResult.toString());\n \n // Test eddsa operations\n // eslint-disable-next-line no-console\n console.log('🔑 Testing EdDSA operations...');\n const testPrivateKey = new Uint8Array(32).fill(1);\n const testMessage = 12345n;\n \n // eslint-disable-next-line no-console\n console.log('🔑 Testing EdDSA signing...');\n const signature: unknown = (cryptoProvider ).eddsa.signPoseidon(testPrivateKey, testMessage);\n \n // eslint-disable-next-line no-console\n console.log('🔑 Testing EdDSA public key derivation...');\n const publicKey: unknown = (cryptoProvider ).eddsa.prv2pub(Buffer.from(testPrivateKey));\n \n // eslint-disable-next-line no-console\n console.log('🔍 Testing EdDSA verification...');\n const isValid: unknown = (cryptoProvider ).eddsa.verifyPoseidon(testMessage, signature, publicKey);\n // eslint-disable-next-line no-console\n console.log('✅ EdDSA test result:', isValid);\n\n if (typeof isValid !== 'boolean' || !isValid) {\n throw new Error('EdDSA verification failed');\n }\n \n // eslint-disable-next-line no-console\n console.log('🎉 crypto provider initialization successful');\n return true;\n \n } catch (error: unknown) {\n // eslint-disable-next-line no-console\n console.error('❌ crypto provider initialization failed:', error);\n // eslint-disable-next-line no-console\n console.error('Error details:', String(error));\n throw new Error(`Crypto provider initialization failed: ${String(error)}`);\n }\n};\n\n// Enhanced wallet creation with crypto provider testing\nexport const createDopWalletSafe = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n timeout = 60000\n): Promise<DopWalletInfo> => {\n // First test crypto provider\n await testCircomlibjs();\n \n // Create wallet with timeout\n return new Promise<DopWalletInfo>((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(new Error('Wallet creation timed out. This usually indicates crypto provider hanging. Try restarting the app.'));\n }, timeout);\n\n const createWallet = async (): Promise<void> => {\n try {\n console.log('Starting safe wallet creation...');\n const result = await createDopWallet(encryptionKey, mnemonic, creationBlockNumbers, dopWalletDerivationIndex);\n clearTimeout(timeoutId);\n console.log('✅ Wallet creation successful');\n resolve(result);\n } catch (error) {\n clearTimeout(timeoutId);\n console.error('❌ Wallet creation failed:', error);\n reject(error);\n }\n };\n \n // Start wallet creation\n createWallet().catch((error) => {\n clearTimeout(timeoutId);\n reject(error);\n });\n });\n};\n\n/**\n * Create a new DOP wallet with automatic mnemonic generation or import existing mnemonic\n * \n * @param encryptionKey - 32-byte Buffer or Uint8Array for wallet encryption\n * @param options - Wallet creation options\n * @returns Promise<{walletInfo: DopWalletInfo, mnemonic: string}>\n */\nexport const createOrImportDopWallet = async (\n encryptionKey: string | Buffer | Uint8Array,\n options: {\n mnemonic?: string; // If provided, import this mnemonic; if undefined, generate new\n creationBlockNumbers?: Optional<MapType<number>>;\n dopWalletDerivationIndex?: number;\n timeout?: number;\n mnemonicStrength?: 128 | 192 | 256; // For generation only (default: 128 = 12 words)\n } = {}\n): Promise<{walletInfo: DopWalletInfo, mnemonic: string}> => {\n const {\n mnemonic: inputMnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex = 0,\n timeout = 60000,\n mnemonicStrength = 128\n } = options;\n\n // Convert encryptionKey to string if needed\n const encryptionKeyString = typeof encryptionKey === 'string' \n ? encryptionKey \n : Buffer.from(encryptionKey).toString('hex');\n\n let finalMnemonic: string;\n\n if (typeof inputMnemonic === 'string' && inputMnemonic.length > 0) {\n // Validate provided mnemonic\n if (!Mnemonic.validate(inputMnemonic)) {\n throw new Error('Invalid mnemonic phrase provided');\n }\n finalMnemonic = inputMnemonic;\n console.log('✅ Importing wallet from provided mnemonic');\n } else {\n // Generate new mnemonic\n finalMnemonic = Mnemonic.generate(mnemonicStrength);\n let wordCount: string;\n if (mnemonicStrength === 128) {\n wordCount = '12';\n } else if (mnemonicStrength === 192) {\n wordCount = '18';\n } else {\n wordCount = '24';\n }\n console.log(`✅ Generated new ${wordCount}-word mnemonic`);\n }\n\n // Create wallet using the safe creation method\n const walletInfo = await createDopWalletSafe(\n encryptionKeyString,\n finalMnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex,\n timeout\n );\n\n return {\n walletInfo,\n mnemonic: finalMnemonic\n };\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.WalletDecryptBalancesComplete,\n ({ chain: returnedChain }: any) =>\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\nexport const walletForID = (id: string): AbstractWallet => {\n const engine = getEngine();\n const wallet = engine.wallets[id];\n if (!isDefined(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 subscribeToEvents = (wallet: AbstractWallet) => {\n wallet.on(\n EngineEvent.WalletDecryptBalancesComplete,\n ({ txidVersion, chain }: any) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onBalancesUpdate(txidVersion, 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 subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n// here\nexport const createWalletFromTransaction = async (\n leaf: Commitment,\n viewingPrivateKey: Uint8Array,\n chain: Chain,\n encryptionKey: string,\n mnemonic: string,\n index = 0,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n): Promise<any> => {\n\n const engine = getEngine();\n const res = engine.createUserWalletFromTransaction(leaf, viewingPrivateKey, chain, encryptionKey, mnemonic, index);\n return res;\n};\n\nconst createWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: 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 dopWalletDerivationIndex ?? 0,\n formattedCreationBlockNumbers,\n );\n subscribeToEvents(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 subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n\nexport const createDopWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n): Promise<DopWalletInfo> => {\n try {\n return await createWallet(\n encryptionKey,\n mnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex,\n );\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`, { cause: sanitizedError });\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.', { cause: err });\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.', { cause: err });\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(\n ByteUtils.hexStringToBytes(message),\n );\n return ByteUtils.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-v3'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 AbstractWallet,\n WalletData,\n AddressData,\n DopEngine,\n ByteUtils,\n ViewOnlyWallet,\n Commitment,\n Mnemonic,\n} from 'dop-engine-v3';\nimport {\n DopWalletInfo,\n NetworkName,\n NETWORK_CONFIG,\n isDefined,\n Chain,\n} from 'dop-sharedmodels-v3';\nimport { onBalancesUpdate } from './balance-update';\nimport { reportAndSanitizeError } from '../../../utils/error';\nimport { getAddress } from 'ethers';\nimport { getEngine } from '../core/engine';\nimport { getCryptoProvider } from '../crypto/react-native-crypto-provider';\n\n// CRITICAL: Test crypto provider initialization for React Native compatibility\nexport const testCircomlibjs = async (): Promise<boolean> => {\n try {\n // eslint-disable-next-line no-console\n console.log('🧪 Testing crypto provider initialization...');\n \n // Use the new crypto provider that automatically selects the right implementation\n const cryptoProvider = await getCryptoProvider();\n // eslint-disable-next-line no-console\n console.log('✅ Crypto provider loaded successfully');\n \n // Check if the provider has the required functions\n if (cryptoProvider == null || typeof cryptoProvider !== 'object') {\n throw new Error('Crypto provider is invalid');\n }\n \n if (typeof cryptoProvider.poseidon !== 'function') {\n throw new Error('Crypto provider missing poseidon function');\n }\n \n if (typeof cryptoProvider.eddsa !== 'object') {\n throw new Error('Crypto provider missing eddsa object');\n }\n \n // Test basic poseidon hash operation\n // eslint-disable-next-line no-console\n console.log('🔢 Testing poseidon hash...');\n const testResult = (cryptoProvider ).poseidon([1n, 2n]);\n // eslint-disable-next-line no-console\n console.log('✅ Poseidon test result:', testResult.toString());\n \n // Test eddsa operations availability\n // eslint-disable-next-line no-console\n console.log('🔑 Testing EdDSA operations availability...');\n \n if (typeof (cryptoProvider ).eddsa.signPoseidon !== 'function') {\n throw new Error('EdDSA signPoseidon function missing');\n }\n if (typeof (cryptoProvider ).eddsa.prv2pub !== 'function') {\n throw new Error('EdDSA prv2pub function missing');\n }\n if (typeof (cryptoProvider ).eddsa.verifyPoseidon !== 'function') {\n throw new Error('EdDSA verifyPoseidon function missing');\n }\n \n // eslint-disable-next-line no-console\n console.log('✅ EdDSA functions available');\n \n // eslint-disable-next-line no-console\n console.log('🎉 crypto provider initialization successful');\n return true;\n \n } catch (error: unknown) {\n // eslint-disable-next-line no-console\n console.error('❌ crypto provider initialization failed:', error);\n // eslint-disable-next-line no-console\n console.error('Error details:', String(error));\n throw new Error(`Crypto provider initialization failed: ${String(error)}`);\n }\n};\n\n// Enhanced wallet creation with crypto provider testing\nexport const createDopWalletSafe = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n timeout = 60000\n): Promise<DopWalletInfo> => {\n // First test crypto provider\n await testCircomlibjs();\n \n // Create wallet with timeout\n return new Promise<DopWalletInfo>((resolve, reject) => {\n const timeoutId = setTimeout(() => {\n reject(new Error('Wallet creation timed out. This usually indicates crypto provider hanging. Try restarting the app.'));\n }, timeout);\n\n const createWallet = async (): Promise<void> => {\n try {\n console.log('Starting safe wallet creation...');\n const result = await createDopWallet(encryptionKey, mnemonic, creationBlockNumbers, dopWalletDerivationIndex);\n clearTimeout(timeoutId);\n console.log('✅ Wallet creation successful');\n resolve(result);\n } catch (error) {\n clearTimeout(timeoutId);\n console.error('❌ Wallet creation failed:', error);\n reject(error);\n }\n };\n \n // Start wallet creation\n createWallet().catch((error) => {\n clearTimeout(timeoutId);\n reject(error);\n });\n });\n};\n\n/**\n * Create a new DOP wallet with automatic mnemonic generation or import existing mnemonic\n * \n * @param encryptionKey - 32-byte Buffer or Uint8Array for wallet encryption\n * @param options - Wallet creation options\n * @returns Promise<{walletInfo: DopWalletInfo, mnemonic: string}>\n */\nexport const createOrImportDopWallet = async (\n encryptionKey: string | Buffer | Uint8Array,\n options: {\n mnemonic?: string; // If provided, import this mnemonic; if undefined, generate new\n creationBlockNumbers?: Optional<MapType<number>>;\n dopWalletDerivationIndex?: number;\n timeout?: number;\n mnemonicStrength?: 128 | 192 | 256; // For generation only (default: 128 = 12 words)\n } = {}\n): Promise<{walletInfo: DopWalletInfo, mnemonic: string}> => {\n const {\n mnemonic: inputMnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex = 0,\n timeout = 60000,\n mnemonicStrength = 128\n } = options;\n\n // Convert encryptionKey to string if needed\n const encryptionKeyString = typeof encryptionKey === 'string' \n ? encryptionKey \n : Buffer.from(encryptionKey).toString('hex');\n\n let finalMnemonic: string;\n\n if (typeof inputMnemonic === 'string' && inputMnemonic.length > 0) {\n // Validate provided mnemonic\n if (!Mnemonic.validate(inputMnemonic)) {\n throw new Error('Invalid mnemonic phrase provided');\n }\n finalMnemonic = inputMnemonic;\n console.log('✅ Importing wallet from provided mnemonic');\n } else {\n // Generate new mnemonic\n finalMnemonic = Mnemonic.generate(mnemonicStrength);\n let wordCount: string;\n if (mnemonicStrength === 128) {\n wordCount = '12';\n } else if (mnemonicStrength === 192) {\n wordCount = '18';\n } else {\n wordCount = '24';\n }\n console.log(`✅ Generated new ${wordCount}-word mnemonic`);\n }\n\n // Create wallet using the safe creation method\n const walletInfo = await createDopWalletSafe(\n encryptionKeyString,\n finalMnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex,\n timeout\n );\n\n return {\n walletInfo,\n mnemonic: finalMnemonic\n };\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.WalletDecryptBalancesComplete,\n ({ chain: returnedChain }: any) =>\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\nexport const walletForID = (id: string): AbstractWallet => {\n const engine = getEngine();\n const wallet = engine.wallets[id];\n if (!isDefined(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 subscribeToEvents = (wallet: AbstractWallet) => {\n wallet.on(\n EngineEvent.WalletDecryptBalancesComplete,\n ({ txidVersion, chain }: any) => {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n onBalancesUpdate(txidVersion, 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 subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n// here\nexport const createWalletFromTransaction = async (\n leaf: Commitment,\n viewingPrivateKey: Uint8Array,\n chain: Chain,\n encryptionKey: string,\n mnemonic: string,\n index = 0,\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\n): Promise<any> => {\n\n const engine = getEngine();\n const res = engine.createUserWalletFromTransaction(leaf, viewingPrivateKey, chain, encryptionKey, mnemonic, index);\n return res;\n};\n\nconst createWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: 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 dopWalletDerivationIndex ?? 0,\n formattedCreationBlockNumbers,\n );\n subscribeToEvents(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 subscribeToEvents(wallet);\n return infoForWallet(wallet);\n};\n\nexport const createDopWallet = async (\n encryptionKey: string,\n mnemonic: string,\n creationBlockNumbers: Optional<MapType<number>>,\n dopWalletDerivationIndex?: number,\n): Promise<DopWalletInfo> => {\n try {\n return await createWallet(\n encryptionKey,\n mnemonic,\n creationBlockNumbers,\n dopWalletDerivationIndex,\n );\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`, { cause: sanitizedError });\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.', { cause: err });\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.', { cause: err });\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(\n ByteUtils.hexStringToBytes(message),\n );\n return ByteUtils.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-v3'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"]}
package/package.json CHANGED
@@ -1,11 +1,16 @@
1
1
  {
2
2
  "name": "dop-wallet-v6",
3
- "version": "1.3.1",
3
+ "version": "1.3.31",
4
4
  "description": "DOP Wallet SDK, compatible with mobile, browser and nodejs environments.",
5
5
  "main": "dist/index.js",
6
6
  "license": "MIT",
7
7
  "files": [
8
8
  "dist/**/*",
9
+ "!dist/**/__tests__",
10
+ "!dist/**/__tests__/**",
11
+ "!dist/tests",
12
+ "!dist/tests/**",
13
+ "!dist/**/*.test.*",
9
14
  "patches",
10
15
  "*.js",
11
16
  "node_modules/dop-engine-v3/dist/utils/keys-utils.js",
@@ -1,34 +1,43 @@
1
1
  diff --git a/node_modules/dop-engine-v3/dist/contracts/dop-smart-wallet/V2/dop-smart-wallet.js b/node_modules/dop-engine-v3/dist/contracts/dop-smart-wallet/V2/dop-smart-wallet.js
2
- index 56b2ecb..e5f75b7 100644
2
+ index 56b2ecb..de7587c 100644
3
3
  --- a/node_modules/dop-engine-v3/dist/contracts/dop-smart-wallet/V2/dop-smart-wallet.js
4
4
  +++ b/node_modules/dop-engine-v3/dist/contracts/dop-smart-wallet/V2/dop-smart-wallet.js
5
5
  @@ -75,6 +75,7 @@ class DopSmartWalletContract extends events_1.default {
6
6
  * @returns isValid
7
7
  */
8
8
  async validateMerkleroot(tree, root) {
9
- + console.log(`Validating V2 merkleroot for tree ${tree} : ${root}`);
9
+ + debugger_1.default.log(`Validating V2 merkleroot for tree ${tree} : ${root}`);
10
10
  try {
11
11
  const isValidMerkleroot = await this.contract.rootHistory(tree, bytes_1.ByteUtils.formatToByteLength(root, bytes_1.ByteLength.UINT_256, true));
12
12
  // if (!isValidMerkleroot && EngineDebug.isTestRun()) {
13
+ @@ -268,7 +269,7 @@ class DopSmartWalletContract extends events_1.default {
14
+ */
15
+ async getHistoricalEvents(initialStartBlock, latestBlock, getNextStartBlockFromValidMerkletree, eventsCommitmentListener, eventsNullifierListener, eventsDecryptListener, setLastSyncedBlock) {
16
+ const engineV3StartBlockNumber = DopSmartWalletContract.getEngineV2StartBlockNumber(this.chain);
17
+ - console.log("this.chain.id == 196::::::: SCAN_CHUNKS", this.chain, SCAN_CHUNKS);
18
+ + debugger_1.default.log("SCAN_CHUNKS", this.chain, SCAN_CHUNKS);
19
+ const engineV3EncryptEventUpdate030923BlockNumber = DopSmartWalletContract.getEngineV2EncryptEventUpdate030923BlockNumber(this.chain);
20
+ // TODO: Possible data integrity issue in using commitment block numbers.
21
+ // Decrypts and Nullifiers are scanned from the latest commitment block.
13
22
  diff --git a/node_modules/dop-engine-v3/dist/dop-engine.js b/node_modules/dop-engine-v3/dist/dop-engine.js
14
- index d1e96e8..31c592d 100644
23
+ index d1e96e8..7bf4db9 100644
15
24
  --- a/node_modules/dop-engine-v3/dist/dop-engine.js
16
25
  +++ b/node_modules/dop-engine-v3/dist/dop-engine.js
17
26
  @@ -254,14 +254,17 @@ class DopEngine extends events_1.default {
18
27
  }
19
28
  async performQuickSync(txidVersion, chain, endProgress, retryCount = 0) {
20
29
  try {
21
- + console.log("Starting quick sync...");
30
+ + debugger_1.default.log("Starting quick sync...");
22
31
  debugger_1.default.log(`[${txidVersion}] quickSync: chain ${chain.type}:${chain.id}`);
23
32
  const utxoMerkletree = this.getUTXOMerkletree(txidVersion, chain);
24
33
  const startScanningBlockQuickSync = await this.getStartScanningBlock(txidVersion, chain);
25
- + console.log(`Quick syncing UTXO merkletree for txid version ${txidVersion} on chain ${chain.type}:${chain.id} from block ${startScanningBlockQuickSync}...`);
34
+ + debugger_1.default.log(`Quick syncing UTXO merkletree for txid version ${txidVersion} on chain ${chain.type}:${chain.id} from block ${startScanningBlockQuickSync}...`);
26
35
  debugger_1.default.log(`[${txidVersion}] Start scanning block for QuickSync: ${startScanningBlockQuickSync}`);
27
36
  this.emitUTXOMerkletreeScanUpdateEvent(txidVersion, chain, endProgress * 0.2); // 10% / 50%
28
37
  // Fetch events
29
38
  const { commitmentEvents, decryptEvents, nullifierEvents, dopTransactionEvents } = await this.quickSyncEvents(txidVersion, chain, startScanningBlockQuickSync);
30
39
  if (dopTransactionEvents) {
31
- + console.log(`QuickSync dopTransactionEvents: ${dopTransactionEvents.length}`);
40
+ + debugger_1.default.log(`QuickSync dopTransactionEvents: ${dopTransactionEvents.length}`);
32
41
  debugger_1.default.log(`[${txidVersion}] QuickSync dopTransactionEvents: ${dopTransactionEvents.length}`);
33
42
  await this.handleNewDopTransactionsV3(txidVersion, chain, dopTransactionEvents);
34
43
  }
@@ -36,7 +45,7 @@ index d1e96e8..31c592d 100644
36
45
  await this.decryptListener(txidVersion, chain, decryptEvents);
37
46
  this.emitUTXOMerkletreeScanUpdateEvent(txidVersion, chain, endProgress * 0.5); // 25% / 50%
38
47
  await this.nullifierListener(txidVersion, chain, nullifierEvents);
39
- + console.log(`QuickSync commitmentEvents: ${commitmentEvents.length}`);
48
+ + debugger_1.default.log(`QuickSync commitmentEvents: ${commitmentEvents.length}`);
40
49
  debugger_1.default.log(`[${txidVersion}] QuickSync commitments: ${commitmentEvents.length}`);
41
50
  // Make sure commitments are scanned after Decrypts and Nullifiers.
42
51
  await this.commitmentListener(txidVersion, chain, commitmentEvents, false, // shouldUpdateTrees - wait until after all commitments added
@@ -44,7 +53,7 @@ index d1e96e8..31c592d 100644
44
53
  await this.performQuickSync(txidVersion, chain, endProgress, retryCount + 1);
45
54
  return;
46
55
  }
47
- + console.error('Quick sync failed:', cause);
56
+ + debugger_1.default.error('Quick sync failed:', cause);
48
57
  debugger_1.default.error(new Error('Failed to quick sync', { cause }));
49
58
  }
50
59
  }
@@ -52,10 +61,10 @@ index d1e96e8..31c592d 100644
52
61
  continue;
53
62
  }
54
63
  // eslint-disable-next-line no-await-in-loop
55
- + console.log(`Scanning UTXO history for txid version ${txidVersion} on chain ${chain.type}:${chain.id}...`);
64
+ + debugger_1.default.log(`Scanning UTXO history for txid version ${txidVersion} on chain ${chain.type}:${chain.id}...`);
56
65
  await this.scanUTXOHistory(txidVersion, chain, walletIdFilter);
57
66
  }
58
- + console.log("Finished scanning UTXO history");
67
+ + debugger_1.default.log("Finished scanning UTXO history");
59
68
  await this.scanTXIDHistoryV2(chain);
60
69
  }
61
70
  /**
@@ -71,9 +80,9 @@ index d1e96e8..31c592d 100644
71
80
  */
72
81
  async loadNetwork(chain, dopSmartWalletContractAddress, relayAdaptV2ContractAddress, poseidonMerkleAccumulatorV3Address, poseidonMerkleVerifierV3Address, tokenVaultV3Address, defaultProvider, pollingProvider, deploymentBlocks, supportsV3) {
73
82
  debugger_1.default.log(`loadNetwork: ${chain.type}:${chain.id}`);
74
- + console.log(`Loading network: ${chain.type}:${chain.id}`);
83
+ + debugger_1.default.log(`Loading network: ${chain.type}:${chain.id}`);
75
84
  try {
76
- + console.log(`Waiting for default RPC provider to connect...`);
85
+ + debugger_1.default.log(`Waiting for default RPC provider to connect...`);
77
86
  await (0, promises_1.promiseTimeout)(defaultProvider.getBlockNumber(), 60_000, 'Timed out waiting for default RPC provider to connect.');
78
87
  }
79
88
  catch (cause) {
@@ -81,19 +90,19 @@ index d1e96e8..31c592d 100644
81
90
  contract_store_1.ContractStore.poseidonMerkleVerifierV3Contracts.set(null, chain, new poseidon_merkle_verifier_1.PoseidonMerkleVerifierContract(poseidonMerkleVerifierV3Address, defaultProvider));
82
91
  contract_store_1.ContractStore.tokenVaultV3Contracts.set(null, chain, new token_vault_contract_1.TokenVaultContract(tokenVaultV3Address, defaultProvider));
83
92
  }
84
- + console.log(`Setting up merkletrees for ${chain.type}:${chain.id} ACTIVE_TXID_VERSIONS=${poi_types_1.ACTIVE_TXID_VERSIONS.join(', ')} `);
93
+ + debugger_1.default.log(`Setting up merkletrees for ${chain.type}:${chain.id} ACTIVE_TXID_VERSIONS=${poi_types_1.ACTIVE_TXID_VERSIONS.join(', ')} `);
85
94
  for (const txidVersion of poi_types_1.ACTIVE_UTXO_MERKLETREE_TXID_VERSIONS) {
86
95
  // eslint-disable-next-line no-await-in-loop
87
- + console.log(`Setting up UTXO merkletree for ${chain.type}:${chain.id} - ${txidVersion}`);
88
- + console.log(`Validating UTXO merkleroot for ${chain.type}:${chain.id} - ${txidVersion}`);
96
+ + debugger_1.default.log(`Setting up UTXO merkletree for ${chain.type}:${chain.id} - ${txidVersion}`);
97
+ + debugger_1.default.log(`Validating UTXO merkleroot for ${chain.type}:${chain.id} - ${txidVersion}`);
89
98
  const utxoMerkletree = await utxo_merkletree_1.UTXOMerkletree.create(this.db, chain, txidVersion,
90
99
  // eslint-disable-next-line @typescript-eslint/no-shadow
91
100
  (txidVersion, chain, tree, index, merkleroot) => DopEngine.validateMerkleroot(txidVersion, chain, tree, index, merkleroot));
92
- + console.log(`UTXO merkletree created for ${chain.type}:${chain.id} - ${txidVersion}`);
101
+ + debugger_1.default.log(`UTXO merkletree created for ${chain.type}:${chain.id} - ${txidVersion}`);
93
102
  this.utxoMerkletrees.set(txidVersion, chain, utxoMerkletree);
94
103
  // Load utxo merkletree to all wallets
95
104
  // eslint-disable-next-line no-await-in-loop
96
- + console.log(`Loading UTXO merkletree to wallets for ${chain.type}:${chain.id} - ${txidVersion}`);
105
+ + debugger_1.default.log(`Loading UTXO merkletree to wallets for ${chain.type}:${chain.id} - ${txidVersion}`);
97
106
  await Promise.all(Object.values(this.wallets).map(async (wallet) => {
98
107
  await wallet.loadUTXOMerkletree(txidVersion, utxoMerkletree);
99
108
  }));
@@ -101,7 +110,7 @@ index d1e96e8..31c592d 100644
101
110
  // Wallet Txid merkletree
102
111
  const autoValidate = async () => true;
103
112
  // eslint-disable-next-line no-await-in-loop
104
- + console.log(`Setting up TXID merkletree for ${chain.type}:${chain.id} - ${txidVersion}`);
113
+ + debugger_1.default.log(`Setting up TXID merkletree for ${chain.type}:${chain.id} - ${txidVersion}`);
105
114
  txidMerkletree = await txid_merkletree_1.TXIDMerkletree.createForWallet(this.db, chain, txidVersion,
106
115
  // For V3, we receive events in realtime, and validation is done via on-chain verificationHash field.
107
116
  supportsV3 ? autoValidate : this.validateDopTxidMerkleroot);
@@ -109,7 +118,7 @@ index d1e96e8..31c592d 100644
109
118
  if (this.skipMerkletreeScans) {
110
119
  return;
111
120
  }
112
- + console.log(`Setting up merkletrees for ${chain.type}:${chain.id}`);
121
+ + debugger_1.default.log(`Setting up merkletrees for ${chain.type}:${chain.id}`);
113
122
  // Set up listeners
114
123
  const commitmentListener = async (txidVersion, commitmentEvents) => {
115
124
  await this.commitmentListener(txidVersion, chain, commitmentEvents, true, // shouldUpdateTrees
@@ -117,7 +126,7 @@ index d1e96e8..31c592d 100644
117
126
  false);
118
127
  }
119
128
  };
120
- + console.log(`Setting commitment listener for ${chain.type}:${chain.id}`);
129
+ + debugger_1.default.log(`Setting commitment listener for ${chain.type}:${chain.id}`);
121
130
  const nullifierListener = async (txidVersion, nullifiers) => {
122
131
  await this.nullifierListener(txidVersion, chain, nullifiers);
123
132
  // Only start wallet balance decryption if utxoMerkletree is not already scanning
@@ -125,7 +134,7 @@ index d1e96e8..31c592d 100644
125
134
  const decryptListener = async (txidVersion, decrypts) => {
126
135
  await this.decryptListener(txidVersion, chain, decrypts);
127
136
  };
128
- + console.log(`Setting merkletree listeners for ${chain.type}:${chain.id}`);
137
+ + debugger_1.default.log(`Setting merkletree listeners for ${chain.type}:${chain.id}`);
129
138
  await contract_store_1.ContractStore.dopSmartWalletContracts
130
139
  .get(null, chain)
131
140
  ?.setTreeUpdateListeners(commitmentListener, nullifierListener, decryptListener);
@@ -133,7 +142,7 @@ index d1e96e8..31c592d 100644
133
142
  false);
134
143
  }
135
144
  };
136
- + console.log(`Setting V3 merkletree listeners for ${chain.type}:${chain.id}`);
145
+ + debugger_1.default.log(`Setting V3 merkletree listeners for ${chain.type}:${chain.id}`);
137
146
  await contract_store_1.ContractStore.poseidonMerkleAccumulatorV3Contracts
138
147
  .get(null, chain)
139
148
  ?.setTreeUpdateListeners(commitmentListenerV3, // No wallet scans
@@ -141,14 +150,14 @@ index d1e96e8..31c592d 100644
141
150
  * @returns id
142
151
  */
143
152
  async createWalletFromMnemonic(encryptionKey, mnemonic, index = 0, creationBlockNumbers = undefined) {
144
- + console.log('Creating wallet from mnemonic...');
153
+ + debugger_1.default.log('Creating wallet from mnemonic...');
145
154
  const wallet = await dop_wallet_1.DopWallet.fromMnemonic(this.db, encryptionKey, mnemonic, index, creationBlockNumbers, this.prover);
146
- + console.log('Wallet created. Loading wallet...');
155
+ + debugger_1.default.log('Wallet created. Loading wallet...');
147
156
  await this.loadWallet(wallet);
148
157
  return wallet;
149
158
  }
150
159
  diff --git a/node_modules/dop-engine-v3/dist/merkletree/merkletree.js b/node_modules/dop-engine-v3/dist/merkletree/merkletree.js
151
- index 8ca9cd7..aa1b812 100644
160
+ index 8ca9cd7..0daafc3 100644
152
161
  --- a/node_modules/dop-engine-v3/dist/merkletree/merkletree.js
153
162
  +++ b/node_modules/dop-engine-v3/dist/merkletree/merkletree.js
154
163
  @@ -272,9 +272,19 @@ class Merkletree {
@@ -163,8 +172,8 @@ index 8ca9cd7..aa1b812 100644
163
172
  +
164
173
  + // Validate metadata structure
165
174
  + if (typeof storedMetadata !== 'object' || !storedMetadata.trees) {
166
- + console.warn('Invalid metadata format (expected object with trees property), got:', typeof storedMetadata, storedMetadata);
167
- + console.log('Clearing corrupted metadata and starting fresh');
175
+ + debugger_1.default.warn('Invalid metadata format (expected object with trees property), got:', typeof storedMetadata, storedMetadata);
176
+ + debugger_1.default.warn('Clearing corrupted metadata and starting fresh');
168
177
  + return;
169
178
  + }
170
179
  +
@@ -182,12 +191,12 @@ index 8ca9cd7..aa1b812 100644
182
191
  + return undefined;
183
192
  + }
184
193
  + const metadata = msgpack_lite_1.default.decode(bytes_1.ByteUtils.arrayify(rawData));
185
- + console.log('Successfully decoded merkletree metadata');
194
+ + debugger_1.default.log('Successfully decoded merkletree metadata');
186
195
  return metadata;
187
196
  }
188
197
  - catch {
189
198
  + catch (err) {
190
- + console.log('Error fetching merkletree metadata:', err);
199
+ + debugger_1.default.error('Error fetching merkletree metadata:', err);
191
200
  return undefined;
192
201
  }
193
202
  }
@@ -237,22 +246,31 @@ index c6e9aca..dd634ae 100644
237
246
  exports.signEDDSA = signEDDSA;
238
247
  function verifyEDDSA(message, signature, pubkey) {
239
248
  diff --git a/node_modules/dop-engine-v3/dist/wallet/abstract-wallet.js b/node_modules/dop-engine-v3/dist/wallet/abstract-wallet.js
240
- index f80d71f..d7b13da 100644
249
+ index f80d71f..f3ce181 100644
241
250
  --- a/node_modules/dop-engine-v3/dist/wallet/abstract-wallet.js
242
251
  +++ b/node_modules/dop-engine-v3/dist/wallet/abstract-wallet.js
252
+ @@ -678,7 +678,7 @@ class AbstractWallet extends events_1.default {
253
+ // const commitmentType: CommitmentType = AbstractWallet.getCommitmentType(leaf);
254
+ // // const commitmentType = 'EncryptCommitment';
255
+ // // if(CommitmentType.EncryptCommitment === commitmentType){
256
+ - // // console.log("userWalletFromTransaction pulling in :: 0", commitmentType)
257
+ + // // debugger_1.default("userWalletFromTransaction pulling in :: 0", commitmentType)
258
+ // // }
259
+ // const tokenDataGetter = this.createTokenDataGetter();
260
+ // switch (commitmentType) {
243
261
  @@ -1695,6 +1695,7 @@ class AbstractWallet extends events_1.default {
244
262
  return msgpack_lite_1.default.decode(bytes_1.ByteUtils.fastHexToBytes(await db.getEncrypted(AbstractWallet.dbPath(id), encryptionKey)));
245
263
  }
246
264
  static async write(db, id, encryptionKey, data) {
247
- + console.log('Writing wallet data to db...');
265
+ + debugger_1.default.log('Writing wallet data to db...');
248
266
  await db.putEncrypted(AbstractWallet.dbPath(id), encryptionKey, msgpack_lite_1.default.encode(data));
249
267
  }
250
268
  static async delete(db, id) {
251
269
  diff --git a/node_modules/dop-engine-v3/dist/wallet/dop-wallet.js b/node_modules/dop-engine-v3/dist/wallet/dop-wallet.js
252
- index d0dcdad..55c1fad 100644
270
+ index d0dcdad..f89e73c 100644
253
271
  --- a/node_modules/dop-engine-v3/dist/wallet/dop-wallet.js
254
272
  +++ b/node_modules/dop-engine-v3/dist/wallet/dop-wallet.js
255
- @@ -63,7 +63,10 @@ class DopWallet extends abstract_wallet_1.AbstractWallet {
273
+ @@ -63,7 +63,14 @@ class DopWallet extends abstract_wallet_1.AbstractWallet {
256
274
  static async fromMnemonic(db, encryptionKey, mnemonic, index, creationBlockNumbers, prover) {
257
275
  const id = DopWallet.generateID(mnemonic, index);
258
276
  // Write encrypted mnemonic to DB
@@ -260,6 +278,10 @@ index d0dcdad..55c1fad 100644
260
278
  + try {
261
279
  + await abstract_wallet_1.AbstractWallet.write(db, id, encryptionKey, { mnemonic, index, creationBlockNumbers });
262
280
  + } catch (error) {
281
+ + // Only ignore if wallet already exists
282
+ + if (!error.message?.includes('already exists')) {
283
+ + throw new Error(`Failed to persist wallet: ${error.message}`);
284
+ + }
263
285
  + }
264
286
  return this.createWallet(id, db, mnemonic, index, creationBlockNumbers, prover);
265
287
  }
@@ -1 +0,0 @@
1
- export {};
@@ -1,13 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const chai_1 = require("chai");
7
- const index_1 = __importDefault(require("../index"));
8
- describe('index', () => {
9
- it('Should load main for test', async () => {
10
- (0, chai_1.expect)(index_1.default).to.deep.equal({});
11
- });
12
- });
13
- //# sourceMappingURL=index.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.test.js","sourceRoot":"","sources":["../../src/__tests__/index.test.ts"],"names":[],"mappings":";;;;;AAAA,+BAA8B;AAC9B,qDAA6B;AAE7B,QAAQ,CAAC,OAAO,EAAE,GAAG,EAAE;IACrB,EAAE,CAAC,2BAA2B,EAAE,KAAK,IAAI,EAAE;QACzC,IAAA,aAAM,EAAC,eAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC","sourcesContent":["import { expect } from 'chai';\nimport index from '../index';\n\ndescribe('index', () => {\n it('Should load main for test', async () => {\n expect(index).to.deep.equal({});\n });\n});\n"]}
@@ -1,70 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- /// <reference types="../../../types/global" />
7
- const chai_1 = __importDefault(require("chai"));
8
- const chai_as_promised_1 = __importDefault(require("chai-as-promised"));
9
- const setup_test_1 = require("../../../tests/setup.test");
10
- const artifacts_1 = require("../../dop/core/artifacts");
11
- chai_1.default.use(chai_as_promised_1.default);
12
- const { expect } = chai_1.default;
13
- describe('artifact-downloader', () => {
14
- before(async () => {
15
- const useNativeArtifacts = false;
16
- await (0, setup_test_1.initTestEngine)(useNativeArtifacts);
17
- });
18
- // Skipped because we don't want to run this on every build.
19
- it.skip('Should download ALL artifacts - native and nodejs', async () => {
20
- (0, artifacts_1.setUseNativeArtifacts)(true);
21
- (0, artifacts_1.clearArtifactCache)();
22
- for (let i = 1; i <= 10; i += 1) {
23
- for (let j = 1; j <= 3; j += 1) {
24
- if (i === 10 && j === 5) {
25
- continue;
26
- }
27
- // console.log(`NATIVE: ${i}x${j}...`);
28
- const inputs = {
29
- nullifiers: new Array(i),
30
- merkleRoot: BigInt(0),
31
- boundParamsHash: BigInt(0),
32
- commitmentsOut: new Array(j),
33
- };
34
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
35
- const artifacts =
36
- // eslint-disable-next-line no-await-in-loop
37
- await artifacts_1.artifactGetterDownloadJustInTime.getArtifacts(inputs);
38
- expect(artifacts.vkey).to.not.be.undefined;
39
- expect(artifacts.zkey).to.not.be.undefined;
40
- expect(artifacts.wasm).to.be.undefined;
41
- expect(artifacts.dat).to.not.be.undefined;
42
- }
43
- }
44
- (0, artifacts_1.clearArtifactCache)();
45
- (0, artifacts_1.setUseNativeArtifacts)(false);
46
- for (let i = 1; i <= 10; i += 1) {
47
- for (let j = 1; j <= 5; j += 1) {
48
- if (i === 10 && j === 5) {
49
- continue;
50
- }
51
- // console.log(`NODEJS: ${i}x${j}...`);
52
- const inputs = {
53
- nullifiers: new Array(i),
54
- merkleRoot: BigInt(0),
55
- boundParamsHash: BigInt(0),
56
- commitmentsOut: new Array(j),
57
- };
58
- // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
59
- const artifacts =
60
- // eslint-disable-next-line no-await-in-loop
61
- await artifacts_1.artifactGetterDownloadJustInTime.getArtifacts(inputs);
62
- expect(artifacts.vkey).to.not.be.undefined;
63
- expect(artifacts.zkey).to.not.be.undefined;
64
- expect(artifacts.wasm).to.not.be.undefined;
65
- expect(artifacts.dat).to.be.undefined;
66
- }
67
- }
68
- }).timeout(30000);
69
- });
70
- //# sourceMappingURL=artifact-downloader.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"artifact-downloader.test.js","sourceRoot":"","sources":["../../../../src/services/artifacts/__tests__/artifact-downloader.test.ts"],"names":[],"mappings":"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","sourcesContent":["/// <reference types=\"../../../types/global\" />\nimport chai from 'chai';\nimport chaiAsPromised from 'chai-as-promised';\nimport { Artifact, ArtifactName } from 'dop-sharedmodels-v3';\nimport { initTestEngine } from '../../../tests/setup.test';\nimport {\n clearArtifactCache,\n overrideArtifact,\n artifactGetterDownloadJustInTime,\n artifactCache,\n setUseNativeArtifacts,\n} from '../../dop/core/artifacts';\nimport { PublicInputsDop } from 'dop-engine-v3';\nimport { getArtifactVariantString } from '../artifact-util';\n\nchai.use(chaiAsPromised);\nconst { expect } = chai;\n\ndescribe('artifact-downloader', () => {\n before(async () => {\n const useNativeArtifacts = false;\n await initTestEngine(useNativeArtifacts);\n });\n\n // Skipped because we don't want to run this on every build.\n it.skip('Should download ALL artifacts - native and nodejs', async () => {\n setUseNativeArtifacts(true);\n\n clearArtifactCache();\n\n for (let i = 1; i <= 10; i += 1) {\n for (let j = 1; j <= 3; j += 1) {\n if (i === 10 && j === 5) {\n continue;\n }\n\n // console.log(`NATIVE: ${i}x${j}...`);\n\n const inputs: PublicInputsDop = {\n nullifiers: new Array<bigint>(i),\n merkleRoot: BigInt(0),\n boundParamsHash: BigInt(0),\n commitmentsOut: new Array<bigint>(j),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const artifacts: Artifact =\n // eslint-disable-next-line no-await-in-loop\n await artifactGetterDownloadJustInTime.getArtifacts(inputs);\n\n expect(artifacts.vkey).to.not.be.undefined;\n expect(artifacts.zkey).to.not.be.undefined;\n expect(artifacts.wasm).to.be.undefined;\n expect(artifacts.dat).to.not.be.undefined;\n }\n }\n\n clearArtifactCache();\n setUseNativeArtifacts(false);\n\n for (let i = 1; i <= 10; i += 1) {\n for (let j = 1; j <= 5; j += 1) {\n if (i === 10 && j === 5) {\n continue;\n }\n\n // console.log(`NODEJS: ${i}x${j}...`);\n\n const inputs: PublicInputsDop = {\n nullifiers: new Array<bigint>(i),\n merkleRoot: BigInt(0),\n boundParamsHash: BigInt(0),\n commitmentsOut: new Array<bigint>(j),\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n const artifacts: Artifact =\n // eslint-disable-next-line no-await-in-loop\n await artifactGetterDownloadJustInTime.getArtifacts(inputs);\n\n expect(artifacts.vkey).to.not.be.undefined;\n expect(artifacts.zkey).to.not.be.undefined;\n expect(artifacts.wasm).to.not.be.undefined;\n expect(artifacts.dat).to.be.undefined;\n }\n }\n }).timeout(30_000);\n});\n"]}
@@ -1 +0,0 @@
1
- export {};