From 29e1d5a64107a6dfd62d11ad9ef680e5fa5b6e6f Mon Sep 17 00:00:00 2001 From: overtorment Date: Sat, 17 Aug 2024 15:44:17 +0100 Subject: [PATCH] REF: ts convert multisig-cosigner --- ...tisig-cosigner.js => multisig-cosigner.ts} | 19 ++++++++++++------- tests/unit/multisig-hd-wallet.test.js | 12 ++++++------ 2 files changed, 18 insertions(+), 13 deletions(-) rename class/{multisig-cosigner.js => multisig-cosigner.ts} (93%) diff --git a/class/multisig-cosigner.js b/class/multisig-cosigner.ts similarity index 93% rename from class/multisig-cosigner.js rename to class/multisig-cosigner.ts index da771b74c..64eb6dc32 100644 --- a/class/multisig-cosigner.js +++ b/class/multisig-cosigner.ts @@ -3,15 +3,19 @@ import b58 from 'bs58check'; import ecc from '../blue_modules/noble_ecc'; import { MultisigHDWallet } from './wallets/multisig-hd-wallet'; +import assert from 'assert'; const bip32 = BIP32Factory(ecc); export class MultisigCosigner { - constructor(data) { + private _data: string; + private _fp: string = ''; + private _xpub: string = ''; + private _path: string = ''; + private _valid: boolean = false; + private _cosigners: any[]; + + constructor(data: string) { this._data = data; - this._fp = false; - this._xpub = false; - this._path = false; - this._valid = false; this._cosigners = []; // is it plain simple Zpub/Ypub/xpub? @@ -70,6 +74,7 @@ export class MultisigCosigner { // a bit more logic here: according to the formal BIP48 spec, this xpub field _can_ start with 'xpub', but // the actual type of segwit can be inferred from the path + assert(this._xpub); if ( this._xpub.startsWith('xpub') && [MultisigHDWallet.PATH_NATIVE_SEGWIT, MultisigHDWallet.PATH_WRAPPED_SEGWIT].includes(this._path) @@ -126,7 +131,7 @@ export class MultisigCosigner { } } - static isXpubValid(key) { + static isXpubValid(key: string) { let xpub; try { @@ -139,7 +144,7 @@ export class MultisigCosigner { return false; } - static exportToJson(xfp, xpub, path) { + static exportToJson(xfp: string, xpub: string, path: string) { return JSON.stringify({ xfp, xpub, diff --git a/tests/unit/multisig-hd-wallet.test.js b/tests/unit/multisig-hd-wallet.test.js index a2149df31..d547c3ee0 100644 --- a/tests/unit/multisig-hd-wallet.test.js +++ b/tests/unit/multisig-hd-wallet.test.js @@ -2158,9 +2158,9 @@ describe('multisig-cosigner', () => { it('cant parse bs', () => { const cosigner = new MultisigCosigner('asdfasdgsqwrgqwegq'); assert.ok(!cosigner.isValid()); - assert.strictEqual(cosigner.getFp(), false); - assert.strictEqual(cosigner.getXpub(), false); - assert.strictEqual(cosigner.getPath(), false); + assert.strictEqual(cosigner.getFp(), ''); + assert.strictEqual(cosigner.getXpub(), ''); + assert.strictEqual(cosigner.getPath(), ''); }); it('can parse file from coldcard with multiple xpubs (for different formats)', () => { @@ -2178,9 +2178,9 @@ describe('multisig-cosigner', () => { const cosigner = new MultisigCosigner(cc); assert.strictEqual(cosigner.howManyCosignersWeHave(), 3); assert.ok(cosigner.isValid()); - assert.strictEqual(cosigner.getFp(), false); - assert.strictEqual(cosigner.getXpub(), false); - assert.strictEqual(cosigner.getPath(), false); + assert.strictEqual(cosigner.getFp(), ''); + assert.strictEqual(cosigner.getXpub(), ''); + assert.strictEqual(cosigner.getPath(), ''); const [c1, c2, c3] = cosigner.getAllCosigners();