@did-btcr2/bitcoin 0.3.2 → 0.3.3
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/client/rpc/index.js +59 -21
- package/dist/cjs/client/rpc/index.js.map +1 -1
- package/dist/cjs/client/rpc/interface.js +6 -1
- package/dist/cjs/client/rpc/interface.js.map +1 -1
- package/dist/cjs/client/rpc/json-rpc.js +0 -1
- package/dist/cjs/client/rpc/json-rpc.js.map +1 -1
- package/dist/cjs/constants.js +4 -4
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/errors.js +3 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +0 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.js +0 -3
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/client/rpc/index.js +59 -21
- package/dist/esm/client/rpc/index.js.map +1 -1
- package/dist/esm/client/rpc/interface.js +6 -1
- package/dist/esm/client/rpc/interface.js.map +1 -1
- package/dist/esm/client/rpc/json-rpc.js +0 -1
- package/dist/esm/client/rpc/json-rpc.js.map +1 -1
- package/dist/esm/constants.js +4 -4
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/errors.js +3 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.js +0 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.js +0 -3
- package/dist/esm/types.js.map +1 -1
- package/dist/types/client/rpc/index.d.ts +22 -5
- package/dist/types/client/rpc/index.d.ts.map +1 -1
- package/dist/types/client/rpc/interface.d.ts +1 -0
- package/dist/types/client/rpc/interface.d.ts.map +1 -1
- package/dist/types/client/rpc/json-rpc.d.ts.map +1 -1
- package/dist/types/constants.d.ts +4 -4
- package/dist/types/errors.d.ts +3 -2
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +0 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +0 -1
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +2 -2
- package/src/client/rpc/index.ts +66 -26
- package/src/client/rpc/interface.ts +7 -0
- package/src/client/rpc/json-rpc.ts +0 -1
- package/src/constants.ts +4 -4
- package/src/errors.ts +4 -2
- package/src/index.ts +0 -1
- package/src/types.ts +0 -4
- package/dist/cjs/musig2.js +0 -74
- package/dist/cjs/musig2.js.map +0 -1
- package/dist/cjs/taproot.js +0 -219
- package/dist/cjs/taproot.js.map +0 -1
- package/dist/esm/musig2.js +0 -74
- package/dist/esm/musig2.js.map +0 -1
- package/dist/esm/taproot.js +0 -219
- package/dist/esm/taproot.js.map +0 -1
- package/dist/types/musig2.d.ts +0 -44
- package/dist/types/musig2.d.ts.map +0 -1
- package/dist/types/taproot.d.ts +0 -34
- package/dist/types/taproot.d.ts.map +0 -1
- package/src/musig2.ts +0 -117
- package/src/taproot.ts +0 -237
|
@@ -9,8 +9,24 @@ import { JsonRpcTransport } from './json-rpc.js';
|
|
|
9
9
|
* @implements {BitcoinRpcClient}
|
|
10
10
|
*/
|
|
11
11
|
export class BitcoinCoreRpcClient {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The singleton instance of the BitcoinCoreRpcClient.
|
|
14
|
+
* @type {BitcoinCoreRpcClient}
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
static #instance;
|
|
18
|
+
/**
|
|
19
|
+
* The JSON-RPC transport layer.
|
|
20
|
+
* @type {JsonRpcTransport}
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
#transport;
|
|
24
|
+
/**
|
|
25
|
+
* The configuration for the RPC client.
|
|
26
|
+
* @type {RpcClientConfig}
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
#config;
|
|
14
30
|
/**
|
|
15
31
|
* Constructs a new {@link BitcoinCoreRpcClient} instance from a new {@link RpcClient | RpcClient}.
|
|
16
32
|
* @param {RpcClientConfig} config The bitcoin-core client instance.
|
|
@@ -21,8 +37,8 @@ export class BitcoinCoreRpcClient {
|
|
|
21
37
|
* ```
|
|
22
38
|
*/
|
|
23
39
|
constructor(config) {
|
|
24
|
-
this
|
|
25
|
-
this
|
|
40
|
+
this.#config = new BitcoinRpcClientConfig(config);
|
|
41
|
+
this.#transport = new JsonRpcTransport(this.#config);
|
|
26
42
|
}
|
|
27
43
|
/**
|
|
28
44
|
* Get the config for the current BitcoinRpcClient object.
|
|
@@ -35,7 +51,7 @@ export class BitcoinCoreRpcClient {
|
|
|
35
51
|
* ```
|
|
36
52
|
*/
|
|
37
53
|
get config() {
|
|
38
|
-
const config = this
|
|
54
|
+
const config = this.#config;
|
|
39
55
|
return config;
|
|
40
56
|
}
|
|
41
57
|
/**
|
|
@@ -48,11 +64,11 @@ export class BitcoinCoreRpcClient {
|
|
|
48
64
|
* ```
|
|
49
65
|
*/
|
|
50
66
|
get client() {
|
|
51
|
-
const client = this
|
|
67
|
+
const client = this.#transport;
|
|
52
68
|
return client;
|
|
53
69
|
}
|
|
54
70
|
/**
|
|
55
|
-
* Static method initializes a
|
|
71
|
+
* Static method initializes a static instance of BitcoinCoreRpcClient with the given configuration.
|
|
56
72
|
* The RpcClient returned by this method does not have any named methods.
|
|
57
73
|
* Use this method to create and pass a new RpcClient instance to a BitcoinCoreRpcClient constructor.
|
|
58
74
|
*
|
|
@@ -70,7 +86,9 @@ export class BitcoinCoreRpcClient {
|
|
|
70
86
|
* ```
|
|
71
87
|
*/
|
|
72
88
|
static initialize(config) {
|
|
73
|
-
|
|
89
|
+
const cfg = new BitcoinRpcClientConfig(config);
|
|
90
|
+
BitcoinCoreRpcClient.#instance = new BitcoinCoreRpcClient(cfg);
|
|
91
|
+
return BitcoinCoreRpcClient.#instance;
|
|
74
92
|
}
|
|
75
93
|
/**
|
|
76
94
|
* Static method connects to a bitcoin node running the bitcoin core daemon (bitcoind).
|
|
@@ -105,9 +123,7 @@ export class BitcoinCoreRpcClient {
|
|
|
105
123
|
*/
|
|
106
124
|
async executeRpc(method, parameters = []) {
|
|
107
125
|
try {
|
|
108
|
-
// raw call
|
|
109
126
|
const raw = await this.client.command([{ method, parameters }]);
|
|
110
|
-
// normalization/unwrapping, if needed
|
|
111
127
|
const normalized = JSON.unprototyped(raw) ? JSON.normalize(raw) : raw;
|
|
112
128
|
const result = Array.isArray(normalized)
|
|
113
129
|
? normalized[normalized.length - 1]
|
|
@@ -118,6 +134,33 @@ export class BitcoinCoreRpcClient {
|
|
|
118
134
|
this.handleError(err, method, parameters);
|
|
119
135
|
}
|
|
120
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
*
|
|
139
|
+
* Map JSON-RPC error codes to HTTP status codes.
|
|
140
|
+
* @param {number | undefined} code The JSON-RPC error code.
|
|
141
|
+
* @returns {number} The corresponding HTTP status code.
|
|
142
|
+
*
|
|
143
|
+
* | Error type | HTTP code |
|
|
144
|
+
* | -------------------------------| --------------------|
|
|
145
|
+
* | Valid JSON-RPC failure | **400 / 404 / 422** |
|
|
146
|
+
* | JSON-RPC authentication issues | **401 / 403** |
|
|
147
|
+
* | Upstream bitcoind unreachable | **502** |
|
|
148
|
+
* | Upstream timeout | **504** |
|
|
149
|
+
* | Network transient errors | **503** |
|
|
150
|
+
* | Unknown unexpected errors | **500** |
|
|
151
|
+
*/
|
|
152
|
+
mapRpcCodeToHttp(code) {
|
|
153
|
+
switch (code) {
|
|
154
|
+
case -32700:
|
|
155
|
+
case -32600:
|
|
156
|
+
case -32602:
|
|
157
|
+
return 400;
|
|
158
|
+
case -32601:
|
|
159
|
+
return 404;
|
|
160
|
+
default:
|
|
161
|
+
return 422;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
121
164
|
/**
|
|
122
165
|
* Handle errors that occur while executing commands.
|
|
123
166
|
* @param methods An array of {@link BatchOption} objects.
|
|
@@ -126,15 +169,9 @@ export class BitcoinCoreRpcClient {
|
|
|
126
169
|
*/
|
|
127
170
|
handleError(err, method, params) {
|
|
128
171
|
if (this.isJsonRpcError(err)) {
|
|
129
|
-
|
|
130
|
-
throw new BitcoinRpcError(err.code, `RPC ${method} failed: ${err.message}`, { method, params });
|
|
131
|
-
}
|
|
132
|
-
if (err instanceof Error) {
|
|
133
|
-
// network, HTTP, or unexpected client error
|
|
134
|
-
throw new BitcoinRpcError('NETWORK_ERROR', `Network error in ${method}: ${err.message}`, { method, params, original: err });
|
|
172
|
+
throw new BitcoinRpcError(err.name.toUpperCase(), this.mapRpcCodeToHttp(err.code), `RPC ${method} failed: ${err.message}`, { method, params });
|
|
135
173
|
}
|
|
136
|
-
|
|
137
|
-
throw new BitcoinRpcError('UNKNOWN_ERROR', `Unknown failure in ${method}`, { method, params, err });
|
|
174
|
+
throw new BitcoinRpcError('UNKNOWN_ERROR', 500, `Unknown failure in ${method}`, { method, params, err });
|
|
138
175
|
}
|
|
139
176
|
/**
|
|
140
177
|
* Returns the block data associated with a `blockhash` of a valid block.
|
|
@@ -148,7 +185,7 @@ export class BitcoinCoreRpcClient {
|
|
|
148
185
|
async getBlock({ blockhash, height, verbosity }) {
|
|
149
186
|
// Check if blockhash or height is provided, if neither throw an error
|
|
150
187
|
if (!blockhash && height === undefined) {
|
|
151
|
-
throw new BitcoinRpcError('blockhash or height required',
|
|
188
|
+
throw new BitcoinRpcError('INVALID_PARAMS_GET_BLOCK', 400, 'blockhash or height required', { blockhash, height });
|
|
152
189
|
}
|
|
153
190
|
// If height is provided, get the blockhash
|
|
154
191
|
blockhash ??= await this.getBlockHash(height);
|
|
@@ -212,7 +249,6 @@ export class BitcoinCoreRpcClient {
|
|
|
212
249
|
* @returns {Promise<string>} A promise resolving to the transaction hash in hex.
|
|
213
250
|
*/
|
|
214
251
|
async sendRawTransaction(hexstring, maxfeerate, maxBurnAmount) {
|
|
215
|
-
console.log('sendRawTransaction', { hexstring, maxfeerate, maxBurnAmount });
|
|
216
252
|
return await this.executeRpc('sendrawtransaction', [hexstring, maxfeerate ?? 0.10, maxBurnAmount ?? 0.00]);
|
|
217
253
|
}
|
|
218
254
|
/**
|
|
@@ -237,7 +273,9 @@ export class BitcoinCoreRpcClient {
|
|
|
237
273
|
return sentRawTx;
|
|
238
274
|
}
|
|
239
275
|
/**
|
|
240
|
-
*
|
|
276
|
+
* Returns up to 'count' most recent transactions skipping the first 'from' transactions for account 'label'.
|
|
277
|
+
* @param {ListTransactionsParams} params The parameters for the listTransactions command.
|
|
278
|
+
* @returns {Promise<ListTransactionsResult>} A promise resolving to a {@link ListTransactionsResult} object.
|
|
241
279
|
*/
|
|
242
280
|
async listTransactions(params) {
|
|
243
281
|
return await this.executeRpc('listtransactions', [params]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAEL,sBAAsB,EAuBvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rpc/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/client/rpc/interface.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/client/rpc/interface.ts"],"names":[],"mappings":"AA2DA,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,OAAO,GAAG;QACR,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU;QACvC,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU;QACtC,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,CAAC;AAChD,CAAC"}
|
|
@@ -13,7 +13,6 @@ export class JsonRpcTransport {
|
|
|
13
13
|
const u = new URL(this.url);
|
|
14
14
|
if (u.username || u.password) {
|
|
15
15
|
this.authHeader = `Basic ${toBase64(`${decodeURIComponent(u.username)}:${decodeURIComponent(u.password)}`)}`;
|
|
16
|
-
// strip creds from URL if they were embedded
|
|
17
16
|
u.username = '';
|
|
18
17
|
u.password = '';
|
|
19
18
|
this.url = u.toString().replace(/\/+$/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/client/rpc/json-rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAAS;IACZ,UAAU,CAAU;IACpB,EAAE,GAAG,CAAC,CAAC;IAEf,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAErE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,SAAS,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,QAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7G,
|
|
1
|
+
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/client/rpc/json-rpc.ts"],"names":[],"mappings":"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"}
|
package/dist/cjs/constants.js
CHANGED
|
@@ -7,19 +7,19 @@ export const GENESIS_TX_ID = '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2
|
|
|
7
7
|
export const DEFAULT_BITCOIN_NETWORK_CONFIG = {
|
|
8
8
|
bitcoin: {
|
|
9
9
|
rpc: undefined,
|
|
10
|
-
rest: { host: 'https://mempool.
|
|
10
|
+
rest: { host: 'https://mempool.space/api' }
|
|
11
11
|
},
|
|
12
12
|
testnet3: {
|
|
13
13
|
rpc: undefined,
|
|
14
|
-
rest: { host: 'https://mempool.
|
|
14
|
+
rest: { host: 'https://mempool.space/testnet/api' }
|
|
15
15
|
},
|
|
16
16
|
testnet4: {
|
|
17
17
|
rpc: undefined,
|
|
18
|
-
rest: { host: 'https://mempool.
|
|
18
|
+
rest: { host: 'https://mempool.space/testnet4/api' }
|
|
19
19
|
},
|
|
20
20
|
signet: {
|
|
21
21
|
rpc: undefined,
|
|
22
|
-
rest: { host: 'https://mempool.
|
|
22
|
+
rest: { host: 'https://mempool.space/signet/api' }
|
|
23
23
|
},
|
|
24
24
|
mutinynet: {
|
|
25
25
|
rpc: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,kEAAkE,CAAC;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAChG,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAG;QACR,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,kEAAkE,CAAC;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAChG,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAG;QACR,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,2BAA2B,EAAE;KAC7C;IACD,QAAQ,EAAG;QACT,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,mCAAmC,EAAE;KACrD;IACD,QAAQ,EAAG;QACT,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,oCAAoC,EAAE;KACtD;IACD,MAAM,EAAI;QACR,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,kCAAkC,EAAE;KACpD;IACD,SAAS,EAAG;QACV,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,2BAA2B,EAAE;KAC7C;IACD,OAAO,EAAG;QACR,GAAG,EAAI;YACL,OAAO,EAAc,SAAS;YAC9B,IAAI,EAAiB,wBAAwB;YAC7C,IAAI,EAAiB,KAAK;YAC1B,QAAQ,EAAa,WAAW;YAChC,QAAQ,EAAa,WAAW;YAChC,kBAAkB,EAAG,IAAI;YACzB,OAAO,EAAc,QAAQ;SAC9B;QACD,IAAI,EAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE;KACzC;CACO,CAAC"}
|
package/dist/cjs/errors.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Custom Error class for handling Bitcoin RPC errors.
|
|
3
3
|
*/
|
|
4
4
|
export class BitcoinRpcError extends Error {
|
|
5
|
+
type;
|
|
5
6
|
code;
|
|
6
7
|
data;
|
|
7
|
-
constructor(code, message, data) {
|
|
8
|
+
constructor(type, code, message, data) {
|
|
8
9
|
super(message);
|
|
10
|
+
this.type = type;
|
|
9
11
|
this.code = code;
|
|
10
12
|
this.data = data;
|
|
11
13
|
this.name = 'BitcoinRpcError';
|
package/dist/cjs/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,IAAI,CAAO;IAC3B,YAAY,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,IAAU;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzB,IAAI,CAAO;IAC3B,YAAY,OAAe,EAAE,IAAU;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
package/dist/cjs/index.js
CHANGED
package/dist/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|
package/dist/cjs/types.js
CHANGED
package/dist/cjs/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
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;
|
|
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;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"}
|
|
@@ -9,8 +9,24 @@ import { JsonRpcTransport } from './json-rpc.js';
|
|
|
9
9
|
* @implements {BitcoinRpcClient}
|
|
10
10
|
*/
|
|
11
11
|
export class BitcoinCoreRpcClient {
|
|
12
|
-
|
|
13
|
-
|
|
12
|
+
/**
|
|
13
|
+
* The singleton instance of the BitcoinCoreRpcClient.
|
|
14
|
+
* @type {BitcoinCoreRpcClient}
|
|
15
|
+
* @private
|
|
16
|
+
*/
|
|
17
|
+
static #instance;
|
|
18
|
+
/**
|
|
19
|
+
* The JSON-RPC transport layer.
|
|
20
|
+
* @type {JsonRpcTransport}
|
|
21
|
+
* @private
|
|
22
|
+
*/
|
|
23
|
+
#transport;
|
|
24
|
+
/**
|
|
25
|
+
* The configuration for the RPC client.
|
|
26
|
+
* @type {RpcClientConfig}
|
|
27
|
+
* @private
|
|
28
|
+
*/
|
|
29
|
+
#config;
|
|
14
30
|
/**
|
|
15
31
|
* Constructs a new {@link BitcoinCoreRpcClient} instance from a new {@link RpcClient | RpcClient}.
|
|
16
32
|
* @param {RpcClientConfig} config The bitcoin-core client instance.
|
|
@@ -21,8 +37,8 @@ export class BitcoinCoreRpcClient {
|
|
|
21
37
|
* ```
|
|
22
38
|
*/
|
|
23
39
|
constructor(config) {
|
|
24
|
-
this
|
|
25
|
-
this
|
|
40
|
+
this.#config = new BitcoinRpcClientConfig(config);
|
|
41
|
+
this.#transport = new JsonRpcTransport(this.#config);
|
|
26
42
|
}
|
|
27
43
|
/**
|
|
28
44
|
* Get the config for the current BitcoinRpcClient object.
|
|
@@ -35,7 +51,7 @@ export class BitcoinCoreRpcClient {
|
|
|
35
51
|
* ```
|
|
36
52
|
*/
|
|
37
53
|
get config() {
|
|
38
|
-
const config = this
|
|
54
|
+
const config = this.#config;
|
|
39
55
|
return config;
|
|
40
56
|
}
|
|
41
57
|
/**
|
|
@@ -48,11 +64,11 @@ export class BitcoinCoreRpcClient {
|
|
|
48
64
|
* ```
|
|
49
65
|
*/
|
|
50
66
|
get client() {
|
|
51
|
-
const client = this
|
|
67
|
+
const client = this.#transport;
|
|
52
68
|
return client;
|
|
53
69
|
}
|
|
54
70
|
/**
|
|
55
|
-
* Static method initializes a
|
|
71
|
+
* Static method initializes a static instance of BitcoinCoreRpcClient with the given configuration.
|
|
56
72
|
* The RpcClient returned by this method does not have any named methods.
|
|
57
73
|
* Use this method to create and pass a new RpcClient instance to a BitcoinCoreRpcClient constructor.
|
|
58
74
|
*
|
|
@@ -70,7 +86,9 @@ export class BitcoinCoreRpcClient {
|
|
|
70
86
|
* ```
|
|
71
87
|
*/
|
|
72
88
|
static initialize(config) {
|
|
73
|
-
|
|
89
|
+
const cfg = new BitcoinRpcClientConfig(config);
|
|
90
|
+
BitcoinCoreRpcClient.#instance = new BitcoinCoreRpcClient(cfg);
|
|
91
|
+
return BitcoinCoreRpcClient.#instance;
|
|
74
92
|
}
|
|
75
93
|
/**
|
|
76
94
|
* Static method connects to a bitcoin node running the bitcoin core daemon (bitcoind).
|
|
@@ -105,9 +123,7 @@ export class BitcoinCoreRpcClient {
|
|
|
105
123
|
*/
|
|
106
124
|
async executeRpc(method, parameters = []) {
|
|
107
125
|
try {
|
|
108
|
-
// raw call
|
|
109
126
|
const raw = await this.client.command([{ method, parameters }]);
|
|
110
|
-
// normalization/unwrapping, if needed
|
|
111
127
|
const normalized = JSON.unprototyped(raw) ? JSON.normalize(raw) : raw;
|
|
112
128
|
const result = Array.isArray(normalized)
|
|
113
129
|
? normalized[normalized.length - 1]
|
|
@@ -118,6 +134,33 @@ export class BitcoinCoreRpcClient {
|
|
|
118
134
|
this.handleError(err, method, parameters);
|
|
119
135
|
}
|
|
120
136
|
}
|
|
137
|
+
/**
|
|
138
|
+
*
|
|
139
|
+
* Map JSON-RPC error codes to HTTP status codes.
|
|
140
|
+
* @param {number | undefined} code The JSON-RPC error code.
|
|
141
|
+
* @returns {number} The corresponding HTTP status code.
|
|
142
|
+
*
|
|
143
|
+
* | Error type | HTTP code |
|
|
144
|
+
* | -------------------------------| --------------------|
|
|
145
|
+
* | Valid JSON-RPC failure | **400 / 404 / 422** |
|
|
146
|
+
* | JSON-RPC authentication issues | **401 / 403** |
|
|
147
|
+
* | Upstream bitcoind unreachable | **502** |
|
|
148
|
+
* | Upstream timeout | **504** |
|
|
149
|
+
* | Network transient errors | **503** |
|
|
150
|
+
* | Unknown unexpected errors | **500** |
|
|
151
|
+
*/
|
|
152
|
+
mapRpcCodeToHttp(code) {
|
|
153
|
+
switch (code) {
|
|
154
|
+
case -32700:
|
|
155
|
+
case -32600:
|
|
156
|
+
case -32602:
|
|
157
|
+
return 400;
|
|
158
|
+
case -32601:
|
|
159
|
+
return 404;
|
|
160
|
+
default:
|
|
161
|
+
return 422;
|
|
162
|
+
}
|
|
163
|
+
}
|
|
121
164
|
/**
|
|
122
165
|
* Handle errors that occur while executing commands.
|
|
123
166
|
* @param methods An array of {@link BatchOption} objects.
|
|
@@ -126,15 +169,9 @@ export class BitcoinCoreRpcClient {
|
|
|
126
169
|
*/
|
|
127
170
|
handleError(err, method, params) {
|
|
128
171
|
if (this.isJsonRpcError(err)) {
|
|
129
|
-
|
|
130
|
-
throw new BitcoinRpcError(err.code, `RPC ${method} failed: ${err.message}`, { method, params });
|
|
131
|
-
}
|
|
132
|
-
if (err instanceof Error) {
|
|
133
|
-
// network, HTTP, or unexpected client error
|
|
134
|
-
throw new BitcoinRpcError('NETWORK_ERROR', `Network error in ${method}: ${err.message}`, { method, params, original: err });
|
|
172
|
+
throw new BitcoinRpcError(err.name.toUpperCase(), this.mapRpcCodeToHttp(err.code), `RPC ${method} failed: ${err.message}`, { method, params });
|
|
135
173
|
}
|
|
136
|
-
|
|
137
|
-
throw new BitcoinRpcError('UNKNOWN_ERROR', `Unknown failure in ${method}`, { method, params, err });
|
|
174
|
+
throw new BitcoinRpcError('UNKNOWN_ERROR', 500, `Unknown failure in ${method}`, { method, params, err });
|
|
138
175
|
}
|
|
139
176
|
/**
|
|
140
177
|
* Returns the block data associated with a `blockhash` of a valid block.
|
|
@@ -148,7 +185,7 @@ export class BitcoinCoreRpcClient {
|
|
|
148
185
|
async getBlock({ blockhash, height, verbosity }) {
|
|
149
186
|
// Check if blockhash or height is provided, if neither throw an error
|
|
150
187
|
if (!blockhash && height === undefined) {
|
|
151
|
-
throw new BitcoinRpcError('blockhash or height required',
|
|
188
|
+
throw new BitcoinRpcError('INVALID_PARAMS_GET_BLOCK', 400, 'blockhash or height required', { blockhash, height });
|
|
152
189
|
}
|
|
153
190
|
// If height is provided, get the blockhash
|
|
154
191
|
blockhash ??= await this.getBlockHash(height);
|
|
@@ -212,7 +249,6 @@ export class BitcoinCoreRpcClient {
|
|
|
212
249
|
* @returns {Promise<string>} A promise resolving to the transaction hash in hex.
|
|
213
250
|
*/
|
|
214
251
|
async sendRawTransaction(hexstring, maxfeerate, maxBurnAmount) {
|
|
215
|
-
console.log('sendRawTransaction', { hexstring, maxfeerate, maxBurnAmount });
|
|
216
252
|
return await this.executeRpc('sendrawtransaction', [hexstring, maxfeerate ?? 0.10, maxBurnAmount ?? 0.00]);
|
|
217
253
|
}
|
|
218
254
|
/**
|
|
@@ -237,7 +273,9 @@ export class BitcoinCoreRpcClient {
|
|
|
237
273
|
return sentRawTx;
|
|
238
274
|
}
|
|
239
275
|
/**
|
|
240
|
-
*
|
|
276
|
+
* Returns up to 'count' most recent transactions skipping the first 'from' transactions for account 'label'.
|
|
277
|
+
* @param {ListTransactionsParams} params The parameters for the listTransactions command.
|
|
278
|
+
* @returns {Promise<ListTransactionsResult>} A promise resolving to a {@link ListTransactionsResult} object.
|
|
241
279
|
*/
|
|
242
280
|
async listTransactions(params) {
|
|
243
281
|
return await this.executeRpc('listtransactions', [params]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAEL,sBAAsB,EAuBvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/client/rpc/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,8BAA8B,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAEL,sBAAsB,EAuBvB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD;;;;;GAKG;AACH,MAAM,OAAO,oBAAoB;IAC/B;;;;OAIG;IACH,MAAM,CAAC,SAAS,CAAuB;IAEvC;;;;OAIG;IACM,UAAU,CAAmB;IAEtC;;;;OAIG;IACM,OAAO,CAAkB;IAElC;;;;;;;;OAQG;IACH,YAAY,MAAuB;QACjC,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAClD,IAAI,CAAC,UAAU,GAAG,IAAI,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACvD,CAAC;IAED;;;;;;;;;OASG;IACH,IAAI,MAAM;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC;QAC5B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;OAQG;IACH,IAAI,MAAM;QACR,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC;QAC/B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;;;;;;;;;;;;;;;;OAiBG;IACI,MAAM,CAAC,UAAU,CAAC,MAAwB;QAC/C,MAAM,GAAG,GAAG,IAAI,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAC/C,oBAAoB,CAAC,SAAS,GAAG,IAAI,oBAAoB,CAAC,GAAG,CAAC,CAAC;QAC/D,OAAO,oBAAoB,CAAC,SAAS,CAAC;IACxC,CAAC;IAED;;;;;;;;;;;OAWG;IACI,MAAM,CAAC,OAAO,CAAC,MAAwB;QAC5C,OAAO,IAAI,oBAAoB,CAAC,MAAM,IAAI,8BAA8B,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IACxF,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,CAAU;QAC9B,OAAO,CACL,CAAC,YAAY,KAAK;YAClB,CAAC,CAAC,IAAI,KAAK,UAAU;YACrB,OAAQ,CAAS,CAAC,IAAI,KAAK,QAAQ,CACpC,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACK,KAAK,CAAC,UAAU,CAAI,MAA6B,EAAE,aAAyB,EAAE;QACpF,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,CAAkB,CAAC,CAAC;YACjF,MAAM,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;YACtE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,UAAU,CAAC;gBACtC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC;gBACnC,CAAC,CAAC,UAAU,CAAC;YACf,OAAO,MAAW,CAAC;QACrB,CAAC;QAAC,OAAO,GAAY,EAAE,CAAC;YACtB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;QAC5C,CAAC;IACH,CAAC;IAED;;;;;;;;;;;;;;OAcG;IACK,gBAAgB,CAAC,IAAa;QACpC,QAAQ,IAAI,EAAE,CAAC;YACb,KAAK,CAAC,KAAK,CAAC;YACZ,KAAK,CAAC,KAAK,CAAC;YACZ,KAAK,CAAC,KAAK;gBACT,OAAO,GAAG,CAAC;YAEb,KAAK,CAAC,KAAK;gBACT,OAAO,GAAG,CAAC;YAEb;gBACE,OAAO,GAAG,CAAC;QACf,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACK,WAAW,CAAC,GAAY,EAAE,MAAc,EAAE,MAAa;QAC7D,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC;YAC7B,MAAM,IAAI,eAAe,CACvB,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EACtB,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAC/B,OAAO,MAAM,YAAY,GAAG,CAAC,OAAO,EAAE,EACtC,EAAE,MAAM,EAAE,MAAM,EAAE,CACnB,CAAC;QACJ,CAAC;QAED,MAAM,IAAI,eAAe,CACvB,eAAe,EACf,GAAG,EACH,sBAAsB,MAAM,EAAE,EAC9B,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,CACxB,CAAC;IACJ,CAAC;IAED;;;;;;;;OAQG;IACI,KAAK,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAkB;QACpE,sEAAsE;QACtE,IAAG,CAAC,SAAS,IAAI,MAAM,KAAK,SAAS,EAAE,CAAC;YACtC,MAAM,IAAI,eAAe,CAAC,0BAA0B,EAAE,GAAG,EAAE,8BAA8B,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,CAAC;QACpH,CAAC;QAED,2CAA2C;QAC3C,SAAS,KAAK,MAAM,IAAI,CAAC,YAAY,CAAC,MAAO,CAAC,CAAC;QAC/C,IAAG,CAAC,SAAS,IAAI,OAAO,SAAS,KAAK,QAAQ,EAAE,CAAC;YAC/C,OAAO,SAAS,CAAC;QACnB,CAAC;QACD,qBAAqB;QACrB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,CAAC,SAAS,EAAE,SAAS,IAAI,CAAC,CAAC,CAAC,CAAC;QAE7E,qDAAqD;QACrD,QAAO,SAAS,EAAE,CAAC;YACjB,KAAK,CAAC;gBACJ,OAAO,KAAgB,CAAC;YAC1B,KAAK,CAAC;gBACJ,OAAO,KAAgB,CAAC;YAC1B,KAAK,CAAC;gBACJ,OAAO,KAAgB,CAAC;YAC1B,KAAK,CAAC;gBACJ,OAAO,KAAgB,CAAC;YAC1B;gBACE,OAAO,KAAgB,CAAC;QAC5B,CAAC;IACH,CAAC;IAED;;;OAGG;IACI,KAAK,CAAC,aAAa;QACxB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,CAAC,CAAC;IAChD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,YAAY,CAAC,MAAc;QACtC,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,cAAc,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IACzD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,iBAAiB;QAC5B,OAAO,IAAI,CAAC,UAAU,CAAC,mBAAmB,CAAC,CAAC;IAC9C,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,kBAAkB,CAAC,SAAiB;QAC/C,OAAO,MAAM,IAAI,CAAC,UAAU,CAAc,8BAA8B,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IACzF,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,kBAAkB,CAC7B,SAAiB,EACjB,UAA4B,EAC5B,aAA+B;QAE/B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAS,oBAAoB,EAAE,CAAC,SAAS,EAAE,UAAU,IAAI,IAAI,EAAE,aAAa,IAAI,IAAI,CAAC,CAAC,CAAC;IACrH,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,yBAAyB,CAAC,SAAiB;QACtD,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAE,CAAC;QAC9D,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;IACxD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,4BAA4B,CAAC,MAA2B,EAAE,OAA6B;QAClG,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/D,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;QACjE,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,gBAAgB,CAAC,MAA8B;QAC1D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7D,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,oBAAoB,CAAC,MAA2B,EAAE,OAA6B,EAAE,QAAiB,EAAE,UAAoB;QACnI,OAAO,MAAM,IAAI,CAAC,UAAU,CAAS,sBAAsB,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IACxG,CAAC;IAED;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACI,KAAK,CAAC,eAAe,CAAC,UAAkB,EAAE,KAAqB;QACpE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,iBAAiB,EAAE,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;OAOG;IACI,KAAK,CAAC,aAAa,CAAC,WAAmB,EAAE,KAAc;QAC5D,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,KAAK,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;OASG;IACI,KAAK,CAAC,WAAW,CAAC,MAKxB;QACC,MAAM,IAAI,GAAG,EAAE,OAAO,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,IAAI,EAAE,GAAG,MAAM,EAAE,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC;IACtD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,MAAc;QACxD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAS,eAAe,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,CAAC;QAC/E,OAAO,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAqB,CAAC;IAChE,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,WAAW,CAAC,OAAe,EAAE,OAAe;QACvD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,aAAa,CAAC,OAAe,EAAE,SAAiB,EAAE,OAAe;QAC5E,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,eAAe,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC,CAAC;IAC/E,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,cAAc,CAAC,IAAY,EAAE,iBAA2B;QACnE,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;;;;;;;;OAUG;IACI,KAAK,CAAC,iBAAiB,CAAC,IAAY,EAAE,SAA0B,EAAE,SAAkB;QACzF,0BAA0B;QAC1B,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,mBAAmB,EAAE,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;QACrG,gDAAgD;QAChD,QAAO,SAAS,EAAE,CAAC;YACjB,KAAK,CAAC;gBACJ,OAAO,cAAkC,CAAC;YAC5C,KAAK,CAAC;gBACJ,OAAO,cAAkC,CAAC;YAC5C,KAAK,CAAC;gBACJ,OAAO,cAAkC,CAAC;YAC5C;gBACE,OAAO,cAAkC,CAAC;QAC9C,CAAC;IACH,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,kBAAkB,CAAC,KAAe,EAAE,SAA0B;QACzE,OAAO,MAAM,OAAO,CAAC,GAAG,CACtB,KAAK,CAAC,GAAG,CACP,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,SAAS,IAAI,CAAC,CAAC,CACnE,CACF,CAAC;IACJ,CAAC;CAEF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/client/rpc/interface.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"interface.js","sourceRoot":"","sources":["../../../../src/client/rpc/interface.ts"],"names":[],"mappings":"AA2DA,MAAM,UAAU,kBAAkB,CAAC,GAAQ;IACzC,OAAO,GAAG;QACR,OAAO,GAAG,CAAC,aAAa,KAAK,UAAU;QACvC,OAAO,GAAG,CAAC,YAAY,KAAK,UAAU;QACtC,OAAO,GAAG,CAAC,iBAAiB,KAAK,UAAU,CAAC;AAChD,CAAC"}
|
|
@@ -13,7 +13,6 @@ export class JsonRpcTransport {
|
|
|
13
13
|
const u = new URL(this.url);
|
|
14
14
|
if (u.username || u.password) {
|
|
15
15
|
this.authHeader = `Basic ${toBase64(`${decodeURIComponent(u.username)}:${decodeURIComponent(u.password)}`)}`;
|
|
16
|
-
// strip creds from URL if they were embedded
|
|
17
16
|
u.username = '';
|
|
18
17
|
u.password = '';
|
|
19
18
|
this.url = u.toString().replace(/\/+$/, '');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/client/rpc/json-rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAEjD,MAAM,OAAO,gBAAgB;IACnB,GAAG,CAAS;IACZ,UAAU,CAAU;IACpB,EAAE,GAAG,CAAC,CAAC;IAEf,YAAY,GAAoB;QAC9B,IAAI,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,IAAI,IAAI,uBAAuB,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;QAErE,IAAI,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC;YACjC,IAAI,CAAC,UAAU,GAAG,SAAS,QAAQ,CAAC,GAAG,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,QAAQ,EAAE,CAAC,EAAE,CAAC;QAC3E,CAAC;aAAM,CAAC;YACN,IAAI,CAAC;gBACH,MAAM,CAAC,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;gBAC5B,IAAI,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC7B,IAAI,CAAC,UAAU,GAAG,SAAS,QAAQ,CAAC,GAAG,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,kBAAkB,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;oBAC7G,
|
|
1
|
+
{"version":3,"file":"json-rpc.js","sourceRoot":"","sources":["../../../../src/client/rpc/json-rpc.ts"],"names":[],"mappings":"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"}
|
package/dist/esm/constants.js
CHANGED
|
@@ -7,19 +7,19 @@ export const GENESIS_TX_ID = '4a5e1e4baab89f3a32518a88c31bc87f618f76673e2cc77ab2
|
|
|
7
7
|
export const DEFAULT_BITCOIN_NETWORK_CONFIG = {
|
|
8
8
|
bitcoin: {
|
|
9
9
|
rpc: undefined,
|
|
10
|
-
rest: { host: 'https://mempool.
|
|
10
|
+
rest: { host: 'https://mempool.space/api' }
|
|
11
11
|
},
|
|
12
12
|
testnet3: {
|
|
13
13
|
rpc: undefined,
|
|
14
|
-
rest: { host: 'https://mempool.
|
|
14
|
+
rest: { host: 'https://mempool.space/testnet/api' }
|
|
15
15
|
},
|
|
16
16
|
testnet4: {
|
|
17
17
|
rpc: undefined,
|
|
18
|
-
rest: { host: 'https://mempool.
|
|
18
|
+
rest: { host: 'https://mempool.space/testnet4/api' }
|
|
19
19
|
},
|
|
20
20
|
signet: {
|
|
21
21
|
rpc: undefined,
|
|
22
|
-
rest: { host: 'https://mempool.
|
|
22
|
+
rest: { host: 'https://mempool.space/signet/api' }
|
|
23
23
|
},
|
|
24
24
|
mutinynet: {
|
|
25
25
|
rpc: undefined,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,kEAAkE,CAAC;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAChG,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAG;QACR,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,oBAAoB,GAAG,EAAE,CAAC;AACvC,MAAM,CAAC,MAAM,gBAAgB,GAAG,GAAG,CAAC;AACpC,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAC;AAC3C,MAAM,CAAC,MAAM,2BAA2B,GAAG,CAAC,CAAC;AAC7C,MAAM,CAAC,MAAM,qBAAqB,GAAG,kEAAkE,CAAC;AACxG,MAAM,CAAC,MAAM,aAAa,GAAG,kEAAkE,CAAC;AAChG,MAAM,CAAC,MAAM,8BAA8B,GAAG;IAC5C,OAAO,EAAG;QACR,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,2BAA2B,EAAE;KAC7C;IACD,QAAQ,EAAG;QACT,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,mCAAmC,EAAE;KACrD;IACD,QAAQ,EAAG;QACT,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,oCAAoC,EAAE;KACtD;IACD,MAAM,EAAI;QACR,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,kCAAkC,EAAE;KACpD;IACD,SAAS,EAAG;QACV,GAAG,EAAI,SAAS;QAChB,IAAI,EAAG,EAAE,IAAI,EAAE,2BAA2B,EAAE;KAC7C;IACD,OAAO,EAAG;QACR,GAAG,EAAI;YACL,OAAO,EAAc,SAAS;YAC9B,IAAI,EAAiB,wBAAwB;YAC7C,IAAI,EAAiB,KAAK;YAC1B,QAAQ,EAAa,WAAW;YAChC,QAAQ,EAAa,WAAW;YAChC,kBAAkB,EAAG,IAAI;YACzB,OAAO,EAAc,QAAQ;SAC9B;QACD,IAAI,EAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE;KACzC;CACO,CAAC"}
|
package/dist/esm/errors.js
CHANGED
|
@@ -2,10 +2,12 @@
|
|
|
2
2
|
* Custom Error class for handling Bitcoin RPC errors.
|
|
3
3
|
*/
|
|
4
4
|
export class BitcoinRpcError extends Error {
|
|
5
|
+
type;
|
|
5
6
|
code;
|
|
6
7
|
data;
|
|
7
|
-
constructor(code, message, data) {
|
|
8
|
+
constructor(type, code, message, data) {
|
|
8
9
|
super(message);
|
|
10
|
+
this.type = type;
|
|
9
11
|
this.code = code;
|
|
10
12
|
this.data = data;
|
|
11
13
|
this.name = 'BitcoinRpcError';
|
package/dist/esm/errors.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,OAAO,eAAgB,SAAQ,KAAK;IACxB,IAAI,CAAS;IACb,IAAI,CAAS;IACb,IAAI,CAAO;IAC3B,YAAY,IAAY,EAAE,IAAY,EAAE,OAAe,EAAE,IAAU;QACjE,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,KAAK;IACzB,IAAI,CAAO;IAC3B,YAAY,OAAe,EAAE,IAAU;QACrC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;CACF"}
|
package/dist/esm/index.js
CHANGED
package/dist/esm/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,cAAc,0BAA0B,CAAC;AACzC,cAAc,wBAAwB,CAAC;AACvC,cAAc,wBAAwB,CAAC;AACvC,cAAc,8BAA8B,CAAC;AAC7C,cAAc,uBAAuB,CAAC;AACtC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,mBAAmB,CAAC;AAClC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC"}
|