]> git.codecow.com Git - libnemo.git/commitdiff
Validate mnemonic import to wallet more strictly. Update import paths.
authorChris Duncan <chris@zoso.dev>
Mon, 4 Aug 2025 13:49:20 +0000 (06:49 -0700)
committerChris Duncan <chris@zoso.dev>
Mon, 4 Aug 2025 13:49:20 +0000 (06:49 -0700)
src/lib/wallet.ts

index e50daccd2e11696c6d6a0980a7c4242fef89f434..15d631c8044d0663881ceec2b7ceb08d9ef17d18 100644 (file)
@@ -1,14 +1,15 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
 //! SPDX-License-Identifier: GPL-3.0-or-later\r
 \r
-import { Account, AccountList } from '#src/lib/account.js'\r
-import { ChangeBlock, ReceiveBlock, SendBlock } from '#src/lib/block.js'\r
-import { ADDRESS_GAP } from '#src/lib/constants.js'\r
-import { bytes, hex, utf8 } from '#src/lib/convert.js'\r
-import { Database } from '#src/lib/database.js'\r
-import { Rpc } from '#src/lib/rpc.js'\r
-import { default as SafeWorker } from '#src/lib/safe.js'\r
-import { WorkerQueue } from '#src/lib/worker-queue.js'\r
+import { Account, AccountList } from './account'\r
+import { ChangeBlock, ReceiveBlock, SendBlock } from './block'\r
+import { Bip39Mnemonic } from './bip39-mnemonic'\r
+import { ADDRESS_GAP } from './constants'\r
+import { bytes, hex, utf8 } from './convert'\r
+import { Database } from './database'\r
+import { Rpc } from './rpc'\r
+import { default as SafeWorker } from './safe'\r
+import { WorkerQueue } from './worker-queue'\r
 import { KeyPair, NamedData, WalletType } from '#types'\r
 \r
 /**\r
@@ -111,7 +112,7 @@ export class Wallet {
                        }\r
                        if (/^(?:[A-F0-9]{64}){1,2}$/i.test(secret)) {\r
                                data.seed = hex.toBuffer(secret)\r
-                       } else if (/^([a-z]{3,8} ){11,23}[a-z]{3,8}$/i.test(secret)) {\r
+                       } else if (await Bip39Mnemonic.validate(secret)) {\r
                                data.mnemonicPhrase = secret.toLowerCase()\r
                                if (mnemonicSalt != null) data.mnemonicSalt = mnemonicSalt\r
                        } else {\r