@did-btcr2/bitcoin 0.3.1 → 0.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/client/rest/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,GAAG,CAA8C;IAEzD,YAAY,GAAgD;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAK;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAkB;QACpD,sEAAsE;QACtE,IAAG,CAAC,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAgB,CAAC,wDAAwD,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,2CAA2C;QAC3C,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QAC1C,IAAG,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,SAAS,EAAE,EAAE,CAAY,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/client/rest/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,GAAG,CAA8C;IAEzD,YAAY,GAAgD;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAK;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAkB;QACpD,sEAAsE;QACtE,IAAG,CAAC,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAgB,CAAC,wDAAwD,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,2CAA2C;QAC3C,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QAC1C,IAAG,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,SAAS,EAAE,EAAE,CAAY,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -1,18 +1,9 @@
1
1
  import { MethodError } from '@did-btcr2/common';
2
+ import { DEFAULT_BITCOIN_NETWORK_CONFIG } from '../../constants.js';
2
3
  import { BitcoinAddress } from './address.js';
3
4
  import { BitcoinBlock } from './block.js';
4
5
  import { BitcoinTransaction } from './transaction.js';
5
- import { DEFAULT_BITCOIN_NETWORK_CONFIG } from '../../constants.js';
6
- ;
7
- export class RestClientConfig {
8
- host;
9
- headers;
10
- constructor({ host, headers }) {
11
- this.host = host;
12
- this.headers = headers;
13
- }
14
- }
15
- ;
6
+ import { RestClientConfig } from '../../types.js';
16
7
  /**
17
8
  * Implements a strongly-typed BitcoinRestClient to connect to remote bitcoin node via REST API.
18
9
  * @class BitcoinRestClient
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rest/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rest/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { Secp256k1SecretKey } from '@did-btcr2/keypair';
2
+ import { schnorr } from '@noble/curves/secp256k1';
3
+ import { bytesToHex } from '@noble/hashes/utils.js';
4
+ import { CURVE, ProjectivePoint } from '@noble/secp256k1';
5
+ import { payments } from 'bitcoinjs-lib';
6
+ import { taggedHash } from 'bitcoinjs-lib/src/crypto';
7
+ export class MuSig2Participant {
8
+ secretKey;
9
+ publicKey;
10
+ nonce;
11
+ noncePub;
12
+ constructor(secretKey) {
13
+ this.secretKey = secretKey ?? Secp256k1SecretKey.random();
14
+ this.publicKey = schnorr.getPublicKey(this.secretKey);
15
+ }
16
+ generateNonce() {
17
+ this.nonce = Secp256k1SecretKey.random();
18
+ this.noncePub = ProjectivePoint.fromPrivateKey(this.nonce);
19
+ return {
20
+ sessionId: 'SESSION_ID',
21
+ beaconAddress: Buffer.from(this.publicKey).toString('hex'),
22
+ noncePoints: this.noncePub.toHex(true), // compressed
23
+ };
24
+ }
25
+ sign(message, aggregatedNonceHex) {
26
+ const R = ProjectivePoint.fromHex(aggregatedNonceHex);
27
+ const L = ProjectivePoint.fromHex(this.publicKey);
28
+ const e = taggedHash('BIP0340/challenge', new Uint8Array([
29
+ ...R.toRawBytes(true),
30
+ ...L.toRawBytes(true),
31
+ ...message,
32
+ ]));
33
+ const eNum = BigInt('0x' + bytesToHex(e));
34
+ const rNum = BigInt('0x' + bytesToHex(this.nonce));
35
+ const xNum = BigInt('0x' + bytesToHex(this.secretKey));
36
+ const s = (rNum + eNum * xNum) % CURVE.n;
37
+ return {
38
+ sessionId: crypto.randomUUID(),
39
+ beaconAddress: payments.p2tr({ internalPubkey: this.publicKey }).address || '',
40
+ txSig: s.toString(16).padStart(64, '0'),
41
+ };
42
+ }
43
+ }
44
+ export class MuSig2Coordinator {
45
+ sessions = new Map();
46
+ receiveNonce(contrib) {
47
+ const session = this.sessions.get(contrib.sessionId);
48
+ session?.publicNonces.set(contrib.beaconAddress, contrib.noncePoints);
49
+ }
50
+ aggregateNonces(sessionId) {
51
+ const session = this.sessions.get(sessionId);
52
+ if (!session)
53
+ throw new Error('Session not found');
54
+ const points = Array.from(session.publicNonces.values()).map(nonceHex => ProjectivePoint.fromHex(nonceHex));
55
+ const aggregated = points.reduce((acc, pt) => acc.add(pt), ProjectivePoint.ZERO);
56
+ session.aggregatedNonce = aggregated.toHex();
57
+ return {
58
+ sessionId,
59
+ beaconAddress: session.beaconAddress,
60
+ aggregatedNoncePoints: session.aggregatedNonce,
61
+ };
62
+ }
63
+ collectSignature(auth) {
64
+ const session = this.sessions.get(auth.sessionId);
65
+ if (session) {
66
+ session.partialSigs.set(auth.beaconAddress, auth.txSig);
67
+ }
68
+ }
69
+ finalizeTransaction(psbt) {
70
+ // Combine partial signatures (assuming MuSig2 multi-party logic handled externally)
71
+ return psbt.toHex();
72
+ }
73
+ }
74
+ //# sourceMappingURL=musig2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"musig2.js","sourceRoot":"","sources":["../../src/musig2.ts"],"names":[],"mappings":"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"}
package/dist/cjs/types.js CHANGED
@@ -1,3 +1,13 @@
1
+ ;
2
+ export class RestClientConfig {
3
+ host;
4
+ headers;
5
+ constructor({ host, headers }) {
6
+ this.host = host;
7
+ this.headers = headers;
8
+ }
9
+ }
10
+ ;
1
11
  export class BitcoinRpcClientConfig {
2
12
  network;
3
13
  headers;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAU;IACjB,OAAO,CAA0B;IACjC,IAAI,CAAU;IACd,MAAM,CAAO;IACb,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,kBAAkB,CAAW;IAE7B,YAAY,UAA2B;QACrC,OAAO,EAAc,EAAE;QACvB,IAAI,EAAiB,kBAAkB;QACvC,MAAM,EAAe,OAAO;QAC5B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,KAAK;QAC1B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,QAAQ;QAC7B,MAAM,EAAe,EAAE;QACvB,kBAAkB,EAAG,KAAK;KAC3B;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAyB;QAChD,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAiZA,CAAC;AAKD,CAAC;AA2gBF;;;;GAIG;AACH,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACtB,iEAAiE;IACjE,iDAAO,CAAA;IACP,6DAA6D;IAC7D,mDAAQ,CAAA;IACR;;;;OAIG;IACH,yDAAW,CAAA;IACX;;;OAGG;IACH,iEAAe,CAAA;AACnB,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAkBC,CAAC;AAoDF,MAAM,OAAO,gBAAgB;IAC3B,IAAI,CAAS;IACb,OAAO,CAA6B;IACpC,YAAY,EAAE,IAAI,EAAE,OAAO,EAA0B;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAQA,CAAC;AAiDF,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAU;IACjB,OAAO,CAA0B;IACjC,IAAI,CAAU;IACd,MAAM,CAAO;IACb,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,kBAAkB,CAAW;IAE7B,YAAY,UAA2B;QACrC,OAAO,EAAc,EAAE;QACvB,IAAI,EAAiB,kBAAkB;QACvC,MAAM,EAAe,OAAO;QAC5B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,KAAK;QAC1B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,QAAQ;QAC7B,MAAM,EAAe,EAAE;QACvB,kBAAkB,EAAG,KAAK;KAC3B;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAyB;QAChD,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAiZA,CAAC;AAKD,CAAC;AA2gBF;;;;GAIG;AACH,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACtB,iEAAiE;IACjE,iDAAO,CAAA;IACP,6DAA6D;IAC7D,mDAAQ,CAAA;IACR;;;;OAIG;IACH,yDAAW,CAAA;IACX;;;OAGG;IACH,iEAAe,CAAA;AACnB,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB"}
@@ -1 +1 @@
1
- {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/client/rest/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAInD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,GAAG,CAA8C;IAEzD,YAAY,GAAgD;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAK;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAkB;QACpD,sEAAsE;QACtE,IAAG,CAAC,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAgB,CAAC,wDAAwD,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,2CAA2C;QAC3C,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QAC1C,IAAG,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,SAAS,EAAE,EAAE,CAAY,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
1
+ {"version":3,"file":"block.js","sourceRoot":"","sources":["../../../../src/client/rest/block.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAGnD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACf,GAAG,CAA8C;IAEzD,YAAY,GAAgD;QAC1D,IAAI,CAAC,GAAG,GAAG,GAAG,CAAC;IACjB,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,KAAK;QAChB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACxD,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAkB;QACpD,sEAAsE;QACtE,IAAG,CAAC,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,gBAAgB,CAAC,wDAAwD,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QAC9G,CAAC;QAED,2CAA2C;QAC3C,SAAS,KAAK,MAAM,IAAI,CAAC,OAAO,CAAC,MAAO,CAAC,CAAC;QAC1C,IAAG,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,qBAAqB;QACrB,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,UAAU,SAAS,EAAE,EAAE,CAAY,CAAC;IACpE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,MAAc;QACjC,OAAO,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,iBAAiB,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7D,CAAC;CACF"}
@@ -1,18 +1,9 @@
1
1
  import { MethodError } from '@did-btcr2/common';
2
+ import { DEFAULT_BITCOIN_NETWORK_CONFIG } from '../../constants.js';
2
3
  import { BitcoinAddress } from './address.js';
3
4
  import { BitcoinBlock } from './block.js';
4
5
  import { BitcoinTransaction } from './transaction.js';
5
- import { DEFAULT_BITCOIN_NETWORK_CONFIG } from '../../constants.js';
6
- ;
7
- export class RestClientConfig {
8
- host;
9
- headers;
10
- constructor({ host, headers }) {
11
- this.host = host;
12
- this.headers = headers;
13
- }
14
- }
15
- ;
6
+ import { RestClientConfig } from '../../types.js';
16
7
  /**
17
8
  * Implements a strongly-typed BitcoinRestClient to connect to remote bitcoin node via REST API.
18
9
  * @class BitcoinRestClient
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rest/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rest/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ import { Secp256k1SecretKey } from '@did-btcr2/keypair';
2
+ import { schnorr } from '@noble/curves/secp256k1';
3
+ import { bytesToHex } from '@noble/hashes/utils.js';
4
+ import { CURVE, ProjectivePoint } from '@noble/secp256k1';
5
+ import { payments } from 'bitcoinjs-lib';
6
+ import { taggedHash } from 'bitcoinjs-lib/src/crypto';
7
+ export class MuSig2Participant {
8
+ secretKey;
9
+ publicKey;
10
+ nonce;
11
+ noncePub;
12
+ constructor(secretKey) {
13
+ this.secretKey = secretKey ?? Secp256k1SecretKey.random();
14
+ this.publicKey = schnorr.getPublicKey(this.secretKey);
15
+ }
16
+ generateNonce() {
17
+ this.nonce = Secp256k1SecretKey.random();
18
+ this.noncePub = ProjectivePoint.fromPrivateKey(this.nonce);
19
+ return {
20
+ sessionId: 'SESSION_ID',
21
+ beaconAddress: Buffer.from(this.publicKey).toString('hex'),
22
+ noncePoints: this.noncePub.toHex(true), // compressed
23
+ };
24
+ }
25
+ sign(message, aggregatedNonceHex) {
26
+ const R = ProjectivePoint.fromHex(aggregatedNonceHex);
27
+ const L = ProjectivePoint.fromHex(this.publicKey);
28
+ const e = taggedHash('BIP0340/challenge', new Uint8Array([
29
+ ...R.toRawBytes(true),
30
+ ...L.toRawBytes(true),
31
+ ...message,
32
+ ]));
33
+ const eNum = BigInt('0x' + bytesToHex(e));
34
+ const rNum = BigInt('0x' + bytesToHex(this.nonce));
35
+ const xNum = BigInt('0x' + bytesToHex(this.secretKey));
36
+ const s = (rNum + eNum * xNum) % CURVE.n;
37
+ return {
38
+ sessionId: crypto.randomUUID(),
39
+ beaconAddress: payments.p2tr({ internalPubkey: this.publicKey }).address || '',
40
+ txSig: s.toString(16).padStart(64, '0'),
41
+ };
42
+ }
43
+ }
44
+ export class MuSig2Coordinator {
45
+ sessions = new Map();
46
+ receiveNonce(contrib) {
47
+ const session = this.sessions.get(contrib.sessionId);
48
+ session?.publicNonces.set(contrib.beaconAddress, contrib.noncePoints);
49
+ }
50
+ aggregateNonces(sessionId) {
51
+ const session = this.sessions.get(sessionId);
52
+ if (!session)
53
+ throw new Error('Session not found');
54
+ const points = Array.from(session.publicNonces.values()).map(nonceHex => ProjectivePoint.fromHex(nonceHex));
55
+ const aggregated = points.reduce((acc, pt) => acc.add(pt), ProjectivePoint.ZERO);
56
+ session.aggregatedNonce = aggregated.toHex();
57
+ return {
58
+ sessionId,
59
+ beaconAddress: session.beaconAddress,
60
+ aggregatedNoncePoints: session.aggregatedNonce,
61
+ };
62
+ }
63
+ collectSignature(auth) {
64
+ const session = this.sessions.get(auth.sessionId);
65
+ if (session) {
66
+ session.partialSigs.set(auth.beaconAddress, auth.txSig);
67
+ }
68
+ }
69
+ finalizeTransaction(psbt) {
70
+ // Combine partial signatures (assuming MuSig2 multi-party logic handled externally)
71
+ return psbt.toHex();
72
+ }
73
+ }
74
+ //# sourceMappingURL=musig2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"musig2.js","sourceRoot":"","sources":["../../src/musig2.ts"],"names":[],"mappings":"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"}
package/dist/esm/types.js CHANGED
@@ -1,3 +1,13 @@
1
+ ;
2
+ export class RestClientConfig {
3
+ host;
4
+ headers;
5
+ constructor({ host, headers }) {
6
+ this.host = host;
7
+ this.headers = headers;
8
+ }
9
+ }
10
+ ;
1
11
  export class BitcoinRpcClientConfig {
2
12
  network;
3
13
  headers;
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AA6CA,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAU;IACjB,OAAO,CAA0B;IACjC,IAAI,CAAU;IACd,MAAM,CAAO;IACb,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,kBAAkB,CAAW;IAE7B,YAAY,UAA2B;QACrC,OAAO,EAAc,EAAE;QACvB,IAAI,EAAiB,kBAAkB;QACvC,MAAM,EAAe,OAAO;QAC5B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,KAAK;QAC1B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,QAAQ;QAC7B,MAAM,EAAe,EAAE;QACvB,kBAAkB,EAAG,KAAK;KAC3B;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAyB;QAChD,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAiZA,CAAC;AAKD,CAAC;AA2gBF;;;;GAIG;AACH,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACtB,iEAAiE;IACjE,iDAAO,CAAA;IACP,6DAA6D;IAC7D,mDAAQ,CAAA;IACR;;;;OAIG;IACH,yDAAW,CAAA;IACX;;;OAGG;IACH,iEAAe,CAAA;AACnB,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAkBC,CAAC;AAoDF,MAAM,OAAO,gBAAgB;IAC3B,IAAI,CAAS;IACb,OAAO,CAA6B;IACpC,YAAY,EAAE,IAAI,EAAE,OAAO,EAA0B;QACnD,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF;AAQA,CAAC;AAiDF,MAAM,OAAO,sBAAsB;IACjC,OAAO,CAAU;IACjB,OAAO,CAA0B;IACjC,IAAI,CAAU;IACd,MAAM,CAAO;IACb,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,QAAQ,CAAU;IAClB,OAAO,CAAU;IACjB,MAAM,CAAU;IAChB,kBAAkB,CAAW;IAE7B,YAAY,UAA2B;QACrC,OAAO,EAAc,EAAE;QACvB,IAAI,EAAiB,kBAAkB;QACvC,MAAM,EAAe,OAAO;QAC5B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,KAAK;QAC1B,QAAQ,EAAa,EAAE;QACvB,OAAO,EAAc,QAAQ;QAC7B,MAAM,EAAe,EAAE;QACvB,kBAAkB,EAAG,KAAK;KAC3B;QACC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;QACzB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,QAAQ,CAAC;QACjC,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;QAC/B,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,CAAC;IACvD,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,OAAyB;QAChD,OAAO,IAAI,sBAAsB,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF;AAiZA,CAAC;AAKD,CAAC;AA2gBF;;;;GAIG;AACH,MAAM,CAAN,IAAY,cAgBX;AAhBD,WAAY,cAAc;IACtB,iEAAiE;IACjE,iDAAO,CAAA;IACP,6DAA6D;IAC7D,mDAAQ,CAAA;IACR;;;;OAIG;IACH,yDAAW,CAAA;IACX;;;OAGG;IACH,iEAAe,CAAA;AACnB,CAAC,EAhBW,cAAc,KAAd,cAAc,QAgBzB"}
@@ -1,4 +1,4 @@
1
- import { AddressInfo, AddressUtxo, RawTransactionRest, RestApiCallParams } from './index.js';
1
+ import { AddressInfo, AddressUtxo, RawTransactionRest, RestApiCallParams } from '../../types.js';
2
2
  /**
3
3
  * Implements a strongly-typed BitcoinRest to connect to remote bitcoin node via REST API for address-related operations.
4
4
  * @class BitcoinAddress
@@ -1 +1 @@
1
- {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE7F;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAA8C;gBAE7C,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC;IAI5D;;;;;;OAMG;IACU,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAIpF;;;;;OAKG;IACU,eAAe,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3E;;;;;OAKG;IACU,aAAa,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAI3F;;;;;;;OAOG;IACU,OAAO,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvE;;;;;;OAMG;IACU,eAAe,CAAC,mBAAmB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAQpH;;;;;OAKG;IACU,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;CAGhF"}
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/address.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEjG;;;;GAIG;AACH,qBAAa,cAAc;IACzB,OAAO,CAAC,GAAG,CAA8C;gBAE7C,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC;IAI5D;;;;;;OAMG;IACU,MAAM,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAIpF;;;;;OAKG;IACU,eAAe,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAM3E;;;;;OAKG;IACU,aAAa,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAI3F;;;;;;;OAOG;IACU,OAAO,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IAIvE;;;;;;OAMG;IACU,eAAe,CAAC,mBAAmB,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;IAQpH;;;;;OAKG;IACU,QAAQ,CAAC,mBAAmB,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;CAGhF"}
@@ -1,5 +1,4 @@
1
- import { BlockResponse, GetBlockParams } from '../../types.js';
2
- import { RestApiCallParams } from './index.js';
1
+ import { RestApiCallParams, BlockResponse, GetBlockParams } from '../../types.js';
3
2
  /**
4
3
  * Implements a strongly-typed BitcoinRest to connect to remote bitcoin node via REST API for block-related operations.
5
4
  * @class BitcoinBlock
@@ -1 +1 @@
1
- {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAW,cAAc,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAE/C;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAA8C;gBAE7C,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC;IAI5D;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC;;;;;;;OAOG;IACU,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgB3F;;;;;OAKG;IACU,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGtD"}
1
+ {"version":3,"file":"block.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/block.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAW,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAE3F;;;;GAIG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,GAAG,CAA8C;gBAE7C,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC;IAI5D;;;OAGG;IACU,KAAK,IAAI,OAAO,CAAC,MAAM,CAAC;IAIrC;;;;;;;OAOG;IACU,GAAG,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC;IAgB3F;;;;;OAKG;IACU,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAGtD"}
@@ -1,90 +1,7 @@
1
- import { UnixTimestamp } from '@did-btcr2/common';
2
- import { TxInPrevout } from '../../types.js';
3
1
  import { BitcoinAddress } from './address.js';
4
2
  import { BitcoinBlock } from './block.js';
5
3
  import { BitcoinTransaction } from './transaction.js';
6
- export type TransactionStatus = {
7
- confirmed: boolean;
8
- block_height: number;
9
- block_hash: string;
10
- block_time: UnixTimestamp;
11
- };
12
- export interface Vin {
13
- txid: string;
14
- vout: number;
15
- prevout?: TxInPrevout;
16
- scriptsig: string;
17
- scriptsig_asm: string;
18
- witness: string[];
19
- is_coinbase: boolean;
20
- sequence: number;
21
- }
22
- export interface Vout {
23
- scriptpubkey: string;
24
- scriptpubkey_asm: string;
25
- scriptpubkey_type: string;
26
- scriptpubkey_address?: string;
27
- value: number;
28
- }
29
- export interface ChainStats {
30
- funded_txo_count: number;
31
- funded_txo_sum: number;
32
- spent_txo_count: number;
33
- spent_txo_sum: number;
34
- tx_count: number;
35
- }
36
- export interface MempoolStats {
37
- funded_txo_count: number;
38
- funded_txo_sum: number;
39
- spent_txo_count: number;
40
- spent_txo_sum: number;
41
- tx_count: number;
42
- }
43
- export interface AddressInfo {
44
- address: string;
45
- chain_stats: ChainStats;
46
- mempool_stats: MempoolStats;
47
- }
48
- export interface RawTransactionRest {
49
- txid: string;
50
- version: number;
51
- locktime: number;
52
- vin: Array<Vin>;
53
- vout: Array<Vout>;
54
- size: number;
55
- weight: number;
56
- fee: number;
57
- status: TransactionStatus;
58
- }
59
- export interface AddressUtxo {
60
- txid: string;
61
- vout: number;
62
- status: TransactionStatus;
63
- value: number;
64
- }
65
- export interface RestClientConfigParams {
66
- host: string;
67
- headers?: {
68
- [key: string]: string;
69
- };
70
- }
71
- export declare class RestClientConfig {
72
- host: string;
73
- headers?: {
74
- [key: string]: string;
75
- };
76
- constructor({ host, headers }: RestClientConfigParams);
77
- }
78
- export interface RestApiCallParams {
79
- path: string;
80
- url?: string;
81
- method?: string;
82
- body?: any;
83
- headers?: any;
84
- }
85
- export interface RestResponse extends Response {
86
- [key: string]: any;
87
- }
4
+ import { RestClientConfig, RestApiCallParams } from '../../types.js';
88
5
  /**
89
6
  * Implements a strongly-typed BitcoinRestClient to connect to remote bitcoin node via REST API.
90
7
  * @class BitcoinRestClient
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAgB,MAAM,gBAAgB,CAAC;AAGnF;;;;GAIG;AACH,qBAAa,iBAAiB;IAC5B;;;;OAIG;IACH,OAAO,CAAC,OAAO,CAAmB;IAElC;;;OAGG;IACI,WAAW,EAAE,kBAAkB,CAAC;IAEvC;;;OAGG;IACI,KAAK,EAAE,YAAY,CAAC;IAE3B;;;OAGG;IACI,OAAO,EAAE,cAAc,CAAC;IAE/B;;;OAGG;IACI,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAa;gBAExD,MAAM,EAAE,gBAAgB;IAQpC;;;OAGG;IACH,IAAI,MAAM,IAAI,gBAAgB,CAG7B;IAED;;;;;;;;;OASG;WACW,OAAO,CAAC,MAAM,CAAC,EAAE,gBAAgB,GAAG,iBAAiB;IAInE;;;;;;;;;;OAUG;YACW,IAAI;CAyCnB"}
@@ -1,5 +1,5 @@
1
1
  import { Bytes } from '@did-btcr2/common';
2
- import { RawTransactionRest, RestApiCallParams } from './index.js';
2
+ import { RawTransactionRest, RestApiCallParams } from '../../types.js';
3
3
  export declare class BitcoinTransaction {
4
4
  private api;
5
5
  constructor(api: (params: RestApiCallParams) => Promise<any>);
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAEnE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAA8C;gBAE7C,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC;IAI5D;;;;;OAKG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI3D;;;;;OAKG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIjD;;;;;;OAMG;IACU,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/C"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../../src/client/rest/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAC1C,OAAO,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEvE,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,GAAG,CAA8C;gBAE7C,GAAG,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,OAAO,CAAC,GAAG,CAAC;IAI5D;;;;;OAKG;IACU,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAI3D;;;;;OAKG;IACU,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKxD;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIlD;;;;;;OAMG;IACU,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAIjD;;;;;;OAMG;IACU,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAG/C"}
@@ -0,0 +1,44 @@
1
+ import { Hex } from '@did-btcr2/common';
2
+ import { Point } from '@noble/secp256k1';
3
+ import { Psbt } from 'bitcoinjs-lib';
4
+ interface MuSig2Session {
5
+ sessionId: string;
6
+ beaconAddress: string;
7
+ participants: Hex[];
8
+ publicNonces: Map<Hex, Hex>;
9
+ aggregatedNonce?: Hex;
10
+ messageToSign?: Uint8Array;
11
+ partialSigs: Map<Hex, Hex>;
12
+ }
13
+ interface MuSig2NonceContribution {
14
+ sessionId: string;
15
+ beaconAddress: string;
16
+ noncePoints: Hex;
17
+ }
18
+ interface AggregatedMuSig2Nonce {
19
+ sessionId: string;
20
+ beaconAddress: string;
21
+ aggregatedNoncePoints: Hex;
22
+ }
23
+ interface BeaconSignalAuthorization {
24
+ sessionId: string;
25
+ beaconAddress: string;
26
+ txSig: Hex;
27
+ }
28
+ export declare class MuSig2Participant {
29
+ secretKey: Uint8Array;
30
+ publicKey: Uint8Array;
31
+ nonce?: Uint8Array;
32
+ noncePub?: Point;
33
+ constructor(secretKey?: Uint8Array);
34
+ generateNonce(): MuSig2NonceContribution;
35
+ sign(message: Uint8Array, aggregatedNonceHex: string): BeaconSignalAuthorization;
36
+ }
37
+ export declare class MuSig2Coordinator {
38
+ sessions: Map<string, MuSig2Session>;
39
+ receiveNonce(contrib: MuSig2NonceContribution): void;
40
+ aggregateNonces(sessionId: string): AggregatedMuSig2Nonce;
41
+ collectSignature(auth: BeaconSignalAuthorization): void;
42
+ finalizeTransaction(psbt: Psbt): string;
43
+ }
44
+ export {};
@@ -0,0 +1 @@
1
+ {"version":3,"file":"musig2.d.ts","sourceRoot":"","sources":["../../src/musig2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAIxC,OAAO,EAAS,KAAK,EAAmB,MAAM,kBAAkB,CAAC;AACjE,OAAO,EAAY,IAAI,EAAE,MAAM,eAAe,CAAC;AAG/C,UAAU,aAAa;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,YAAY,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;IAC5B,eAAe,CAAC,EAAE,GAAG,CAAC;IACtB,aAAa,CAAC,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,GAAG,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC;CAC5B;AAED,UAAU,uBAAuB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,GAAG,CAAC;CAClB;AAED,UAAU,qBAAqB;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,qBAAqB,EAAE,GAAG,CAAC;CAC5B;AAED,UAAU,yBAAyB;IACjC,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,qBAAa,iBAAiB;IACrB,SAAS,EAAE,UAAU,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,KAAK,CAAC;gBAEZ,SAAS,CAAC,EAAE,UAAU;IAK3B,aAAa,IAAI,uBAAuB;IAWxC,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,GAAG,yBAAyB;CAsBxF;AAED,qBAAa,iBAAiB;IACrB,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAa;IAEjD,YAAY,CAAC,OAAO,EAAE,uBAAuB;IAK7C,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,qBAAqB;IAezD,gBAAgB,CAAC,IAAI,EAAE,yBAAyB;IAOhD,mBAAmB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM;CAI/C"}
@@ -1,4 +1,86 @@
1
- import { Hex } from '@did-btcr2/common';
1
+ import { Hex, UnixTimestamp } from '@did-btcr2/common';
2
+ export type TransactionStatus = {
3
+ confirmed: boolean;
4
+ block_height: number;
5
+ block_hash: string;
6
+ block_time: UnixTimestamp;
7
+ };
8
+ export interface Vin {
9
+ txid: string;
10
+ vout: number;
11
+ prevout?: TxInPrevout;
12
+ scriptsig: string;
13
+ scriptsig_asm: string;
14
+ witness: string[];
15
+ is_coinbase: boolean;
16
+ sequence: number;
17
+ }
18
+ export interface Vout {
19
+ scriptpubkey: string;
20
+ scriptpubkey_asm: string;
21
+ scriptpubkey_type: string;
22
+ scriptpubkey_address?: string;
23
+ value: number;
24
+ }
25
+ export interface ChainStats {
26
+ funded_txo_count: number;
27
+ funded_txo_sum: number;
28
+ spent_txo_count: number;
29
+ spent_txo_sum: number;
30
+ tx_count: number;
31
+ }
32
+ export interface MempoolStats {
33
+ funded_txo_count: number;
34
+ funded_txo_sum: number;
35
+ spent_txo_count: number;
36
+ spent_txo_sum: number;
37
+ tx_count: number;
38
+ }
39
+ export interface AddressInfo {
40
+ address: string;
41
+ chain_stats: ChainStats;
42
+ mempool_stats: MempoolStats;
43
+ }
44
+ export interface RawTransactionRest {
45
+ txid: string;
46
+ version: number;
47
+ locktime: number;
48
+ vin: Array<Vin>;
49
+ vout: Array<Vout>;
50
+ size: number;
51
+ weight: number;
52
+ fee: number;
53
+ status: TransactionStatus;
54
+ }
55
+ export interface AddressUtxo {
56
+ txid: string;
57
+ vout: number;
58
+ status: TransactionStatus;
59
+ value: number;
60
+ }
61
+ export interface RestClientConfigParams {
62
+ host: string;
63
+ headers?: {
64
+ [key: string]: string;
65
+ };
66
+ }
67
+ export declare class RestClientConfig {
68
+ host: string;
69
+ headers?: {
70
+ [key: string]: string;
71
+ };
72
+ constructor({ host, headers }: RestClientConfigParams);
73
+ }
74
+ export interface RestApiCallParams {
75
+ path: string;
76
+ url?: string;
77
+ method?: string;
78
+ body?: any;
79
+ headers?: any;
80
+ }
81
+ export interface RestResponse extends Response {
82
+ [key: string]: any;
83
+ }
2
84
  export type BitcoinClientConfig = {
3
85
  rpc: {
4
86
  username: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@did-btcr2/bitcoin",
3
- "version": "0.3.1",
3
+ "version": "0.3.2",
4
4
  "type": "module",
5
5
  "description": "Bitcoin Core RPC and Rest Client Implementations in JS/TS. Used by @did-btcr2/method.",
6
6
  "main": "./dist/cjs/index.js",
@@ -56,10 +56,13 @@
56
56
  "btc"
57
57
  ],
58
58
  "dependencies": {
59
+ "@noble/curves": "^1.9.7",
60
+ "@noble/hashes": "^2.0.1",
61
+ "@noble/secp256k1": "^2.3.0",
59
62
  "bitcoinjs-lib": "7.0.0-rc.0",
60
63
  "tiny-secp256k1": "^2.2.3",
61
- "@did-btcr2/common": "2.2.0",
62
- "@did-btcr2/keypair": "0.7.0"
64
+ "@did-btcr2/common": "2.2.2",
65
+ "@did-btcr2/keypair": "0.7.1"
63
66
  },
64
67
  "devDependencies": {
65
68
  "@eslint/js": "^9.22.0",
@@ -1,4 +1,4 @@
1
- import { AddressInfo, AddressUtxo, RawTransactionRest, RestApiCallParams } from './index.js';
1
+ import { AddressInfo, AddressUtxo, RawTransactionRest, RestApiCallParams } from '../../types.js';
2
2
 
3
3
  /**
4
4
  * Implements a strongly-typed BitcoinRest to connect to remote bitcoin node via REST API for address-related operations.
@@ -1,6 +1,5 @@
1
1
  import { BitcoinRestError } from '../../errors.js';
2
- import { BlockResponse, BlockV3, GetBlockParams } from '../../types.js';
3
- import { RestApiCallParams } from './index.js';
2
+ import { RestApiCallParams, BlockResponse, BlockV3, GetBlockParams } from '../../types.js';
4
3
 
5
4
  /**
6
5
  * Implements a strongly-typed BitcoinRest to connect to remote bitcoin node via REST API for block-related operations.
@@ -1,98 +1,10 @@
1
- import { MethodError, UnixTimestamp } from '@did-btcr2/common';
2
- import { TxInPrevout } from '../../types.js';
1
+ import { MethodError } from '@did-btcr2/common';
2
+ import { DEFAULT_BITCOIN_NETWORK_CONFIG } from '../../constants.js';
3
3
  import { BitcoinAddress } from './address.js';
4
4
  import { BitcoinBlock } from './block.js';
5
5
  import { BitcoinTransaction } from './transaction.js';
6
- import { DEFAULT_BITCOIN_NETWORK_CONFIG } from '../../constants.js';
6
+ import { RestClientConfig, RestApiCallParams, RestResponse } from '../../types.js';
7
7
 
8
- export type TransactionStatus = {
9
- confirmed: boolean;
10
- block_height: number;
11
- block_hash: string;
12
- block_time: UnixTimestamp;
13
- };
14
-
15
- export interface Vin {
16
- txid: string;
17
- vout: number;
18
- prevout?: TxInPrevout;
19
- scriptsig: string;
20
- scriptsig_asm: string;
21
- witness: string[];
22
- is_coinbase: boolean;
23
- sequence: number;
24
- };
25
-
26
- export interface Vout {
27
- scriptpubkey: string;
28
- scriptpubkey_asm: string;
29
- scriptpubkey_type: string;
30
- scriptpubkey_address?: string;
31
- value: number;
32
- }
33
- export interface ChainStats {
34
- funded_txo_count: number;
35
- funded_txo_sum: number;
36
- spent_txo_count: number;
37
- spent_txo_sum: number;
38
- tx_count: number;
39
- }
40
-
41
- export interface MempoolStats {
42
- funded_txo_count: number;
43
- funded_txo_sum: number;
44
- spent_txo_count: number;
45
- spent_txo_sum: number;
46
- tx_count: number;
47
- }
48
- export interface AddressInfo {
49
- address: string;
50
- chain_stats: ChainStats;
51
- mempool_stats: MempoolStats;
52
- }
53
- export interface RawTransactionRest {
54
- txid: string;
55
- version: number;
56
- locktime: number;
57
- vin: Array<Vin>;
58
- vout: Array<Vout>;
59
- size: number;
60
- weight: number;
61
- fee: number;
62
- status: TransactionStatus;
63
- }
64
-
65
- export interface AddressUtxo {
66
- txid: string;
67
- vout: number;
68
- status: TransactionStatus;
69
- value: number;
70
- }
71
- export interface RestClientConfigParams {
72
- host: string;
73
- headers?: { [key: string]: string };
74
- }
75
-
76
- export class RestClientConfig {
77
- host: string;
78
- headers?: { [key: string]: string };
79
- constructor({ host, headers }: RestClientConfigParams) {
80
- this.host = host;
81
- this.headers = headers;
82
- }
83
- }
84
-
85
- export interface RestApiCallParams {
86
- path: string;
87
- url?: string;
88
- method?: string;
89
- body?: any;
90
- headers?: any;
91
- };
92
-
93
- export interface RestResponse extends Response {
94
- [key: string]: any;
95
- }
96
8
 
97
9
  /**
98
10
  * Implements a strongly-typed BitcoinRestClient to connect to remote bitcoin node via REST API.
@@ -1,5 +1,5 @@
1
1
  import { Bytes } from '@did-btcr2/common';
2
- import { RawTransactionRest, RestApiCallParams } from './index.js';
2
+ import { RawTransactionRest, RestApiCallParams } from '../../types.js';
3
3
 
4
4
  export class BitcoinTransaction {
5
5
  private api: (params: RestApiCallParams) => Promise<any>;
package/src/musig2.ts ADDED
@@ -0,0 +1,117 @@
1
+ import { Hex } from '@did-btcr2/common';
2
+ import { Secp256k1SecretKey } from '@did-btcr2/keypair';
3
+ import { schnorr } from '@noble/curves/secp256k1';
4
+ import { bytesToHex } from '@noble/hashes/utils.js';
5
+ import { CURVE, Point, ProjectivePoint } from '@noble/secp256k1';
6
+ import { payments, Psbt } from 'bitcoinjs-lib';
7
+ import { taggedHash } from 'bitcoinjs-lib/src/crypto';
8
+
9
+ interface MuSig2Session {
10
+ sessionId: string;
11
+ beaconAddress: string;
12
+ participants: Hex[];
13
+ publicNonces: Map<Hex, Hex>; // pubkey => nonce
14
+ aggregatedNonce?: Hex;
15
+ messageToSign?: Uint8Array;
16
+ partialSigs: Map<Hex, Hex>; // pubkey => sig
17
+ }
18
+
19
+ interface MuSig2NonceContribution {
20
+ sessionId: string;
21
+ beaconAddress: string;
22
+ noncePoints: Hex;
23
+ }
24
+
25
+ interface AggregatedMuSig2Nonce {
26
+ sessionId: string;
27
+ beaconAddress: string;
28
+ aggregatedNoncePoints: Hex;
29
+ }
30
+
31
+ interface BeaconSignalAuthorization {
32
+ sessionId: string;
33
+ beaconAddress: string;
34
+ txSig: Hex;
35
+ }
36
+
37
+ export class MuSig2Participant {
38
+ public secretKey: Uint8Array;
39
+ public publicKey: Uint8Array;
40
+ public nonce?: Uint8Array;
41
+ public noncePub?: Point;
42
+
43
+ constructor(secretKey?: Uint8Array) {
44
+ this.secretKey = secretKey ?? Secp256k1SecretKey.random();
45
+ this.publicKey = schnorr.getPublicKey(this.secretKey);
46
+ }
47
+
48
+ public generateNonce(): MuSig2NonceContribution {
49
+ this.nonce = Secp256k1SecretKey.random();
50
+ this.noncePub = ProjectivePoint.fromPrivateKey(this.nonce);
51
+
52
+ return {
53
+ sessionId : 'SESSION_ID',
54
+ beaconAddress : Buffer.from(this.publicKey).toString('hex'),
55
+ noncePoints : this.noncePub.toHex(true), // compressed
56
+ };
57
+ }
58
+
59
+ public sign(message: Uint8Array, aggregatedNonceHex: string): BeaconSignalAuthorization {
60
+ const R = ProjectivePoint.fromHex(aggregatedNonceHex);
61
+ const L = ProjectivePoint.fromHex(this.publicKey);
62
+
63
+ const e = taggedHash('BIP0340/challenge', new Uint8Array([
64
+ ...R.toRawBytes(true),
65
+ ...L.toRawBytes(true),
66
+ ...message,
67
+ ]));
68
+
69
+ const eNum = BigInt('0x' + bytesToHex(e));
70
+ const rNum = BigInt('0x' + bytesToHex(this.nonce!));
71
+ const xNum = BigInt('0x' + bytesToHex(this.secretKey));
72
+
73
+ const s = (rNum + eNum * xNum) % CURVE.n;
74
+
75
+ return {
76
+ sessionId : crypto.randomUUID(),
77
+ beaconAddress : payments.p2tr({ internalPubkey: this.publicKey }).address || '',
78
+ txSig : s.toString(16).padStart(64, '0'),
79
+ };
80
+ }
81
+ }
82
+
83
+ export class MuSig2Coordinator {
84
+ public sessions: Map<string, MuSig2Session> = new Map();
85
+
86
+ public receiveNonce(contrib: MuSig2NonceContribution) {
87
+ const session = this.sessions.get(contrib.sessionId);
88
+ session?.publicNonces.set(contrib.beaconAddress, contrib.noncePoints);
89
+ }
90
+
91
+ public aggregateNonces(sessionId: string): AggregatedMuSig2Nonce {
92
+ const session = this.sessions.get(sessionId);
93
+ if (!session) throw new Error('Session not found');
94
+
95
+ const points = Array.from(session.publicNonces.values()).map(nonceHex => ProjectivePoint.fromHex(nonceHex));
96
+ const aggregated = points.reduce((acc, pt) => acc.add(pt), ProjectivePoint.ZERO);
97
+ session.aggregatedNonce = aggregated.toHex();
98
+
99
+ return {
100
+ sessionId,
101
+ beaconAddress : session.beaconAddress,
102
+ aggregatedNoncePoints : session.aggregatedNonce,
103
+ };
104
+ }
105
+
106
+ public collectSignature(auth: BeaconSignalAuthorization) {
107
+ const session = this.sessions.get(auth.sessionId);
108
+ if (session) {
109
+ session.partialSigs.set(auth.beaconAddress, auth.txSig);
110
+ }
111
+ }
112
+
113
+ public finalizeTransaction(psbt: Psbt): string {
114
+ // Combine partial signatures (assuming MuSig2 multi-party logic handled externally)
115
+ return psbt.toHex();
116
+ }
117
+ }
package/src/types.ts CHANGED
@@ -1,4 +1,93 @@
1
- import { Hex } from '@did-btcr2/common';
1
+ import { Hex, UnixTimestamp } from '@did-btcr2/common';
2
+
3
+ export type TransactionStatus = {
4
+ confirmed: boolean;
5
+ block_height: number;
6
+ block_hash: string;
7
+ block_time: UnixTimestamp;
8
+ };
9
+
10
+ export interface Vin {
11
+ txid: string;
12
+ vout: number;
13
+ prevout?: TxInPrevout;
14
+ scriptsig: string;
15
+ scriptsig_asm: string;
16
+ witness: string[];
17
+ is_coinbase: boolean;
18
+ sequence: number;
19
+ };
20
+
21
+ export interface Vout {
22
+ scriptpubkey: string;
23
+ scriptpubkey_asm: string;
24
+ scriptpubkey_type: string;
25
+ scriptpubkey_address?: string;
26
+ value: number;
27
+ }
28
+ export interface ChainStats {
29
+ funded_txo_count: number;
30
+ funded_txo_sum: number;
31
+ spent_txo_count: number;
32
+ spent_txo_sum: number;
33
+ tx_count: number;
34
+ }
35
+
36
+ export interface MempoolStats {
37
+ funded_txo_count: number;
38
+ funded_txo_sum: number;
39
+ spent_txo_count: number;
40
+ spent_txo_sum: number;
41
+ tx_count: number;
42
+ }
43
+ export interface AddressInfo {
44
+ address: string;
45
+ chain_stats: ChainStats;
46
+ mempool_stats: MempoolStats;
47
+ }
48
+ export interface RawTransactionRest {
49
+ txid: string;
50
+ version: number;
51
+ locktime: number;
52
+ vin: Array<Vin>;
53
+ vout: Array<Vout>;
54
+ size: number;
55
+ weight: number;
56
+ fee: number;
57
+ status: TransactionStatus;
58
+ }
59
+
60
+ export interface AddressUtxo {
61
+ txid: string;
62
+ vout: number;
63
+ status: TransactionStatus;
64
+ value: number;
65
+ }
66
+ export interface RestClientConfigParams {
67
+ host: string;
68
+ headers?: { [key: string]: string };
69
+ }
70
+
71
+ export class RestClientConfig {
72
+ host: string;
73
+ headers?: { [key: string]: string };
74
+ constructor({ host, headers }: RestClientConfigParams) {
75
+ this.host = host;
76
+ this.headers = headers;
77
+ }
78
+ }
79
+
80
+ export interface RestApiCallParams {
81
+ path: string;
82
+ url?: string;
83
+ method?: string;
84
+ body?: any;
85
+ headers?: any;
86
+ };
87
+
88
+ export interface RestResponse extends Response {
89
+ [key: string]: any;
90
+ }
2
91
 
3
92
  export type BitcoinClientConfig = {
4
93
  rpc: {