@did-btcr2/bitcoin 0.2.0 → 0.3.0
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.
- package/dist/cjs/bitcoin.js +4 -4
- package/dist/cjs/taproot.js +3 -3
- package/dist/cjs/taproot.js.map +1 -1
- package/dist/esm/bitcoin.js +4 -4
- package/dist/esm/taproot.js +3 -3
- package/dist/esm/taproot.js.map +1 -1
- package/dist/types/bitcoin.d.ts +3 -3
- package/dist/types/types.d.ts +1 -1
- package/package.json +3 -3
- package/src/bitcoin.ts +4 -4
- package/src/taproot.ts +3 -3
- package/src/types.ts +1 -1
package/dist/cjs/bitcoin.js
CHANGED
|
@@ -10,7 +10,7 @@ import { DEFAULT_BITCOIN_NETWORK_CONFIG } from './constants.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export class BitcoinNetworkConnection {
|
|
12
12
|
network;
|
|
13
|
-
|
|
13
|
+
bitcoin;
|
|
14
14
|
testnet3;
|
|
15
15
|
testnet4;
|
|
16
16
|
signet;
|
|
@@ -34,7 +34,7 @@ export class BitcoinNetworkConnection {
|
|
|
34
34
|
// Parse the BITCOIN_NETWORK_CONFIG
|
|
35
35
|
const networkConfigs = JSON.parse(BITCOIN_NETWORK_CONFIG);
|
|
36
36
|
// Set a list of available networks
|
|
37
|
-
const networks = ['
|
|
37
|
+
const networks = ['bitcoin', 'testnet3', 'testnet4', 'signet', 'mutinynet', 'regtest'];
|
|
38
38
|
// Iterate over the networks and create the client connections
|
|
39
39
|
for (const network of networks) {
|
|
40
40
|
const networkConfig = (configs?.[network] ?? networkConfigs[network]);
|
|
@@ -60,7 +60,7 @@ export class BitcoinNetworkConnection {
|
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Get the Bitcoin network configuration for a specific network.
|
|
63
|
-
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., '
|
|
63
|
+
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
64
64
|
* @returns {Bitcoin} The Bitcoin object.
|
|
65
65
|
*/
|
|
66
66
|
getNetworkConnection(network) {
|
|
@@ -72,7 +72,7 @@ export class BitcoinNetworkConnection {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Sets the active Bitcoin network.
|
|
75
|
-
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., '
|
|
75
|
+
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
76
76
|
* @throws {MethodError} If no configuration is found for the specified network.
|
|
77
77
|
*/
|
|
78
78
|
setActiveNetwork(active) {
|
package/dist/cjs/taproot.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as tinysecp from 'tiny-secp256k1';
|
|
2
2
|
import { payments, script, opcodes } from 'bitcoinjs-lib';
|
|
3
|
-
import {
|
|
3
|
+
import { CompressedSecp256k1PublicKey } from '@did-btcr2/keypair';
|
|
4
4
|
/**
|
|
5
5
|
* Aggregate an array of public keys by point addition
|
|
6
6
|
*/
|
|
@@ -33,7 +33,7 @@ function buildTapLeafScript(pubkeys, k, locktime, sequence) {
|
|
|
33
33
|
}
|
|
34
34
|
// push each key as x-only pubkey
|
|
35
35
|
for (const pk of pubkeys) {
|
|
36
|
-
const [xOnly] =
|
|
36
|
+
const [xOnly] = new CompressedSecp256k1PublicKey(pk).xOnly;
|
|
37
37
|
ops.push(xOnly);
|
|
38
38
|
}
|
|
39
39
|
// push threshold k and total keys n
|
|
@@ -47,7 +47,7 @@ function buildTapLeafScript(pubkeys, k, locktime, sequence) {
|
|
|
47
47
|
*/
|
|
48
48
|
function buildMusigLeafScript(pubkeys) {
|
|
49
49
|
const agg = aggregatePubkeys(pubkeys);
|
|
50
|
-
const [xOnly] =
|
|
50
|
+
const [xOnly] = new CompressedSecp256k1PublicKey(agg).xOnly;
|
|
51
51
|
// In a taproot script path, OP_CHECKSIG runs schnorr
|
|
52
52
|
return script.compile([xOnly, opcodes.OP_CHECKSIG]);
|
|
53
53
|
}
|
package/dist/cjs/taproot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taproot.js","sourceRoot":"","sources":["../../src/taproot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"taproot.js","sourceRoot":"","sources":["../../src/taproot.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/bitcoin.js
CHANGED
|
@@ -10,7 +10,7 @@ import { DEFAULT_BITCOIN_NETWORK_CONFIG } from './constants.js';
|
|
|
10
10
|
*/
|
|
11
11
|
export class BitcoinNetworkConnection {
|
|
12
12
|
network;
|
|
13
|
-
|
|
13
|
+
bitcoin;
|
|
14
14
|
testnet3;
|
|
15
15
|
testnet4;
|
|
16
16
|
signet;
|
|
@@ -34,7 +34,7 @@ export class BitcoinNetworkConnection {
|
|
|
34
34
|
// Parse the BITCOIN_NETWORK_CONFIG
|
|
35
35
|
const networkConfigs = JSON.parse(BITCOIN_NETWORK_CONFIG);
|
|
36
36
|
// Set a list of available networks
|
|
37
|
-
const networks = ['
|
|
37
|
+
const networks = ['bitcoin', 'testnet3', 'testnet4', 'signet', 'mutinynet', 'regtest'];
|
|
38
38
|
// Iterate over the networks and create the client connections
|
|
39
39
|
for (const network of networks) {
|
|
40
40
|
const networkConfig = (configs?.[network] ?? networkConfigs[network]);
|
|
@@ -60,7 +60,7 @@ export class BitcoinNetworkConnection {
|
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Get the Bitcoin network configuration for a specific network.
|
|
63
|
-
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., '
|
|
63
|
+
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
64
64
|
* @returns {Bitcoin} The Bitcoin object.
|
|
65
65
|
*/
|
|
66
66
|
getNetworkConnection(network) {
|
|
@@ -72,7 +72,7 @@ export class BitcoinNetworkConnection {
|
|
|
72
72
|
}
|
|
73
73
|
/**
|
|
74
74
|
* Sets the active Bitcoin network.
|
|
75
|
-
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., '
|
|
75
|
+
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
76
76
|
* @throws {MethodError} If no configuration is found for the specified network.
|
|
77
77
|
*/
|
|
78
78
|
setActiveNetwork(active) {
|
package/dist/esm/taproot.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as tinysecp from 'tiny-secp256k1';
|
|
2
2
|
import { payments, script, opcodes } from 'bitcoinjs-lib';
|
|
3
|
-
import {
|
|
3
|
+
import { CompressedSecp256k1PublicKey } from '@did-btcr2/keypair';
|
|
4
4
|
/**
|
|
5
5
|
* Aggregate an array of public keys by point addition
|
|
6
6
|
*/
|
|
@@ -33,7 +33,7 @@ function buildTapLeafScript(pubkeys, k, locktime, sequence) {
|
|
|
33
33
|
}
|
|
34
34
|
// push each key as x-only pubkey
|
|
35
35
|
for (const pk of pubkeys) {
|
|
36
|
-
const [xOnly] =
|
|
36
|
+
const [xOnly] = new CompressedSecp256k1PublicKey(pk).xOnly;
|
|
37
37
|
ops.push(xOnly);
|
|
38
38
|
}
|
|
39
39
|
// push threshold k and total keys n
|
|
@@ -47,7 +47,7 @@ function buildTapLeafScript(pubkeys, k, locktime, sequence) {
|
|
|
47
47
|
*/
|
|
48
48
|
function buildMusigLeafScript(pubkeys) {
|
|
49
49
|
const agg = aggregatePubkeys(pubkeys);
|
|
50
|
-
const [xOnly] =
|
|
50
|
+
const [xOnly] = new CompressedSecp256k1PublicKey(agg).xOnly;
|
|
51
51
|
// In a taproot script path, OP_CHECKSIG runs schnorr
|
|
52
52
|
return script.compile([xOnly, opcodes.OP_CHECKSIG]);
|
|
53
53
|
}
|
package/dist/esm/taproot.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"taproot.js","sourceRoot":"","sources":["../../src/taproot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"taproot.js","sourceRoot":"","sources":["../../src/taproot.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAElE;;GAEG;AACH,SAAS,gBAAgB,CAAC,OAAqB;IAC7C,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC;IAC5C,OAAO,OAAO,CAAC,MAAM,CAAC,CAAC,GAAe,EAAE,EAAc,EAAE,EAAE;QACxD,MAAM,KAAK,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;QACzC,IAAI,CAAC,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACrD,OAAO,KAAK,CAAC;IACf,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AACjB,CAAC;AAED;;GAEG;AACH,SAAS,kBAAkB,CACzB,OAAqB,EACrB,CAAS,EACT,QAAiB,EACjB,QAAiB;IAEjB,MAAM,GAAG,GAA4B,EAAE,CAAC;IAExC,oBAAoB;IACpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IACD,oBAAoB;IACpB,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;QAC3B,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,sBAAsB,CAAC,CAAC;QACzC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,CAAC;IAED,iCAAiC;IACjC,KAAK,MAAM,EAAE,IAAI,OAAO,EAAE,CAAC;QACzB,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC;QAC3D,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAClB,CAAC;IACD,oCAAoC;IACpC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IAClC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;IAC/C,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IAEnC,OAAO,MAAM,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,SAAS,oBAAoB,CAAC,OAAqB;IACjD,MAAM,GAAG,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IACtC,MAAM,CAAC,KAAK,CAAC,GAAG,IAAI,4BAA4B,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;IAC5D,qDAAqD;IACrD,OAAO,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC;AACtD,CAAC;AAED;;GAEG;AACH,SAAS,eAAe,CAAC,KAAmB;IAC1C,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IACpD,MAAM,IAAI,GAAU,EAAE,CAAC;IACvB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;QACzC,IAAI,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,MAAM,EAAE,CAAC;YAC3B,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QAClC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC;gBACR,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE;gBACpB,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE;aACzB,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IACD,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC;AAC/B,CAAC;AAED;;GAEG;AACH,QAAQ,CAAC,CAAC,YAAY,CAAI,KAAU,EAAE,CAAS;IAC7C,MAAM,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC;IACvB,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC;QAAE,OAAO;IAC3B,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IACvD,OAAO,IAAI,EAAE,CAAC;QACZ,MAAM,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE,CAAC,CAAC;QAClC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACd,OAAO,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YAC1C,CAAC,EAAE,CAAC;QACN,CAAC;QACD,IAAI,CAAC,GAAG,CAAC;YAAE,MAAM;QACjB,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC;QACb,KAAK,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAClC,CAAC;IACH,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,OAAO,eAAe;IACV,MAAM,CAAe;IACrB,CAAC,CAAS;IACV,qBAAqB,CAAa;IAElD,YAAY,MAAoB,EAAE,CAAS;QACzC,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,GAAG,CAAC,mBAAmB,MAAM,CAAC,MAAM,OAAO,CAAC,CAAC;QAC/D,CAAC;QACD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;QACX,6CAA6C;QAC7C,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC,MAAM,CAAC,CAAC;IACxD,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,QAAiB,EAAE,QAAiB;QAC7C,MAAM,IAAI,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QACzE,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,cAAc,EAAG,IAAI,CAAC,qBAAqB;YAC3C,UAAU,EAAO,EAAE,MAAM,EAAE,IAAI,EAAE;SAClC,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAiB,EAAE,QAAiB;QAChD,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QACrE,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,cAAc,EAAG,IAAI,CAAC,qBAAqB;YAC3C,UAAU,EAAO,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,SAAS;QACP,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3C,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,cAAc,EAAG,IAAI,CAAC,qBAAqB;YAC3C,UAAU,EAAO,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,sBAAsB,CAAC,QAAiB,EAAE,QAAiB;QACzD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAC3E,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,IAAI,GAAG;YACX,MAAM,EAAO,MAAM;YACnB,UAAU,EAAG,eAAe,CAAC,WAAW,CAAC;SAC1C,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,cAAc,EAAG,IAAI,CAAC,qBAAqB;YAC3C,UAAU,EAAO,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,cAAc,CAAC,QAAiB,EAAE,QAAiB;QACjD,MAAM,MAAM,GAAG,kBAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;QAE3E,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC,CAAC;QAC1E,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,WAAW,GAAiB,EAAE,CAAC;QACrC,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;YACtD,WAAW,CAAC,IAAI,CAAC,oBAAoB,CAAC,KAAK,CAAC,CAAC,CAAC;QAChD,CAAC;QACD,MAAM,SAAS,GAAG,eAAe,CAAC,WAAW,CAAC,CAAC;QAE/C,MAAM,IAAI,GAAG;YACX,MAAM,EAAO,MAAM;YACnB,UAAU,EAAG,CAAC,SAAS,EAAE,SAAS,CAAC;SACpC,CAAC;QACF,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,cAAc,EAAG,IAAI,CAAC,qBAAqB;YAC3C,UAAU,EAAO,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;IAED;;OAEG;IACH,qBAAqB,CACnB,qBAA8B,EAC9B,oBAA6B;QAE7B,MAAM,MAAM,GAAiB,EAAE,CAAC;QAChC,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,GAAG,EAAE,EAAE,CAAC;YACvC,IAAI,GAAuB,CAAC;YAC5B,IAAI,GAAG,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC;gBACnB,GAAG,GAAG,SAAS,CAAC;YAClB,CAAC;iBAAM,IAAI,qBAAqB,IAAI,IAAI,EAAE,CAAC;gBACzC,GAAG,GAAG,qBAAqB,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAC/C,CAAC;iBAAM,IAAI,oBAAoB,IAAI,IAAI,EAAE,CAAC;gBACxC,GAAG,GAAG,oBAAoB,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC;YAC9C,CAAC;YACD,KAAK,MAAM,KAAK,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,CAAC;gBACnD,MAAM,CAAC,IAAI,CAAC,kBAAkB,CAAC,KAAK,EAAE,GAAG,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;QACH,CAAC;QACD,MAAM,IAAI,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QACrC,OAAO,QAAQ,CAAC,IAAI,CAAC;YACnB,cAAc,EAAG,IAAI,CAAC,qBAAqB;YAC3C,UAAU,EAAO,IAAI;SACtB,CAAC,CAAC;IACL,CAAC;CACF"}
|
package/dist/types/bitcoin.d.ts
CHANGED
|
@@ -19,7 +19,7 @@ export type BitcoinNetworkConfigMap = {
|
|
|
19
19
|
*/
|
|
20
20
|
export declare class BitcoinNetworkConnection {
|
|
21
21
|
network: BitcoinNetworkConfig;
|
|
22
|
-
|
|
22
|
+
bitcoin?: BitcoinNetworkConfig;
|
|
23
23
|
testnet3?: BitcoinNetworkConfig;
|
|
24
24
|
testnet4?: BitcoinNetworkConfig;
|
|
25
25
|
signet?: BitcoinNetworkConfig;
|
|
@@ -34,13 +34,13 @@ export declare class BitcoinNetworkConnection {
|
|
|
34
34
|
constructor(configs?: BitcoinNetworkConfigMap);
|
|
35
35
|
/**
|
|
36
36
|
* Get the Bitcoin network configuration for a specific network.
|
|
37
|
-
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., '
|
|
37
|
+
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
38
38
|
* @returns {Bitcoin} The Bitcoin object.
|
|
39
39
|
*/
|
|
40
40
|
getNetworkConnection(network: string): BitcoinNetworkConnection;
|
|
41
41
|
/**
|
|
42
42
|
* Sets the active Bitcoin network.
|
|
43
|
-
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., '
|
|
43
|
+
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
44
44
|
* @throws {MethodError} If no configuration is found for the specified network.
|
|
45
45
|
*/
|
|
46
46
|
setActiveNetwork(active: string): void;
|
package/dist/types/types.d.ts
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@did-btcr2/bitcoin",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
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",
|
|
@@ -58,8 +58,8 @@
|
|
|
58
58
|
"dependencies": {
|
|
59
59
|
"bitcoinjs-lib": "7.0.0-rc.0",
|
|
60
60
|
"tiny-secp256k1": "^2.2.3",
|
|
61
|
-
"@did-btcr2/
|
|
62
|
-
"@did-btcr2/
|
|
61
|
+
"@did-btcr2/common": "2.2.0",
|
|
62
|
+
"@did-btcr2/keypair": "0.6.0"
|
|
63
63
|
},
|
|
64
64
|
"devDependencies": {
|
|
65
65
|
"@eslint/js": "^9.22.0",
|
package/src/bitcoin.ts
CHANGED
|
@@ -25,7 +25,7 @@ export type BitcoinNetworkConfigMap = {
|
|
|
25
25
|
*/
|
|
26
26
|
export class BitcoinNetworkConnection {
|
|
27
27
|
public network: BitcoinNetworkConfig;
|
|
28
|
-
public
|
|
28
|
+
public bitcoin?: BitcoinNetworkConfig;
|
|
29
29
|
public testnet3?: BitcoinNetworkConfig;
|
|
30
30
|
public testnet4?: BitcoinNetworkConfig;
|
|
31
31
|
public signet?: BitcoinNetworkConfig;
|
|
@@ -62,7 +62,7 @@ export class BitcoinNetworkConnection {
|
|
|
62
62
|
const networkConfigs: Record<string, BitcoinClientConfig> = JSON.parse(BITCOIN_NETWORK_CONFIG);
|
|
63
63
|
|
|
64
64
|
// Set a list of available networks
|
|
65
|
-
const networks: (keyof AvailableNetworks)[] = ['
|
|
65
|
+
const networks: (keyof AvailableNetworks)[] = ['bitcoin', 'testnet3', 'testnet4', 'signet', 'mutinynet', 'regtest'];
|
|
66
66
|
|
|
67
67
|
// Iterate over the networks and create the client connections
|
|
68
68
|
for (const network of networks) {
|
|
@@ -97,7 +97,7 @@ export class BitcoinNetworkConnection {
|
|
|
97
97
|
|
|
98
98
|
/**
|
|
99
99
|
* Get the Bitcoin network configuration for a specific network.
|
|
100
|
-
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., '
|
|
100
|
+
* @param {keyof AvailableNetworks} network - The Bitcoin network (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
101
101
|
* @returns {Bitcoin} The Bitcoin object.
|
|
102
102
|
*/
|
|
103
103
|
public getNetworkConnection(network: string): BitcoinNetworkConnection {
|
|
@@ -113,7 +113,7 @@ export class BitcoinNetworkConnection {
|
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
115
|
* Sets the active Bitcoin network.
|
|
116
|
-
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., '
|
|
116
|
+
* @param {keyof AvailableNetworks} active - The Bitcoin network to set as active (e.g., 'bitcoin', 'testnet3', 'signet', 'regtest').
|
|
117
117
|
* @throws {MethodError} If no configuration is found for the specified network.
|
|
118
118
|
*/
|
|
119
119
|
public setActiveNetwork(active: string): void {
|
package/src/taproot.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as tinysecp from 'tiny-secp256k1';
|
|
2
2
|
import { payments, script, opcodes } from 'bitcoinjs-lib';
|
|
3
|
-
import {
|
|
3
|
+
import { CompressedSecp256k1PublicKey } from '@did-btcr2/keypair';
|
|
4
4
|
|
|
5
5
|
/**
|
|
6
6
|
* Aggregate an array of public keys by point addition
|
|
@@ -40,7 +40,7 @@ function buildTapLeafScript(
|
|
|
40
40
|
|
|
41
41
|
// push each key as x-only pubkey
|
|
42
42
|
for (const pk of pubkeys) {
|
|
43
|
-
const [xOnly] =
|
|
43
|
+
const [xOnly] = new CompressedSecp256k1PublicKey(pk).xOnly;
|
|
44
44
|
ops.push(xOnly);
|
|
45
45
|
}
|
|
46
46
|
// push threshold k and total keys n
|
|
@@ -56,7 +56,7 @@ function buildTapLeafScript(
|
|
|
56
56
|
*/
|
|
57
57
|
function buildMusigLeafScript(pubkeys: Uint8Array[]): Uint8Array {
|
|
58
58
|
const agg = aggregatePubkeys(pubkeys);
|
|
59
|
-
const [xOnly] =
|
|
59
|
+
const [xOnly] = new CompressedSecp256k1PublicKey(agg).xOnly;
|
|
60
60
|
// In a taproot script path, OP_CHECKSIG runs schnorr
|
|
61
61
|
return script.compile([xOnly, opcodes.OP_CHECKSIG]);
|
|
62
62
|
}
|