]> git.codecow.com Git - libnemo.git/commitdiff
Fix type comparison to undefined.
authorChris Duncan <chris@zoso.dev>
Wed, 3 Sep 2025 23:52:22 +0000 (16:52 -0700)
committerChris Duncan <chris@zoso.dev>
Wed, 3 Sep 2025 23:52:22 +0000 (16:52 -0700)
src/lib/wallet/restore.ts
test/test.import-wallet.mjs

index d2e6d3a76113f48cc5ee19b16968b818d3b1b229..8e76a3c977b56094148c202649d56313083b1f44 100644 (file)
@@ -6,7 +6,7 @@ import { _get } from './get'
 
 export async function _restore (id?: unknown) {
        try {
-               if (typeof id !== undefined && typeof id !== 'string') {
+               if (id !== undefined && typeof id !== 'string') {
                        throw new TypeError('ID to restore must be a string')
                }
                const wallets = []
index d6d493eb61bde1db66d574bb52e6c4c00129843a..37b389c3959d4b5f334ebd36e0af28e189b54afa 100644 (file)
@@ -282,6 +282,28 @@ await Promise.all([
                        await assert.resolves(restored.destroy())\r
                })\r
 \r
+               await test('restore wallets without referencing IDs', async () => {\r
+                       const wallet = await Wallet.load('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
+                       const backups = await Wallet.backup()\r
+\r
+                       assert.ok(backups.some(record => record.id === wallet.id))\r
+\r
+                       const restored = (await Wallet.restore())[0]\r
+\r
+                       assert.ok('mnemonic' in restored)\r
+                       assert.ok('seed' in restored)\r
+                       assert.ok(restored.mnemonic === undefined)\r
+                       assert.ok(restored.seed === undefined)\r
+\r
+                       await restored.unlock(NANO_TEST_VECTORS.PASSWORD)\r
+\r
+                       assert.ok(await restored.verify(NANO_TEST_VECTORS.MNEMONIC))\r
+                       assert.ok(await restored.verify(NANO_TEST_VECTORS.BIP39_SEED))\r
+\r
+                       await assert.resolves(wallet.destroy())\r
+                       await assert.resolves(restored.destroy())\r
+               })\r
+\r
                await test('load account from legacy address', async () => {\r
                        const wallet = await Wallet.load('BIP-44', NANO_TEST_VECTORS.PASSWORD, NANO_TEST_VECTORS.MNEMONIC, NANO_TEST_VECTORS.PASSWORD)\r
                        await wallet.unlock(NANO_TEST_VECTORS.PASSWORD)\r