]> git.codecow.com Git - libnemo.git/commitdiff
Fix wallet imports in test.
authorChris Duncan <chris@zoso.dev>
Sat, 2 Aug 2025 06:24:51 +0000 (23:24 -0700)
committerChris Duncan <chris@zoso.dev>
Sat, 2 Aug 2025 06:24:51 +0000 (23:24 -0700)
test/test.import-wallet.mjs

index b6570603e9f69da896e77140f871c23447a6e1dd..c03f3820c2426cbe7ba281397fd1beb65a5451fc 100644 (file)
@@ -11,24 +11,20 @@ import { BIP32_TEST_VECTORS, CUSTOM_TEST_VECTORS, NANO_TEST_VECTORS, TREZOR_TEST
 */\r
 let Account\r
 /**\r
-* @type {typeof import('../dist/types.d.ts').Bip44Wallet}\r
+* @type {typeof import('../dist/types.d.ts').Wallet}\r
 */\r
-let Bip44Wallet\r
-/**\r
-* @type {typeof import('../dist/types.d.ts').Blake2bWallet}\r
-*/\r
-let Blake2bWallet\r
+let Wallet\r
 if (isNode) {\r
-       ({ Account, Bip44Wallet, Blake2bWallet } = await import('../dist/nodejs.min.js'))\r
+       ({ Account, Wallet } = await import('../dist/nodejs.min.js'))\r
 } else {\r
-       ({ Account, Bip44Wallet, Blake2bWallet } = await import('../dist/browser.min.js'))\r
+       ({ Account, Wallet } = await import('../dist/browser.min.js'))\r
 }\r
 \r
 await Promise.all([\r
        suite('Import wallets', async () => {\r
 \r
                await test('nano.org BIP-44 test vector mnemonic', async () => {\r
-                       const wallet = await Bip44Wallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -44,7 +40,7 @@ await Promise.all([
                })\r
 \r
                await test('nano.org BIP-44 test vector seed with no mnemonic', async () => {\r
-                       const wallet = await Bip44Wallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -60,7 +56,7 @@ await Promise.all([
                })\r
 \r
                await test('Trezor-derived BIP-44 entropy for 12-word mnemonic', async () => {\r
-                       const wallet = await Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_0)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_0)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -73,7 +69,7 @@ await Promise.all([
                })\r
 \r
                await test('Trezor-derived BIP-44 entropy for 15-word mnemonic', async () => {\r
-                       const wallet = await Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_1)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_1)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -86,7 +82,7 @@ await Promise.all([
                })\r
 \r
                await test('Trezor-derived BIP-44 entropy for 18-word mnemonic', async () => {\r
-                       const wallet = await Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_2)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_2)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -99,7 +95,7 @@ await Promise.all([
                })\r
 \r
                await test('Trezor-derived BIP-44 entropy for 21-word mnemonic', async () => {\r
-                       const wallet = await Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_3)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, CUSTOM_TEST_VECTORS.ENTROPY_3)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -112,7 +108,7 @@ await Promise.all([
                })\r
 \r
                await test('BIP-44 zero-string entropy', async () => {\r
-                       const wallet = await Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0, TREZOR_TEST_VECTORS.PASSWORD)\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0, TREZOR_TEST_VECTORS.PASSWORD)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const accounts = await wallet.accounts(0, 3)\r
 \r
@@ -132,7 +128,7 @@ await Promise.all([
                })\r
 \r
                await test('BLAKE2b zero-string seed', async () => {\r
-                       const wallet = await Blake2bWallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0)\r
+                       const wallet = await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const accounts = await wallet.accounts(0, 3)\r
 \r
@@ -152,7 +148,7 @@ await Promise.all([
                })\r
 \r
                await test('Trezor-derived BLAKE2b test vectors verified with third-party libraries', async () => {\r
-                       const wallet = await Blake2bWallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_1)\r
+                       const wallet = await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_1)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const accounts = await wallet.accounts(0, 1)\r
 \r
@@ -173,7 +169,7 @@ await Promise.all([
                })\r
 \r
                await test('BLAKE2b seed creates identical wallet as its derived mnemonic', async () => {\r
-                       const wallet = await Blake2bWallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_2)\r
+                       const wallet = await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_2)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const walletAccount = await wallet.account()\r
 \r
@@ -183,7 +179,7 @@ await Promise.all([
                        assert.equal(wallet.mnemonic, TREZOR_TEST_VECTORS.MNEMONIC_2)\r
                        assert.equal(wallet.seed, TREZOR_TEST_VECTORS.ENTROPY_2)\r
 \r
-                       const imported = await Blake2bWallet.fromMnemonic(TREZOR_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_2)\r
+                       const imported = await Wallet.import('BLAKE2b', TREZOR_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_2)\r
                        await imported.unlock(TREZOR_TEST_VECTORS.PASSWORD)\r
                        const importedAccount = await imported.account()\r
 \r
@@ -196,7 +192,7 @@ await Promise.all([
                })\r
 \r
                await test('BLAKE2b mnemonic for maximum seed value', async () => {\r
-                       const wallet = await Blake2bWallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_3)\r
+                       const wallet = await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.MNEMONIC_3)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r
                        const account = await wallet.account()\r
 \r
@@ -212,28 +208,28 @@ await Promise.all([
                })\r
 \r
                await test('Reject invalid entropy', async () => {\r
-                       await assert.rejects(Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, '6CAF5A42BB8074314AAE20295975ECE663BE7AAD945A73613D193B0CC41C797'))\r
-                       await assert.rejects(Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, '6CAF5A42BB8074314AAE20295975ECE663BE7AAD945A73613D193B0CC41C79701'))\r
-                       await assert.rejects(Bip44Wallet.fromEntropy(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0.replaceAll(/./g, 'x')))\r
+                       await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, '6CAF5A42BB8074314AAE20295975ECE663BE7AAD945A73613D193B0CC41C797'))\r
+                       await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, '6CAF5A42BB8074314AAE20295975ECE663BE7AAD945A73613D193B0CC41C79701'))\r
+                       await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0.replaceAll(/./g, 'x')))\r
                })\r
 \r
                await test('Reject invalid length seed', async () => {\r
-                       await assert.rejects(Bip44Wallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED + 'f'),\r
+                       await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED + 'f'),\r
                                `Expected a ${NANO_TEST_VECTORS.BIP39_SEED.length}-character seed, but received ${NANO_TEST_VECTORS.BIP39_SEED.length + 1}-character string.`)\r
-                       await assert.rejects(Bip44Wallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED.slice(0, -1)),\r
+                       await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.BIP39_SEED.slice(0, -1)),\r
                                `Expected a ${NANO_TEST_VECTORS.BIP39_SEED.length}-character seed, but received ${NANO_TEST_VECTORS.BIP39_SEED.length - 1}-character string.`)\r
                })\r
 \r
                await test('Reject seed containing non-hex characters', async () => {\r
-                       await assert.rejects(Bip44Wallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.SEED_0.replace(/./, 'g')),\r
+                       await assert.rejects(Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.SEED_0.replace(/./, 'g')),\r
                                'Seed contains invalid hexadecimal characters.')\r
-                       await assert.rejects(Blake2bWallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_1.replace(/./, 'g')),\r
+                       await assert.rejects(Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_1.replace(/./, 'g')),\r
                                'Seed contains invalid hexadecimal characters.')\r
                })\r
 \r
                await test('Import BIP-44 wallet from storage using a wallet-generated ID', async () => {\r
-                       const id = (await Bip44Wallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)).id\r
-                       const wallet = await Bip44Wallet.restore(id)\r
+                       const id = (await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)).id\r
+                       const wallet = await Wallet.restore(id)\r
 \r
                        assert.ok('mnemonic' in wallet)\r
                        assert.ok('seed' in wallet)\r
