]> git.codecow.com Git - libnemo.git/commitdiff
Reorder methods.
authorChris Duncan <chris@zoso.dev>
Fri, 8 Aug 2025 18:30:13 +0000 (11:30 -0700)
committerChris Duncan <chris@zoso.dev>
Fri, 8 Aug 2025 18:30:13 +0000 (11:30 -0700)
src/lib/safe.ts

index aea0ea9f4a7bfb4d200ca8c01d5dda00cbcc4c69..c6dd767eaf4ed26491e6145ee32d630af6818d83 100644 (file)
@@ -301,27 +301,6 @@ export class Safe {
                }
        }
 
-       /**
-       * Derives account private keys from a wallet seed using the BLAKE2b hashing
-       * algorithm.
-       *
-       * Separately, account public keys are derived from the private key using the
-       * Ed25519 key algorithm, and account addresses are derived from the public key
-       * as described in the Nano documentation.
-       * https://docs.nano.org/integration-guides/the-basics/
-       *
-       * @param {ArrayBuffer} seed - 32-byte secret seed of the wallet
-       * @param {number} index - 4-byte index of account to derive
-       * @returns {ArrayBuffer} Private key for the account
-       */
-       static #deriveBlake2bPrivateKey (seed: ArrayBuffer, index: number): ArrayBuffer {
-               const b = new ArrayBuffer(4)
-               new DataView(b).setUint32(0, index, false)
-               const s = new Uint8Array(seed)
-               const i = new Uint8Array(b)
-               return new Blake2b(32).update(s).update(i).digest().buffer
-       }
-
        static async #createAesKey (purpose: 'encrypt' | 'decrypt', password: ArrayBuffer, keySalt: ArrayBuffer): Promise<CryptoKey> {
                const derivationKey = await crypto.subtle.importKey('raw', password, 'PBKDF2', false, ['deriveBits', 'deriveKey'])
                new Uint8Array(password).fill(0).buffer.transfer()
@@ -346,6 +325,27 @@ export class Safe {
                return { seed, mnemonic }
        }
 
+       /**
+       * Derives account private keys from a wallet seed using the BLAKE2b hashing
+       * algorithm.
+       *
+       * Separately, account public keys are derived from the private key using the
+       * Ed25519 key algorithm, and account addresses are derived from the public key
+       * as described in the Nano documentation.
+       * https://docs.nano.org/integration-guides/the-basics/
+       *
+       * @param {ArrayBuffer} seed - 32-byte secret seed of the wallet
+       * @param {number} index - 4-byte index of account to derive
+       * @returns {ArrayBuffer} Private key for the account
+       */
+       static #deriveBlake2bPrivateKey (seed: ArrayBuffer, index: number): ArrayBuffer {
+               const b = new ArrayBuffer(4)
+               new DataView(b).setUint32(0, index, false)
+               const s = new Uint8Array(seed)
+               const i = new Uint8Array(b)
+               return new Blake2b(32).update(s).update(i).digest().buffer
+       }
+
        static async #encryptWallet (key: CryptoKey): Promise<NamedData<ArrayBuffer>> {
                if (this.#seed == null) {
                        throw new Error('Wallet seed not found')