Skip to content

Commit

Permalink
refactor: update musig bindings
Browse files Browse the repository at this point in the history
  • Loading branch information
michael1011 committed Jan 5, 2024
1 parent 6ae0171 commit 4df0400
Show file tree
Hide file tree
Showing 21 changed files with 188 additions and 178 deletions.
2 changes: 1 addition & 1 deletion lib/liquid/init.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { confidential } from 'liquidjs-lib';
import { ECPairAPI, ECPairFactory } from 'ecpair';
import { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';

export let secp: Secp256k1ZKP;
export let ecpair: ECPairAPI;
Expand Down
9 changes: 4 additions & 5 deletions lib/musig/Musig.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ECPairInterface } from 'ecpair';
import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371';
import { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';
import { getHexString } from '../Utils';

class Musig {
Expand Down Expand Up @@ -39,8 +38,8 @@ class Musig {
throw 'our key is not publicKeys';
}

this.pubkeyAgg = this.secp.musig.pubkeyAgg(publicKeys.map(toXOnly));
this.nonce = this.secp.musig.nonceGen(sessionId);
this.pubkeyAgg = this.secp.musig.pubkeyAgg(publicKeys);
this.nonce = this.secp.musig.nonceGen(sessionId, this.key.publicKey);
this.partialSignatures = Array(publicKeys.length).fill(null);
}

Expand Down Expand Up @@ -163,7 +162,7 @@ class Musig {
return this.secp.musig.partialVerify(
signature,
this.pubNonces[index],
toXOnly(publicKey),
publicKey,
this.pubkeyAgg.keyaggCache,
this.session,
);
Expand Down
226 changes: 113 additions & 113 deletions package-lock.json

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -50,8 +50,8 @@
],
"dependencies": {
"@boltz/bitcoin-ops": "^2.0.0",
"@michael1011/secp256k1-zkp": "^3.1.0",
"@openzeppelin/contracts": "^5.0.1",
"@vulpemventures/secp256k1-zkp": "^3.2.1",
"bip32": "^4.0.0",
"bip65": "^1.0.3",
"bip66": "^1.1.5",
Expand All @@ -63,17 +63,17 @@
"devDependencies": {
"@typechain/ethers-v6": "^0.5.1",
"@types/jest": "^29.5.11",
"@types/node": "^20.10.5",
"@types/node": "^20.10.6",
"@types/ws": "^8.5.10",
"@typescript-eslint/eslint-plugin": "^6.16.0",
"@typescript-eslint/parser": "^6.16.0",
"@typescript-eslint/eslint-plugin": "^6.17.0",
"@typescript-eslint/parser": "^6.17.0",
"bip174": "^2.1.1",
"cross-os": "^1.5.0",
"eslint": "^8.56.0",
"eslint-plugin-import": "^2.29.1",
"eslint-plugin-jest": "^27.6.0",
"eslint-plugin-jest": "^27.6.1",
"eslint-plugin-node": "^11.1.0",
"ethers": "^6.9.1",
"ethers": "^6.9.2",
"git-cliff": "^1.4.0",
"jest": "^29.7.0",
"prettier": "^3.1.1",
Expand Down
2 changes: 1 addition & 1 deletion test/integration/Utils.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { randomBytes } from 'crypto';
import * as ecc from 'tiny-secp256k1';
import { ECPairInterface } from 'ecpair';
import zkp, { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import zkp, { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';
import {
address,
crypto,
Expand Down
2 changes: 1 addition & 1 deletion test/integration/liquid/Utils.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { Transaction, address } from 'liquidjs-lib';
import { elementsClient } from '../Utils';
import { getHexBuffer } from '../../../lib/Utils';
Expand Down
7 changes: 5 additions & 2 deletions test/integration/liquid/swapTree/SwapTreeClaim.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { randomBytes } from 'crypto';
import zkp, { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import zkp, { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';
import { slip77 } from '../../../unit/Utils';
import { OutputType } from '../../../../lib/Boltz';
import swapTree from '../../../../lib/swap/SwapTree';
Expand Down Expand Up @@ -72,7 +72,10 @@ describe.each`
expect(tx.ins[0].witness).toHaveLength(1);
expect(tx.ins[0].witness[0].equals(Buffer.alloc(64))).toEqual(true);

const theirNonce = secp.musig.nonceGen(randomBytes(32));
const theirNonce = secp.musig.nonceGen(
randomBytes(32),
refundKeys.publicKey,
);
musig!.aggregateNonces([[refundKeys.publicKey, theirNonce.pubNonce]]);
musig!.initializeSession(
hashForWitnessV1(Networks.liquidRegtest, [utxo], tx, 0),
Expand Down
2 changes: 1 addition & 1 deletion test/integration/liquid/swapTree/SwapTreeRefund.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { slip77 } from '../../../unit/Utils';
import { init } from '../../../../lib/liquid';
import swapTree from '../../../../lib/swap/SwapTree';
Expand Down
2 changes: 1 addition & 1 deletion test/integration/liquid/swapscript/SwapScriptClaim.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { slip77 } from '../../../unit/Utils';
import { OutputType } from '../../../../lib/consts/Enums';
import { init, LiquidClaimDetails } from '../../../../lib/liquid';
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { slip77 } from '../../../unit/Utils';
import { init } from '../../../../lib/liquid';
import { OutputType } from '../../../../lib/consts/Enums';
Expand Down
4 changes: 2 additions & 2 deletions test/integration/musig/Musig.spec.ts
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
import { randomBytes } from 'crypto';
import * as ecc from 'tiny-secp256k1';
import { address, initEccLib, Transaction } from 'bitcoinjs-lib';
import zkp, { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import zkp, { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';
import { bitcoinClient } from '../Utils';
import { ECPair } from '../../unit/Utils';
import Musig from '../../../lib/musig/Musig';
Expand Down Expand Up @@ -85,7 +85,7 @@ describe('Musig', () => {
);

// Create signature
const theirNonce = secp.musig.nonceGen(randomBytes(32));
const theirNonce = secp.musig.nonceGen(randomBytes(32), theirKey.publicKey);
musig.aggregateNonces([[theirKey.publicKey, theirNonce.pubNonce]]);
musig.initializeSession(sigHash);
musig.signPartial();
Expand Down
2 changes: 1 addition & 1 deletion test/integration/musig/__snapshots__/Musig.spec.ts.snap
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
// Jest Snapshot v1, https://goo.gl/fbAQLP

exports[`Musig should create P2TR addresses 1`] = `"bcrt1pn8rm287f57grctmr3xwt8lrsu2xf4pg5a0zaexjznp89v6me88pq5rut2m"`;
exports[`Musig should create P2TR addresses 1`] = `"bcrt1pxd8mc7dj3a97nqr9yy2rjurmpnejq72n82mr9wkzu6x8qq8a6h4qva33c7"`;
7 changes: 5 additions & 2 deletions test/integration/swapTree/SwapTreeClaim.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { randomBytes } from 'crypto';
import zkp, { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import zkp, { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';
import {
bitcoinClient,
claimSwap,
Expand Down Expand Up @@ -43,7 +43,10 @@ describe.each`
expect(tx.ins[0].witness).toHaveLength(1);
expect(tx.ins[0].witness[0].equals(Buffer.alloc(64))).toEqual(true);

const theirNonce = secp.musig.nonceGen(randomBytes(32));
const theirNonce = secp.musig.nonceGen(
randomBytes(32),
refundKeys.publicKey,
);
musig!.aggregateNonces([[refundKeys.publicKey, theirNonce.pubNonce]]);
musig!.initializeSession(hashForWitnessV1([utxo], tx, 0));
musig!.signPartial();
Expand Down
2 changes: 1 addition & 1 deletion test/unit/liquid/TargetFee.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { confidential, Transaction } from 'liquidjs-lib';
import { getHexBuffer } from '../../../lib/Utils';
import { targetFee } from '../../../lib/TargetFee';
Expand Down
2 changes: 1 addition & 1 deletion test/unit/liquid/init.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { confidential } from 'liquidjs-lib';
import zkp, { Secp256k1ZKP } from '@michael1011/secp256k1-zkp';
import zkp, { Secp256k1ZKP } from '@vulpemventures/secp256k1-zkp';
import {
confidentialLiquid,
ecpair,
Expand Down
2 changes: 1 addition & 1 deletion test/unit/liquid/swap/Claim.spec.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { getHexBuffer } from '../../../../lib/Utils';
import { liquidClaimDetailsMap } from './ClaimDetails';
import { OutputType } from '../../../../lib/consts/Enums';
Expand Down
2 changes: 1 addition & 1 deletion test/unit/liquid/swap/PreimageDetector.spec.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { crypto } from 'bitcoinjs-lib';
import { confidential } from 'liquidjs-lib';
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { ECPair } from '../../Utils';
import { lbtcRegtest, nonce } from './ClaimDetails';
import { getHexBuffer } from '../../../../lib/Utils';
Expand Down
2 changes: 1 addition & 1 deletion test/unit/liquid/swap/Refund.spec.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import { confidential } from 'liquidjs-lib';
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { ECPair } from '../../Utils';
import { lbtcRegtest, nonce } from './ClaimDetails';
import { getHexBuffer } from '../../../../lib/Utils';
Expand Down
2 changes: 1 addition & 1 deletion test/unit/liquid/swap/TaprooUtils.spec.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import { randomBytes } from 'crypto';
import ops from '@boltz/bitcoin-ops';
import * as ecc from 'tiny-secp256k1';
import { initEccLib } from 'bitcoinjs-lib';
import zkp from '@michael1011/secp256k1-zkp';
import zkp from '@vulpemventures/secp256k1-zkp';
import { Taptree } from 'bitcoinjs-lib/src/types';
import { toXOnly } from 'bitcoinjs-lib/src/psbt/bip371';
import { findScriptPath as liquidFindScriptPath } from 'liquidjs-lib/src/bip341';
Expand Down
Loading

0 comments on commit 4df0400

Please sign in to comment.