@@ -252,8 +248,8 @@ await Promise.all([
                })\r
 \r
                await test('Import BLAKE2B wallet from storage using a wallet-generated ID', async () => {\r
-                       const id = (await Blake2bWallet.fromSeed(NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0)).id\r
-                       const wallet = await Blake2bWallet.restore(id)\r
+                       const id = (await Wallet.import('BLAKE2b', NANO_TEST_VECTORS.PASSWORD, TREZOR_TEST_VECTORS.ENTROPY_0)).id\r
+                       const wallet = await Wallet.restore(id)\r
 \r
                        assert.ok('mnemonic' in wallet)\r
                        assert.ok('seed' in wallet)\r
@@ -272,12 +268,12 @@ await Promise.all([
                })\r
 \r
                await test('export wallet IDs from storage and reimport them', async () => {\r
-                       const wallet = await Bip44Wallet.fromMnemonic(NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
-                       const ids = await Bip44Wallet.export()\r
+                       const wallet = await Wallet.import('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
+                       const ids = await Wallet.export()\r
 \r
                        assert.ok(ids['BIP-44'].some(id => `BIP-44_${id}` === wallet.id))\r
 \r
-                       const restored = await Bip44Wallet.restore(wallet.id)\r
+                       const restored = await Wallet.restore(wallet.id)\r
 \r
                        assert.ok('mnemonic' in restored)\r
                        assert.ok('seed' in restored)\r