@did-btcr2/bitcoin 0.3.4 → 0.4.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 +83 -84
- package/dist/cjs/bitcoin.js.map +1 -1
- package/dist/cjs/client/http.js +9 -0
- package/dist/cjs/client/http.js.map +1 -0
- package/dist/cjs/client/rest/address.js +20 -28
- package/dist/cjs/client/rest/address.js.map +1 -1
- package/dist/cjs/client/rest/block.js +23 -22
- package/dist/cjs/client/rest/block.js.map +1 -1
- package/dist/cjs/client/rest/index.js +31 -84
- package/dist/cjs/client/rest/index.js.map +1 -1
- package/dist/cjs/client/rest/protocol.js +129 -0
- package/dist/cjs/client/rest/protocol.js.map +1 -0
- package/dist/cjs/client/rest/transaction.js +19 -21
- package/dist/cjs/client/rest/transaction.js.map +1 -1
- package/dist/cjs/client/rpc/index.js +75 -337
- package/dist/cjs/client/rpc/index.js.map +1 -1
- package/dist/cjs/client/rpc/interface.js +1 -6
- package/dist/cjs/client/rpc/interface.js.map +1 -1
- package/dist/cjs/client/rpc/json-rpc.js +40 -63
- package/dist/cjs/client/rpc/json-rpc.js.map +1 -1
- package/dist/cjs/client/rpc/protocol.js +134 -0
- package/dist/cjs/client/rpc/protocol.js.map +1 -0
- package/dist/cjs/constants.js +16 -5
- package/dist/cjs/constants.js.map +1 -1
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +21 -13
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/types.js +5 -55
- package/dist/cjs/types.js.map +1 -1
- package/dist/esm/bitcoin.js +83 -84
- package/dist/esm/bitcoin.js.map +1 -1
- package/dist/esm/client/http.js +9 -0
- package/dist/esm/client/http.js.map +1 -0
- package/dist/esm/client/rest/address.js +20 -28
- package/dist/esm/client/rest/address.js.map +1 -1
- package/dist/esm/client/rest/block.js +23 -22
- package/dist/esm/client/rest/block.js.map +1 -1
- package/dist/esm/client/rest/index.js +31 -84
- package/dist/esm/client/rest/index.js.map +1 -1
- package/dist/esm/client/rest/protocol.js +129 -0
- package/dist/esm/client/rest/protocol.js.map +1 -0
- package/dist/esm/client/rest/transaction.js +19 -21
- package/dist/esm/client/rest/transaction.js.map +1 -1
- package/dist/esm/client/rpc/index.js +75 -337
- package/dist/esm/client/rpc/index.js.map +1 -1
- package/dist/esm/client/rpc/interface.js +1 -6
- package/dist/esm/client/rpc/interface.js.map +1 -1
- package/dist/esm/client/rpc/json-rpc.js +40 -63
- package/dist/esm/client/rpc/json-rpc.js.map +1 -1
- package/dist/esm/client/rpc/protocol.js +134 -0
- package/dist/esm/client/rpc/protocol.js.map +1 -0
- package/dist/esm/constants.js +16 -5
- package/dist/esm/constants.js.map +1 -1
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.js +21 -13
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/types.js +5 -55
- package/dist/esm/types.js.map +1 -1
- package/dist/types/bitcoin.d.ts +66 -45
- package/dist/types/bitcoin.d.ts.map +1 -1
- package/dist/types/client/http.d.ts +21 -0
- package/dist/types/client/http.d.ts.map +1 -0
- package/dist/types/client/rest/address.d.ts +16 -19
- package/dist/types/client/rest/address.d.ts.map +1 -1
- package/dist/types/client/rest/block.d.ts +24 -16
- package/dist/types/client/rest/block.d.ts.map +1 -1
- package/dist/types/client/rest/index.d.ts +20 -51
- package/dist/types/client/rest/index.d.ts.map +1 -1
- package/dist/types/client/rest/protocol.d.ts +58 -0
- package/dist/types/client/rest/protocol.d.ts.map +1 -0
- package/dist/types/client/rest/transaction.d.ts +16 -17
- package/dist/types/client/rest/transaction.d.ts.map +1 -1
- package/dist/types/client/rpc/index.d.ts +105 -253
- package/dist/types/client/rpc/index.d.ts.map +1 -1
- package/dist/types/client/rpc/interface.d.ts +1 -4
- package/dist/types/client/rpc/interface.d.ts.map +1 -1
- package/dist/types/client/rpc/json-rpc.d.ts +20 -18
- package/dist/types/client/rpc/json-rpc.d.ts.map +1 -1
- package/dist/types/client/rpc/protocol.d.ts +82 -0
- package/dist/types/client/rpc/protocol.d.ts.map +1 -0
- package/dist/types/constants.d.ts +16 -5
- package/dist/types/constants.d.ts.map +1 -1
- package/dist/types/errors.d.ts +4 -3
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +20 -13
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +98 -696
- package/dist/types/types.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/bitcoin.ts +105 -118
- package/src/client/http.ts +28 -0
- package/src/client/rest/address.ts +24 -30
- package/src/client/rest/block.ts +29 -26
- package/src/client/rest/index.ts +38 -94
- package/src/client/rest/protocol.ts +153 -0
- package/src/client/rest/transaction.ts +23 -23
- package/src/client/rpc/index.ts +140 -379
- package/src/client/rpc/interface.ts +42 -51
- package/src/client/rpc/json-rpc.ts +53 -60
- package/src/client/rpc/protocol.ts +160 -0
- package/src/constants.ts +17 -5
- package/src/errors.ts +10 -3
- package/src/index.ts +81 -13
- package/src/types.ts +332 -972
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
import { StringUtils } from '@did-btcr2/common';
|
|
2
|
+
const HEX64_RE = /^[0-9a-f]{64}$/i;
|
|
3
|
+
/**
|
|
4
|
+
* Sans-I/O Esplora REST API protocol.
|
|
5
|
+
*
|
|
6
|
+
* Every method returns an {@link HttpRequest} descriptor — a plain object
|
|
7
|
+
* describing *what* to request — without performing any I/O. The caller
|
|
8
|
+
* is responsible for executing the request with an HTTP client of their
|
|
9
|
+
* choice and deserializing the response.
|
|
10
|
+
*
|
|
11
|
+
* This mirrors the pattern used by the Rust `esploda` crate where
|
|
12
|
+
* `Esplora` methods return `http::Request<()>` objects.
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* ```ts
|
|
16
|
+
* const protocol = new EsploraProtocol({ host: 'https://mempool.space/api' });
|
|
17
|
+
*
|
|
18
|
+
* // Build a request descriptor (no I/O)
|
|
19
|
+
* const req = protocol.getTx('abc123...');
|
|
20
|
+
*
|
|
21
|
+
* // Execute with any HTTP client
|
|
22
|
+
* const res = await fetch(req.url, req);
|
|
23
|
+
* const tx: RawTransactionRest = await res.json();
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
export class EsploraProtocol {
|
|
27
|
+
baseUrl;
|
|
28
|
+
defaultHeaders;
|
|
29
|
+
constructor(config) {
|
|
30
|
+
this.baseUrl = StringUtils.replaceEnd(config.host, '/');
|
|
31
|
+
this.defaultHeaders = {
|
|
32
|
+
'Content-Type': 'application/json',
|
|
33
|
+
...config.headers,
|
|
34
|
+
};
|
|
35
|
+
}
|
|
36
|
+
// ── validation ─────────────────────────────────────────────────────
|
|
37
|
+
static assertHex64(value, label) {
|
|
38
|
+
if (!HEX64_RE.test(value)) {
|
|
39
|
+
throw new Error(`Invalid ${label}: expected 64-char hex string`);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
static assertAddress(value) {
|
|
43
|
+
if (!value || /[/\\.?#]/.test(value)) {
|
|
44
|
+
throw new Error('Invalid address: contains illegal characters');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// ── helpers ──────────────────────────────────────────────────────────
|
|
48
|
+
get(path) {
|
|
49
|
+
return {
|
|
50
|
+
url: `${this.baseUrl}${path}`,
|
|
51
|
+
method: 'GET',
|
|
52
|
+
headers: { ...this.defaultHeaders },
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
post(path, body, headers) {
|
|
56
|
+
return {
|
|
57
|
+
url: `${this.baseUrl}${path}`,
|
|
58
|
+
method: 'POST',
|
|
59
|
+
headers: headers ?? { ...this.defaultHeaders },
|
|
60
|
+
body,
|
|
61
|
+
};
|
|
62
|
+
}
|
|
63
|
+
// ── Transaction ──────────────────────────────────────────────────────
|
|
64
|
+
/** GET /tx/:txid */
|
|
65
|
+
getTx(txid) {
|
|
66
|
+
EsploraProtocol.assertHex64(txid, 'txid');
|
|
67
|
+
return this.get(`/tx/${txid}`);
|
|
68
|
+
}
|
|
69
|
+
/** GET /tx/:txid/hex */
|
|
70
|
+
getTxHex(txid) {
|
|
71
|
+
EsploraProtocol.assertHex64(txid, 'txid');
|
|
72
|
+
return this.get(`/tx/${txid}/hex`);
|
|
73
|
+
}
|
|
74
|
+
/** GET /tx/:txid/raw */
|
|
75
|
+
getTxRaw(txid) {
|
|
76
|
+
EsploraProtocol.assertHex64(txid, 'txid');
|
|
77
|
+
return this.get(`/tx/${txid}/raw`);
|
|
78
|
+
}
|
|
79
|
+
/** POST /tx */
|
|
80
|
+
postTx(hex) {
|
|
81
|
+
return this.post('/tx', hex, { 'Content-Type': 'text/plain' });
|
|
82
|
+
}
|
|
83
|
+
// ── Block ────────────────────────────────────────────────────────────
|
|
84
|
+
/** GET /blocks/tip/height */
|
|
85
|
+
getBlockTipHeight() {
|
|
86
|
+
return this.get('/blocks/tip/height');
|
|
87
|
+
}
|
|
88
|
+
/** GET /block/:blockhash */
|
|
89
|
+
getBlock(blockhash) {
|
|
90
|
+
EsploraProtocol.assertHex64(blockhash, 'blockhash');
|
|
91
|
+
return this.get(`/block/${blockhash}`);
|
|
92
|
+
}
|
|
93
|
+
/** GET /block-height/:height */
|
|
94
|
+
getBlockHeight(height) {
|
|
95
|
+
return this.get(`/block-height/${height}`);
|
|
96
|
+
}
|
|
97
|
+
// ── Address ──────────────────────────────────────────────────────────
|
|
98
|
+
/** GET /address/:address/txs */
|
|
99
|
+
getAddressTxs(address) {
|
|
100
|
+
EsploraProtocol.assertAddress(address);
|
|
101
|
+
return this.get(`/address/${address}/txs`);
|
|
102
|
+
}
|
|
103
|
+
/** GET /address/:address/txs/mempool */
|
|
104
|
+
getAddressTxsMempool(address) {
|
|
105
|
+
EsploraProtocol.assertAddress(address);
|
|
106
|
+
return this.get(`/address/${address}/txs/mempool`);
|
|
107
|
+
}
|
|
108
|
+
/** GET /address/:address/txs/chain[/:last_seen_txid] */
|
|
109
|
+
getAddressTxsChain(address, lastSeenTxId) {
|
|
110
|
+
EsploraProtocol.assertAddress(address);
|
|
111
|
+
if (lastSeenTxId)
|
|
112
|
+
EsploraProtocol.assertHex64(lastSeenTxId, 'lastSeenTxId');
|
|
113
|
+
const path = lastSeenTxId
|
|
114
|
+
? `/address/${address}/txs/chain/${lastSeenTxId}`
|
|
115
|
+
: `/address/${address}/txs/chain`;
|
|
116
|
+
return this.get(path);
|
|
117
|
+
}
|
|
118
|
+
/** GET /address/:address */
|
|
119
|
+
getAddressInfo(address) {
|
|
120
|
+
EsploraProtocol.assertAddress(address);
|
|
121
|
+
return this.get(`/address/${address}`);
|
|
122
|
+
}
|
|
123
|
+
/** GET /address/:address/utxo */
|
|
124
|
+
getAddressUtxos(address) {
|
|
125
|
+
EsploraProtocol.assertAddress(address);
|
|
126
|
+
return this.get(`/address/${address}/utxo`);
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
//# sourceMappingURL=protocol.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../../../src/client/rest/protocol.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,56 +1,54 @@
|
|
|
1
1
|
export class BitcoinTransaction {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
2
|
+
protocol;
|
|
3
|
+
exec;
|
|
4
|
+
constructor(protocol, exec) {
|
|
5
|
+
this.protocol = protocol;
|
|
6
|
+
this.exec = exec;
|
|
5
7
|
}
|
|
6
8
|
/**
|
|
7
9
|
* Returns the transaction in JSON format.
|
|
8
10
|
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxid | Esplora GET /tx/:txid } for details.
|
|
9
11
|
* @param {string} txid The transaction id (required).
|
|
10
|
-
* @returns {
|
|
12
|
+
* @returns {Promise<RawTransactionRest>} A promise resolving to data about a transaction.
|
|
11
13
|
*/
|
|
12
14
|
async get(txid) {
|
|
13
|
-
return await this.
|
|
15
|
+
return await this.exec(this.protocol.getTx(txid));
|
|
14
16
|
}
|
|
15
17
|
/**
|
|
16
|
-
*
|
|
17
|
-
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxid | Esplora GET /tx/:txid } for details.
|
|
18
|
+
* Checks if a transaction is confirmed.
|
|
18
19
|
* @param {string} txid The transaction id (required).
|
|
19
|
-
* @returns {
|
|
20
|
+
* @returns {Promise<boolean>} True if the transaction is confirmed.
|
|
20
21
|
*/
|
|
21
22
|
async isConfirmed(txid) {
|
|
22
23
|
const tx = await this.get(txid);
|
|
23
24
|
return tx.status.confirmed;
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
|
-
* Returns the raw transaction
|
|
27
|
-
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxidhex | Esplora GET /tx/:txid/hex }
|
|
28
|
-
* {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxidraw | Esplora GET /tx/:txid/raw } for details.
|
|
27
|
+
* Returns the raw transaction as a hex string.
|
|
28
|
+
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxidhex | Esplora GET /tx/:txid/hex } for details.
|
|
29
29
|
* @param {string} txid The transaction id (required).
|
|
30
|
-
* @returns {Promise<
|
|
30
|
+
* @returns {Promise<string>} A promise resolving to the raw transaction hex.
|
|
31
31
|
*/
|
|
32
32
|
async getHex(txid) {
|
|
33
|
-
return await this.
|
|
33
|
+
return await this.exec(this.protocol.getTxHex(txid));
|
|
34
34
|
}
|
|
35
35
|
/**
|
|
36
|
-
* Returns the raw transaction
|
|
37
|
-
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#get-
|
|
38
|
-
* {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxidraw | Esplora GET /tx/:txid/raw } for details.
|
|
36
|
+
* Returns the raw transaction as binary data.
|
|
37
|
+
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#get-txtxidraw | Esplora GET /tx/:txid/raw } for details.
|
|
39
38
|
* @param {string} txid The transaction id (required).
|
|
40
|
-
* @returns {Promise<
|
|
39
|
+
* @returns {Promise<Bytes>} A promise resolving to the raw transaction bytes.
|
|
41
40
|
*/
|
|
42
41
|
async getRaw(txid) {
|
|
43
|
-
return await this.
|
|
42
|
+
return await this.exec(this.protocol.getTxRaw(txid));
|
|
44
43
|
}
|
|
45
44
|
/**
|
|
46
|
-
* Broadcast a raw transaction to the network.
|
|
47
|
-
* will be returned on success.
|
|
45
|
+
* Broadcast a raw transaction to the network.
|
|
48
46
|
* See {@link https://github.com/blockstream/esplora/blob/master/API.md#post-tx | Esplora POST /tx } for details.
|
|
49
47
|
* @param {string} tx The raw transaction in hex format (required).
|
|
50
48
|
* @returns {Promise<string>} The transaction id of the broadcasted transaction.
|
|
51
49
|
*/
|
|
52
50
|
async send(tx) {
|
|
53
|
-
return await this.
|
|
51
|
+
return await this.exec(this.protocol.postTx(tx));
|
|
54
52
|
}
|
|
55
53
|
}
|
|
56
54
|
//# sourceMappingURL=transaction.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/client/rest/transaction.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"transaction.js","sourceRoot":"","sources":["../../../../src/client/rest/transaction.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,kBAAkB;IACZ,QAAQ,CAAkB;IAC1B,IAAI,CAAqC;IAE1D,YAAY,QAAyB,EAAE,IAAwC;QAC7E,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,GAAG,CAAC,IAAY;QAC3B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;IACpD,CAAC;IAED;;;;OAIG;IACI,KAAK,CAAC,WAAW,CAAC,IAAY;QACnC,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAChC,OAAO,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC;IAC7B,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,MAAM,CAAC,IAAY;QAC9B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;IACvD,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAC,EAAU;QAC1B,OAAO,MAAM,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IACnD,CAAC;CACF"}
|