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.
- package/.eslintrc.js +5 -0
- package/dist/services/dop/core/react-native-init.d.ts +2 -2
- package/dist/services/dop/core/react-native-init.js +36 -15
- package/dist/services/dop/core/react-native-init.js.map +1 -1
- package/dist/services/dop/crypto/react-native-crypto-provider.js +4 -2
- package/dist/services/dop/crypto/react-native-crypto-provider.js.map +1 -1
- package/dist/services/dop/wallets/balances.js +49 -2
- package/dist/services/dop/wallets/balances.js.map +1 -1
- package/dist/services/dop/wallets/wallets.js +12 -17
- package/dist/services/dop/wallets/wallets.js.map +1 -1
- package/package.json +6 -1
- package/patches/dop-engine-v3+1.4.9.patch +55 -33
- package/dist/__tests__/index.test.d.ts +0 -1
- package/dist/__tests__/index.test.js +0 -13
- package/dist/__tests__/index.test.js.map +0 -1
- package/dist/services/artifacts/__tests__/artifact-downloader.test.d.ts +0 -1
- package/dist/services/artifacts/__tests__/artifact-downloader.test.js +0 -70
- package/dist/services/artifacts/__tests__/artifact-downloader.test.js.map +0 -1
- package/dist/services/dop/__tests__/integration.test.d.ts +0 -1
- package/dist/services/dop/__tests__/integration.test.js +0 -378
- package/dist/services/dop/__tests__/integration.test.js.map +0 -1
- package/dist/services/dop/core/__tests__/engine.test.d.ts +0 -1
- package/dist/services/dop/core/__tests__/engine.test.js +0 -30
- package/dist/services/dop/core/__tests__/engine.test.js.map +0 -1
- package/dist/services/dop/core/__tests__/providers.test.d.ts +0 -1
- package/dist/services/dop/core/__tests__/providers.test.js +0 -69
- package/dist/services/dop/core/__tests__/providers.test.js.map +0 -1
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.d.ts +0 -1
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js +0 -168
- package/dist/services/dop/dop-txids/__tests__/dop-txid-sync-graph-v2.test.js.map +0 -1
- package/dist/services/dop/history/__tests__/transaction-history.test.d.ts +0 -0
- package/dist/services/dop/history/__tests__/transaction-history.test.js +0 -2
- package/dist/services/dop/history/__tests__/transaction-history.test.js.map +0 -1
- package/dist/services/dop/profile/__tests__/profile-manager.test.d.ts +0 -1
- package/dist/services/dop/profile/__tests__/profile-manager.test.js +0 -170
- package/dist/services/dop/profile/__tests__/profile-manager.test.js.map +0 -1
- package/dist/services/dop/profile/__tests__/selective-transparency.test.d.ts +0 -1
- package/dist/services/dop/profile/__tests__/selective-transparency.test.js +0 -256
- package/dist/services/dop/profile/__tests__/selective-transparency.test.js.map +0 -1
- package/dist/services/dop/profile/__tests__/storage.test.d.ts +0 -1
- package/dist/services/dop/profile/__tests__/storage.test.js +0 -174
- package/dist/services/dop/profile/__tests__/storage.test.js.map +0 -1
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.d.ts +0 -1
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js +0 -126
- package/dist/services/dop/quick-sync/V2/__tests__/quick-sync-events-graph-v2.test.js.map +0 -1
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.d.ts +0 -1
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js +0 -63
- package/dist/services/dop/quick-sync/V3/__tests__/quick-sync-events-graph-v3.test.js.map +0 -1
- package/dist/services/dop/util/__tests__/bytes-util.test.d.ts +0 -1
- package/dist/services/dop/util/__tests__/bytes-util.test.js +0 -23
- package/dist/services/dop/util/__tests__/bytes-util.test.js.map +0 -1
- package/dist/services/dop/util/__tests__/crypto-util.test.d.ts +0 -1
- package/dist/services/dop/util/__tests__/crypto-util.test.js +0 -62
- package/dist/services/dop/util/__tests__/crypto-util.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/balances-live.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/balances-live.test.js +0 -58
- package/dist/services/dop/wallets/__tests__/balances-live.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/balances-update.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/balances-update.test.js +0 -90
- package/dist/services/dop/wallets/__tests__/balances-update.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/balances.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/balances.test.js +0 -59
- package/dist/services/dop/wallets/__tests__/balances.test.js.map +0 -1
- package/dist/services/dop/wallets/__tests__/wallets.test.d.ts +0 -1
- package/dist/services/dop/wallets/__tests__/wallets.test.js +0 -80
- package/dist/services/dop/wallets/__tests__/wallets.test.js.map +0 -1
- package/dist/services/ethers/__tests__/ethers-util.test.d.ts +0 -1
- package/dist/services/ethers/__tests__/ethers-util.test.js +0 -19
- package/dist/services/ethers/__tests__/ethers-util.test.js.map +0 -1
- package/dist/services/transactions/__tests__/json/formatted-relay-adapt-error-logs.json +0 -216
- package/dist/services/transactions/__tests__/proof-cache.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/proof-cache.test.js +0 -128
- package/dist/services/transactions/__tests__/proof-cache.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js +0 -385
- package/dist/services/transactions/__tests__/tx-cross-contract-calls.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-decrypt.test.d.ts +0 -0
- package/dist/services/transactions/__tests__/tx-decrypt.test.js +0 -2
- package/dist/services/transactions/__tests__/tx-decrypt.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js +0 -101
- package/dist/services/transactions/__tests__/tx-encrypt-base-token.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-encrypt.test.d.ts +0 -0
- package/dist/services/transactions/__tests__/tx-encrypt.test.js +0 -2
- package/dist/services/transactions/__tests__/tx-encrypt.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-gas-details.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-gas-details.test.js +0 -112
- package/dist/services/transactions/__tests__/tx-gas-details.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-notes.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-notes.test.js +0 -193
- package/dist/services/transactions/__tests__/tx-notes.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.js +0 -50
- package/dist/services/transactions/__tests__/tx-proof-transfer-with-data.test.js.map +0 -1
- package/dist/services/transactions/__tests__/tx-transfer.test.d.ts +0 -1
- package/dist/services/transactions/__tests__/tx-transfer.test.js +0 -280
- package/dist/services/transactions/__tests__/tx-transfer.test.js.map +0 -1
- package/dist/tests/balances.test.d.ts +0 -1
- package/dist/tests/balances.test.js +0 -419
- package/dist/tests/balances.test.js.map +0 -1
- package/dist/tests/helper.test.d.ts +0 -3
- package/dist/tests/helper.test.js +0 -16
- package/dist/tests/helper.test.js.map +0 -1
- package/dist/tests/mocks.test.d.ts +0 -50
- package/dist/tests/mocks.test.js +0 -202
- package/dist/tests/mocks.test.js.map +0 -1
- package/dist/tests/poi/test-wallet-poi-requester.test.d.ts +0 -10
- package/dist/tests/poi/test-wallet-poi-requester.test.js +0 -15
- package/dist/tests/poi/test-wallet-poi-requester.test.js.map +0 -1
- package/dist/tests/setup.test.d.ts +0 -9
- package/dist/tests/setup.test.js +0 -110
- package/dist/tests/setup.test.js.map +0 -1
- package/dist/tests/stubs/engine-stubs.test.d.ts +0 -7
- package/dist/tests/stubs/engine-stubs.test.js +0 -75
- package/dist/tests/stubs/engine-stubs.test.js.map +0 -1
- package/dist/utils/__tests__/blocked-address.test.d.ts +0 -1
- package/dist/utils/__tests__/blocked-address.test.js +0 -23
- package/dist/utils/__tests__/blocked-address.test.js.map +0 -1
- package/dist/utils/__tests__/logger.test.d.ts +0 -1
- package/dist/utils/__tests__/logger.test.js +0 -28
- package/dist/utils/__tests__/logger.test.js.map +0 -1
- package/dist/utils/__tests__/utils.test.d.ts +0 -1
- package/dist/utils/__tests__/utils.test.js +0 -21
- 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.
|
|
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..
|
|
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
|
-
+
|
|
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..
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
83
|
+
+ debugger_1.default.log(`Loading network: ${chain.type}:${chain.id}`);
|
|
75
84
|
try {
|
|
76
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
88
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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
|
-
+
|
|
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..
|
|
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
|
-
+
|
|
167
|
-
+
|
|
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
|
-
+
|
|
194
|
+
+ debugger_1.default.log('Successfully decoded merkletree metadata');
|
|
186
195
|
return metadata;
|
|
187
196
|
}
|
|
188
197
|
- catch {
|
|
189
198
|
+ catch (err) {
|
|
190
|
-
+
|
|
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..
|
|
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
|
-
+
|
|
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..
|
|
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,
|
|
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 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -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 {};
|