]> zoso.dev Git - libnemo.git/commitdiff
Fix nano-nacl exports. Fix bip44 ckd return value. Pass account private key to worker...
authorChris Duncan <chris@zoso.dev>
Thu, 28 Nov 2024 10:52:27 +0000 (02:52 -0800)
committerChris Duncan <chris@zoso.dev>
Thu, 28 Nov 2024 10:52:27 +0000 (02:52 -0800)
src/lib/wallet.ts
src/lib/workers/ckdBip44.ts
src/lib/workers/nano-nacl.ts

index e052176e40952a1150d22d4733ad0877da98c7d6..4b760a1c288410bdc11970be838197b87ae3107f 100644 (file)
@@ -5,6 +5,7 @@ import { Account } from './account.js'
 import { Blake2b } from './blake2b.js'\r
 import { Bip39Mnemonic } from './bip39-mnemonic.js'\r
 import { ADDRESS_GAP, SEED_LENGTH_BIP44, SEED_LENGTH_BLAKE2B } from './constants.js'\r
+import { hex } from './convert.js'\r
 import { Entropy } from './entropy.js'\r
 import { Pool } from './pool.js'\r
 import { Rpc } from './rpc.js'\r
@@ -97,7 +98,7 @@ abstract class Wallet {
                        let results = await this.ckd(indexes)\r
                        if (!Array.isArray(results)) results = [results]\r
                        const data: any = []\r
-                       results.forEach(r => data.push({ privateKey: r.privateKey, index: r.index }))\r
+                       results.forEach(r => data.push({ privateKey: hex.toBytes(r.privateKey as string), index: r.index }))\r
                        let now = performance.now()\r
                        const keypairs: [{ publicKey: string, privateKey: string, index: number }] = await this.#pool.work(data)\r
                        console.log(`accounts: ${-now + (now = performance.now())} ms`)\r
index 47f94c2a3b5362aef5985d62db39ec022633bac3..1e8c0a96a6d7439b2fdebdf09c7c2dd01bdf1a98 100644 (file)
@@ -17,7 +17,7 @@ async function fn () {
        */
        addEventListener('message', (message) => {
                const { seed, index } = message.data ?? message
-               nanoCKD(seed, index).then(key => postMessage({ index, key }))
+               nanoCKD(seed, index).then(privateKey => postMessage({ privateKey, index }))
        })
 
        /**
index 8e2b9b4be7e605fd2bb5ce57980fdf2a47edaedb..38bb648691efcc4880d9cc45e85bf434050b65c5 100644 (file)
@@ -23,7 +23,7 @@ async function fn () {
        */\r
        addEventListener('message', (message) => {\r
                const { privateKey, index } = message.data ?? message\r
-               keyPair.fromSeed(seed).then(publicKey => postMessage({ publicKey, privateKey, index }))\r
+               keyPair.fromSeed(privateKey).then(publicKey => postMessage({ publicKey, privateKey, index }))\r
        })\r
 \r
 \r
@@ -779,7 +779,7 @@ function cleanup(arr) {
        for (var i = 0; i < arr.length; i++) arr[i] = 0;\r
 }\r
 \r
-export const sign = function(msg, secretKey) {\r
+const sign = function(msg, secretKey) {\r
        checkArrayTypes(msg, secretKey);\r
        if (secretKey.length !== crypto_sign_SECRETKEYBYTES)\r
                throw new Error('bad secret key size');\r
@@ -788,7 +788,7 @@ export const sign = function(msg, secretKey) {
        return signedMsg;\r
 };\r
 \r
-export const open = function(signedMsg, publicKey) {\r
+const open = function(signedMsg, publicKey) {\r
        checkArrayTypes(signedMsg, publicKey);\r
        if (publicKey.length !== crypto_sign_PUBLICKEYBYTES)\r
                throw new Error('bad public key size');\r
@@ -800,14 +800,14 @@ export const open = function(signedMsg, publicKey) {
        return m;\r
 };\r
 \r
-export const detached = function(msg, secretKey) {\r
+const detached = function(msg, secretKey) {\r
        var signedMsg = sign(msg, secretKey);\r
        var sig = new Uint8Array(crypto_sign_BYTES);\r
        for (var i = 0; i < sig.length; i++) sig[i] = signedMsg[i];\r
        return sig;\r
 };\r
 \r
-export const verify = function(msg, sig, publicKey) {\r
+const verify = function(msg, sig, publicKey) {\r
        checkArrayTypes(msg, sig, publicKey);\r
        if (sig.length !== crypto_sign_BYTES)\r
                throw new Error('bad signature size');\r
@@ -821,7 +821,7 @@ export const verify = function(msg, sig, publicKey) {
        return (crypto_sign_open(m, sm, sm.length, publicKey) >= 0);\r
 };\r
 \r
-export const keyPair = {\r
+const keyPair = {\r
        create() {\r
                var pk = new Uint8Array(crypto_sign_PUBLICKEYBYTES);\r
                var sk = new Uint8Array(crypto_sign_SECRETKEYBYTES);\r
@@ -850,10 +850,10 @@ export const keyPair = {
        }\r
 }\r
 \r
-export const publicKeyLength = crypto_sign_PUBLICKEYBYTES;\r
-export const secretKeyLength = crypto_sign_SECRETKEYBYTES;\r
-export const seedLength = crypto_sign_SEEDBYTES;\r
-export const signatureLength = crypto_sign_BYTES;\r
+const publicKeyLength = crypto_sign_PUBLICKEYBYTES;\r
+const secretKeyLength = crypto_sign_SECRETKEYBYTES;\r
+const seedLength = crypto_sign_SEEDBYTES;\r
+const signatureLength = crypto_sign_BYTES;\r
 \r
 const setPRNG = function(fn) {\r
        randombytes = fn;\r
@@ -892,5 +892,11 @@ const setPRNG = function(fn) {
 })();\r
 }\r
 \r
-export const nacl = { sign, open, detached, verify, keyPair, publicKeyLength, secretKeyLength, seedLength, signatureLength }\r
+export const nacl = {\r
+       sign: fn.sign,\r
+       open: fn.open,\r
+       detached: fn.detached,\r
+       verify: fn.verify,\r
+       keyPair: fn.keyPair\r
+}\r
 export default `(${fn.toString()})()`\r