]> git.codecow.com Git - libnemo.git/commitdiff
Remove unnecessary custom import paths. Import Ledger dynamically so the dependencies...
authorChris Duncan <chris@zoso.dev>
Thu, 21 Aug 2025 21:26:04 +0000 (14:26 -0700)
committerChris Duncan <chris@zoso.dev>
Thu, 21 Aug 2025 21:26:04 +0000 (14:26 -0700)
22 files changed:
package.json
src/lib/account.ts
src/lib/block.ts
src/lib/crypto/nano-nacl.ts
src/lib/tools.ts
src/lib/vault/index.ts
src/lib/vault/vault-worker.ts
src/lib/wallet/accounts.ts
src/lib/wallet/backup.ts
src/lib/wallet/create.ts
src/lib/wallet/destroy.ts
src/lib/wallet/get.ts
src/lib/wallet/index.ts
src/lib/wallet/ledger.ts
src/lib/wallet/load.ts
src/lib/wallet/lock.ts
src/lib/wallet/refresh.ts
src/lib/wallet/sign.ts
src/lib/wallet/unlock.ts
src/lib/wallet/unopened.ts
src/lib/wallet/verify.ts
src/main.ts

index 3743a6d45c3f174da6f2611b22213cf5022c7c17..649cfec0a1487e5db39b843e92ea379c0198d900 100644 (file)
                "test:prod": "npm run build:prod && npm run test:node"
        },
        "imports": {
-               "#crypto": "./src/lib/crypto/index.js",
-               "#types": "./src/types.d.ts",
-               "#vault": "./src/lib/vault/index.js",
-               "#wallet": "./src/lib/wallet/index.js"
+               "#types": "./src/types.d.ts"
        },
        "dependencies": {
                "nano-pow": "^5.1.4"
index 345ead0f04348d8e006c877a8952a67f2ba9559f..bdb98ebeb58f506a33190800b84c3d081e3c808a 100644 (file)
@@ -1,11 +1,11 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
 //! SPDX-License-Identifier: GPL-3.0-or-later\r
 \r
-import { Blake2b, NanoNaCl } from '#crypto'\r
 import { Key, KeyPair } from '#types'\r
 import { Block } from './block'\r
 import { ACCOUNT_KEY_BYTE_LENGTH, ACCOUNT_KEY_HEX_LENGTH, ALPHABET, PREFIX, PREFIX_LEGACY } from './constants'\r
 import { base32, bytes, hex } from './convert'\r
+import { Blake2b, NanoNaCl } from './crypto'\r
 import { Rpc } from './rpc'\r
 \r
 /**\r
index 50f649744df607551b54d4dfe0a70c6490af0d53..47f50e359af55c74c45b691df158c4254ad84bfe 100644 (file)
@@ -2,13 +2,13 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { NanoPow } from 'nano-pow'
-import { Blake2b, NanoNaCl } from '#crypto'
-import { Wallet } from '#wallet'
 import { Account } from './account'
 import { BURN_PUBLIC_KEY, PREAMBLE, DIFFICULTY_RECEIVE, DIFFICULTY_SEND, UNITS } from './constants'
 import { bytes, dec, hex } from './convert'
+import { Blake2b, NanoNaCl } from './crypto'
 import { Rpc } from './rpc'
 import { convert } from './tools'
+import { Wallet } from './wallet'
 
 /**
 * Represents a block as defined by the Nano cryptocurrency protocol.
index 0bc7d7b73d71bd40bfc83776d52251fd77edaf50..cd829dfefa088c5280336172879659e751a7aa14 100644 (file)
@@ -1,7 +1,7 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>\r
 //! SPDX-License-Identifier: GPL-3.0-or-later\r
 \r
-import { Blake2b } from '#crypto'\r
+import { Blake2b } from './blake2b'\r
 \r
 /**\r
 * Ported in 2014 by Dmitry Chestnykh and Devi Mandiri.\r
index 3bb2710c6dd443dfd96056253e2e2b67e03298da..6e753bebf93b98841439e385a7c61f5a12817fac 100644 (file)
@@ -1,14 +1,14 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Blake2b, NanoNaCl } from '#crypto'
 import { Key, SweepResult } from '#types'
-import { Wallet } from '#wallet'
 import { Account } from './account'
 import { Block } from './block'
 import { MAX_SUPPLY, UNITS } from './constants'
 import { bytes, hex } from './convert'
+import { Blake2b, NanoNaCl } from './crypto'
 import { Rpc } from './rpc'
+import { Wallet } from './wallet'
 
 /**
 * Converts a decimal amount of nano from one unit divider to another.
index 293252228d6699968ef94551f2616b7e0098feaa..c4a1c0626a08ccfa6126712e619398c4999f54ca 100644 (file)
@@ -2,8 +2,8 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { Worker as NodeWorker } from 'node:worker_threads'
-import { default as VaultWorker } from './vault-worker'
 import { Data, NamedData } from '#types'
+import { default as VaultWorker } from './vault-worker'
 
 type Task = {
        id: number
index a4d8093d5f005750241b00dc930b95921882c0b7..8fcef67b4348b67a2224ba9a26f56c725ffe5507 100644 (file)
@@ -2,10 +2,10 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { parentPort } from 'node:worker_threads'
-import { Bip39, Bip44, Blake2b, NanoNaCl } from '#crypto'
 import { NamedData } from '#types'
 import { default as Constants, BIP44_COIN_NANO } from '../constants'
 import { default as Convert, utf8 } from '../convert'
+import { Bip39, Bip44, Blake2b, NanoNaCl } from '../crypto'
 import { Timer } from './timer'
 
 /**
index a9a716b2387b138dd0901c021b87b7921e632053..f5aa7207bf441586d750c2f1ea9ffa46bec5157f 100644 (file)
@@ -2,9 +2,8 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { KeyPair, WalletType } from '#types'
-import { Vault } from '#vault'
 import { Account, AccountList } from '../account'
-import { Ledger } from './ledger'
+import { Vault } from '../vault'
 
 export async function _accounts (type: WalletType, accounts: AccountList, vault: Vault, from: number, to: number): Promise<AccountList>
 export async function _accounts (type: WalletType, accounts: AccountList, vault: Vault, from: unknown, to: unknown): Promise<AccountList> {
@@ -24,6 +23,7 @@ export async function _accounts (type: WalletType, accounts: AccountList, vault:
        if (indexes.length > 0) {
                const publicAccounts = []
                if (type === 'Ledger') {
+                       const { Ledger } = await import('./ledger')
                        for (const index of indexes) {
                                const { status, publicKey } = await Ledger.account(index)
                                if (status !== 'OK' || publicKey == null) {
index bbabd7ce393722b2cabfb760f6c506a73d379759..860ecd31e93f7b57eb384c233cc3c5f9f06293e0 100644 (file)
@@ -2,8 +2,8 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { NamedData } from '#types'
-import { Wallet } from '#wallet'
 import { Database } from '../database'
+import { Wallet } from '../wallet'
 
 export async function _backup () {
        try {
index 63dc9e17ff3a39cb3c6ba05a0ebf04e28f9c590b..34258e94beb9cf5c565b9392b1572d08e1b7472a 100644 (file)
@@ -2,11 +2,10 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { NamedData } from '#types'
-import { Vault } from '#vault'
-import { Wallet } from '#wallet'
 import { utf8 } from '../convert'
 import { Database } from '../database'
-import { Ledger } from './ledger'
+import { Vault } from '../vault'
+import { Wallet } from '../wallet'
 import { _load } from './load'
 
 export async function _create (wallet: Wallet, vault: Vault, password?: string, mnemonicSalt?: string): Promise<NamedData<ArrayBuffer>>
@@ -18,6 +17,7 @@ export async function _create (wallet: Wallet, vault: Vault, password: unknown,
                        type: wallet.type
                }
                if (wallet.type === 'Ledger') {
+                       const { Ledger } = await import('./ledger')
                        try {
                                if (Ledger.isUnsupported) {
                                        throw new Error('Browser is unsupported')
index 57387d94e1061d4a603e18bc377b9428bf6c8ea8..f01024091d10d68559721f0f0dd3d73f128b64fb 100644 (file)
@@ -1,9 +1,9 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Vault } from '#vault'
-import { Wallet } from '#wallet'
 import { Database } from '../database'
+import { Vault } from '../vault'
+import { Wallet } from '../wallet'
 
 export async function _destroy (wallet: Wallet, vault: Vault) {
        try {
index b09e8880f1f19ec71a6bf81ac57f154e93a2f209..3e47f2484362408b31a05675cbf241f6b5e7715b 100644 (file)
@@ -2,8 +2,8 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { NamedData } from '#types'
-import { Wallet } from '#wallet'
 import { Database } from '../database'
+import { Wallet } from '../wallet'
 
 export async function _get (recordId: string) {
        try {
index 12b23e4a452fba9944539e7aaad69901ba3e60bc..75c8987329bb0b627650461c658890948437ff5d 100644 (file)
@@ -2,12 +2,12 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later\r
 \r
 import { NamedData, WalletType } from '#types'\r
-import { Vault } from '#vault'\r
 import { Account, AccountList } from '../account'\r
 import { Block } from '../block'\r
 import { ADDRESS_GAP } from '../constants'\r
 import { bytes } from '../convert'\r
 import { Rpc } from '../rpc'\r
+import { Vault } from '../vault'\r
 import { _accounts } from './accounts'\r
 import { _backup } from './backup'\r
 import { _create } from './create'\r
index 21b94594fe5db459cb9efbe6778de1728f4a9dd2..9b64960d7a26b810913ac77df9f03f4b329fef57 100644 (file)
@@ -6,12 +6,12 @@ import { default as TransportBLE } from '@ledgerhq/hw-transport-web-ble'
 import { default as TransportUSB } from '@ledgerhq/hw-transport-webusb'
 import { default as TransportHID } from '@ledgerhq/hw-transport-webhid'
 import { DeviceStatus, LedgerAccountResponse, LedgerResponse, LedgerSignResponse, LedgerVersionResponse } from '#types'
-import { Wallet } from '#wallet'
 import { Account } from '../account'
 import { Block } from '../block'
 import { BIP44_COIN_NANO, BIP44_PURPOSE, HARDENED_OFFSET } from '../constants'
 import { bytes, dec, hex } from '../convert'
 import { Rpc } from '../rpc'
+import { Wallet } from '../wallet'
 
 /**
 * Ledger hardware wallet created by communicating with a Ledger device via ADPU
index 22b1233614801097c516f244fdb8803762c46cb7..406c539245e9dfaaf39e485e748129d557843f48 100644 (file)
@@ -1,13 +1,12 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Bip39 } from '#crypto'
 import { NamedData } from '#types'
-import { Vault } from '#vault'
-import { Wallet } from '#wallet'
 import { hex, utf8 } from '../convert'
+import { Bip39 } from '../crypto'
 import { Database } from '../database'
-import { Ledger } from './ledger'
+import { Vault } from '../vault'
+import { Wallet } from '../wallet'
 
 export async function _load (wallet: Wallet, vault: Vault, password: string, secret: string, mnemonicSalt?: string): Promise<void>
 export async function _load (wallet: Wallet, vault: Vault, password: unknown, secret: unknown, mnemonicSalt?: unknown): Promise<void> {
@@ -17,6 +16,8 @@ export async function _load (wallet: Wallet, vault: Vault, password: unknown, se
                        type: wallet.type
                }
                if (wallet.type === 'Ledger') {
+
+                       const { Ledger } = await import('./ledger')
                        if (Ledger.isUnsupported) {
                                throw new Error('Failed to initialize Ledger wallet', { cause: 'Browser is unsupported' })
                        }
index 863654b747c8724b499748e59a142ab82711535f..3f3e3ca93d7c9f8a7342f25241b6ddc609e1090e 100644 (file)
@@ -1,13 +1,13 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Vault } from '#vault'
-import { Wallet } from '#wallet'
-import { Ledger } from './ledger'
+import { Vault } from '../vault'
+import { Wallet } from '../wallet'
 
 export async function _lock (wallet: Wallet, vault: Vault): Promise<void> {
        try {
                if (wallet.type === 'Ledger') {
+                       const { Ledger } = await import('./ledger')
                        setTimeout(async () => {
                                const devices = await globalThis.navigator.usb.getDevices()
                                for (const device of devices) {
index 83479075f3d3ab998f4c2127159eaa65bbb39d0f..69b5651ed33d3be74a2aaf3868c9575dbe86729e 100644 (file)
@@ -2,10 +2,10 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { BlockInfo } from '#types'
-import { Wallet } from '#wallet'
 import { AccountList } from '../account'
 import { Block } from '../block'
 import { Rpc } from '../rpc'
+import { Wallet } from '../wallet'
 
 export async function _refresh (wallet: Wallet, rpc: Rpc | string | URL, from: number, to: number): Promise<AccountList>
 export async function _refresh (wallet: Wallet, rpc: unknown, from: unknown, to: unknown): Promise<AccountList> {
index 0148a965a9c4ca436274690a9aa058711a0dd952..918cdd8673321db28ee5dfdb92d9dfaee78aa42f 100644 (file)
@@ -1,11 +1,10 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Vault } from '#vault'
-import { Wallet } from '#wallet'
 import { Block } from '../block'
 import { bytes, hex } from '../convert'
-import { Ledger } from './ledger'
+import { Vault } from '../vault'
+import { Wallet } from '../wallet'
 
 export async function _sign (wallet: Wallet, vault: Vault, index: number, block: Block, frontier?: Block): Promise<void>
 export async function _sign (wallet: Wallet, vault: Vault, index: unknown, block: unknown, frontier?: unknown): Promise<void> {
@@ -17,6 +16,7 @@ export async function _sign (wallet: Wallet, vault: Vault, index: unknown, block
                        throw new TypeError('Invalid Block', { cause: block })
                }
                if (wallet.type === 'Ledger') {
+                       const { Ledger } = await import('./ledger')
                        const account = await wallet.account(index)
                        if (frontier instanceof Block) {
                                try {
index 135a1c196b0c4e74ccb141740a9cd8b3480e8715..f46e3fd769c9d1123514891f6eab2f86d8269e90 100644 (file)
@@ -1,16 +1,16 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Vault } from '#vault'
-import { Wallet } from '#wallet'
 import { utf8 } from '../convert'
+import { Vault } from '../vault'
+import { Wallet } from '../wallet'
 import { _get } from './get'
-import { Ledger } from './ledger'
 
 export async function _unlock (wallet: Wallet, vault: Vault, password?: string): Promise<void>
 export async function _unlock (wallet: Wallet, vault: Vault, password: unknown): Promise<void> {
        try {
                if (wallet.type === 'Ledger') {
+                       const { Ledger } = await import('./ledger')
                        const status = await Ledger.connect()
                        if (await status !== 'CONNECTED') {
                                throw new Error('Failed to unlock wallet', { cause: status })
index 1bbcc33c08b28c91a0e78b6ab3a8322cd7d8bed4..6023bb808d65c5b3ef454149133d0c1cd8c88ffe 100644 (file)
@@ -1,9 +1,9 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Wallet } from '#wallet'
 import { Account } from '../account'
 import { Rpc } from '../rpc'
+import { Wallet } from '../wallet'
 
 export async function _unopened (wallet: Wallet, rpc: Rpc, batchSize: number, from: number): Promise<Account>
 export async function _unopened (wallet: Wallet, rpc: unknown, batchSize: unknown, from: unknown): Promise<Account> {
index 1d530d1261910f8a9dd1e997f742d8f2880b1466..8a5d22d1d8886d67b5791a2cc39dc5ca3bee9967 100644 (file)
@@ -2,9 +2,8 @@
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
 import { NamedData, WalletType } from '#types'
-import { Vault } from '#vault'
 import { hex } from '../convert'
-import { Ledger } from './ledger'
+import { Vault } from '../vault'
 
 export async function _verify (type: WalletType, vault: Vault, secret: string): Promise<boolean>
 export async function _verify (type: WalletType, vault: Vault, secret: unknown): Promise<boolean> {
@@ -13,6 +12,7 @@ export async function _verify (type: WalletType, vault: Vault, secret: unknown):
                        throw new TypeError('Wallet secret must be a string', { cause: typeof secret })
                }
                if (type === 'Ledger') {
+                       const { Ledger } = await import('./ledger')
                        return await Ledger.verify(secret)
                } else {
                        const data: NamedData = {
index 9acb5d5bc011e028093f72921845bef9b6d845f1..432b4b9ac89e79f4aaac15c3a17fafc2c1f9466d 100644 (file)
@@ -1,9 +1,9 @@
 //! SPDX-FileCopyrightText: 2025 Chris Duncan <chris@zoso.dev>
 //! SPDX-License-Identifier: GPL-3.0-or-later
 
-import { Blake2b } from '#crypto'
 import { Account } from './lib/account'
 import { Block } from './lib/block'
+import { Blake2b } from './lib/crypto'
 import { Rolodex } from './lib/rolodex'
 import { Rpc } from './lib/rpc'
 import { Tools } from './lib/tools'