@bsv/wallet-toolbox 2.0.5-beta.0 → 2.0.5
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/CHANGELOG.md +4 -0
- package/docs/client.md +4 -15
- package/docs/services.md +4 -15
- package/docs/wallet.md +4 -15
- package/package.json +1 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.d.ts +0 -2
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.d.ts.map +0 -1
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js +0 -102
- package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js.map +0 -1
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,10 @@ This document captures the history of significant changes to the wallet-toolbox
|
|
|
4
4
|
The git commit history contains the details but is unable to draw
|
|
5
5
|
attention to changes that materially alter behavior or extend functionality.
|
|
6
6
|
|
|
7
|
+
## wallet-toolbox 2.0.5
|
|
8
|
+
|
|
9
|
+
Change sqlite support to better-sqlite3, all tests resolved. Support for existing databases confirmed.
|
|
10
|
+
|
|
7
11
|
## wallet-toolbox 2.0.4
|
|
8
12
|
|
|
9
13
|
- Added better group permissions and PACT protocol support
|
package/docs/client.md
CHANGED
|
@@ -19589,19 +19589,6 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19589
19589
|
chain: "test",
|
|
19590
19590
|
validated: true
|
|
19591
19591
|
},
|
|
19592
|
-
{
|
|
19593
|
-
chain: "test",
|
|
19594
|
-
count: 95262,
|
|
19595
|
-
fileHash: "BvNO9eeMwCaN1Xsx8PQLMJ+YiqF9FrNe+9WnnEo9B44=",
|
|
19596
|
-
fileName: "testNet_16.headers",
|
|
19597
|
-
firstHeight: 1600000,
|
|
19598
|
-
lastChainWork: "00000000000000000000000000000000000000000000015814b84c3f9834ef93",
|
|
19599
|
-
lastHash: "000000000ca922c841cb7fedd8f012ebc27b17991c9b00a8fb7ca4b1b2b648d3",
|
|
19600
|
-
prevChainWork: "000000000000000000000000000000000000000000000156c3b84396da4e60b9",
|
|
19601
|
-
prevHash: "00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1",
|
|
19602
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19603
|
-
validated: true
|
|
19604
|
-
},
|
|
19605
19592
|
{
|
|
19606
19593
|
chain: "test",
|
|
19607
19594
|
count: 100000,
|
|
@@ -19612,7 +19599,8 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19612
19599
|
lastHash: "000000000001561e0532f48401f822f5c0d8797e364b1d612a317eca6983ca36",
|
|
19613
19600
|
prevChainWork: "000000000000000000000000000000000000000000000156c3b84396da4e60b9",
|
|
19614
19601
|
prevHash: "00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1",
|
|
19615
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
19602
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19603
|
+
validated: true
|
|
19616
19604
|
},
|
|
19617
19605
|
{
|
|
19618
19606
|
chain: "test",
|
|
@@ -19624,7 +19612,8 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19624
19612
|
lastHash: "00000000086ca64c1f351b76c63f944b7b6b553e0c66fce3d9c1e91cddf9d067",
|
|
19625
19613
|
prevChainWork: "00000000000000000000000000000000000000000000015814b9c82dabd4ea74",
|
|
19626
19614
|
prevHash: "000000000001561e0532f48401f822f5c0d8797e364b1d612a317eca6983ca36",
|
|
19627
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
19615
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19616
|
+
validated: true
|
|
19628
19617
|
},
|
|
19629
19618
|
{
|
|
19630
19619
|
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
package/docs/services.md
CHANGED
|
@@ -6209,19 +6209,6 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
6209
6209
|
chain: "test",
|
|
6210
6210
|
validated: true
|
|
6211
6211
|
},
|
|
6212
|
-
{
|
|
6213
|
-
chain: "test",
|
|
6214
|
-
count: 95262,
|
|
6215
|
-
fileHash: "BvNO9eeMwCaN1Xsx8PQLMJ+YiqF9FrNe+9WnnEo9B44=",
|
|
6216
|
-
fileName: "testNet_16.headers",
|
|
6217
|
-
firstHeight: 1600000,
|
|
6218
|
-
lastChainWork: "00000000000000000000000000000000000000000000015814b84c3f9834ef93",
|
|
6219
|
-
lastHash: "000000000ca922c841cb7fedd8f012ebc27b17991c9b00a8fb7ca4b1b2b648d3",
|
|
6220
|
-
prevChainWork: "000000000000000000000000000000000000000000000156c3b84396da4e60b9",
|
|
6221
|
-
prevHash: "00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1",
|
|
6222
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
6223
|
-
validated: true
|
|
6224
|
-
},
|
|
6225
6212
|
{
|
|
6226
6213
|
chain: "test",
|
|
6227
6214
|
count: 100000,
|
|
@@ -6232,7 +6219,8 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
6232
6219
|
lastHash: "000000000001561e0532f48401f822f5c0d8797e364b1d612a317eca6983ca36",
|
|
6233
6220
|
prevChainWork: "000000000000000000000000000000000000000000000156c3b84396da4e60b9",
|
|
6234
6221
|
prevHash: "00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1",
|
|
6235
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
6222
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
6223
|
+
validated: true
|
|
6236
6224
|
},
|
|
6237
6225
|
{
|
|
6238
6226
|
chain: "test",
|
|
@@ -6244,7 +6232,8 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
6244
6232
|
lastHash: "00000000086ca64c1f351b76c63f944b7b6b553e0c66fce3d9c1e91cddf9d067",
|
|
6245
6233
|
prevChainWork: "00000000000000000000000000000000000000000000015814b9c82dabd4ea74",
|
|
6246
6234
|
prevHash: "000000000001561e0532f48401f822f5c0d8797e364b1d612a317eca6983ca36",
|
|
6247
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
6235
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
6236
|
+
validated: true
|
|
6248
6237
|
},
|
|
6249
6238
|
{
|
|
6250
6239
|
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
package/docs/wallet.md
CHANGED
|
@@ -19589,19 +19589,6 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19589
19589
|
chain: "test",
|
|
19590
19590
|
validated: true
|
|
19591
19591
|
},
|
|
19592
|
-
{
|
|
19593
|
-
chain: "test",
|
|
19594
|
-
count: 95262,
|
|
19595
|
-
fileHash: "BvNO9eeMwCaN1Xsx8PQLMJ+YiqF9FrNe+9WnnEo9B44=",
|
|
19596
|
-
fileName: "testNet_16.headers",
|
|
19597
|
-
firstHeight: 1600000,
|
|
19598
|
-
lastChainWork: "00000000000000000000000000000000000000000000015814b84c3f9834ef93",
|
|
19599
|
-
lastHash: "000000000ca922c841cb7fedd8f012ebc27b17991c9b00a8fb7ca4b1b2b648d3",
|
|
19600
|
-
prevChainWork: "000000000000000000000000000000000000000000000156c3b84396da4e60b9",
|
|
19601
|
-
prevHash: "00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1",
|
|
19602
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19603
|
-
validated: true
|
|
19604
|
-
},
|
|
19605
19592
|
{
|
|
19606
19593
|
chain: "test",
|
|
19607
19594
|
count: 100000,
|
|
@@ -19612,7 +19599,8 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19612
19599
|
lastHash: "000000000001561e0532f48401f822f5c0d8797e364b1d612a317eca6983ca36",
|
|
19613
19600
|
prevChainWork: "000000000000000000000000000000000000000000000156c3b84396da4e60b9",
|
|
19614
19601
|
prevHash: "00000000000005504bfd1a3ce4688c30c86740390102b6cd464a2fb5e0e3fed1",
|
|
19615
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
19602
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19603
|
+
validated: true
|
|
19616
19604
|
},
|
|
19617
19605
|
{
|
|
19618
19606
|
chain: "test",
|
|
@@ -19624,7 +19612,8 @@ validBulkHeaderFiles: BulkHeaderFileInfo[] = [
|
|
|
19624
19612
|
lastHash: "00000000086ca64c1f351b76c63f944b7b6b553e0c66fce3d9c1e91cddf9d067",
|
|
19625
19613
|
prevChainWork: "00000000000000000000000000000000000000000000015814b9c82dabd4ea74",
|
|
19626
19614
|
prevHash: "000000000001561e0532f48401f822f5c0d8797e364b1d612a317eca6983ca36",
|
|
19627
|
-
sourceUrl: "https://cdn.projectbabbage.com/blockheaders"
|
|
19615
|
+
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
|
19616
|
+
validated: true
|
|
19628
19617
|
},
|
|
19629
19618
|
{
|
|
19630
19619
|
sourceUrl: "https://cdn.projectbabbage.com/blockheaders",
|
package/package.json
CHANGED
package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WhatsOnChainServices.test.d.ts","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.ts"],"names":[],"mappings":""}
|
package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const blockHeaderUtilities_1 = require("../../util/blockHeaderUtilities");
|
|
4
|
-
const ChaintracksFetch_1 = require("../../util/ChaintracksFetch");
|
|
5
|
-
const WhatsOnChainServices_1 = require("../WhatsOnChainServices");
|
|
6
|
-
const WhatsOnChainIngestorWs_1 = require("../WhatsOnChainIngestorWs");
|
|
7
|
-
const HeightRange_1 = require("../../util/HeightRange");
|
|
8
|
-
describe('WhatsOnChainServices tests', () => {
|
|
9
|
-
jest.setTimeout(999999999);
|
|
10
|
-
const chain = 'main';
|
|
11
|
-
const options = WhatsOnChainServices_1.WhatsOnChainServices.createWhatsOnChainServicesOptions(chain);
|
|
12
|
-
const woc = new WhatsOnChainServices_1.WhatsOnChainServices(options);
|
|
13
|
-
test('getHeaderByHash', async () => {
|
|
14
|
-
const header = await woc.getHeaderByHash('000000000000000001b3e99847d57ff3e0bfc4222cea5c29f10bf24387a250a2');
|
|
15
|
-
expect((header === null || header === void 0 ? void 0 : header.height) === 781348).toBe(true);
|
|
16
|
-
});
|
|
17
|
-
test('getChainTipHeight', async () => {
|
|
18
|
-
const height = await woc.getChainTipHeight();
|
|
19
|
-
expect(height > 600000).toBe(true);
|
|
20
|
-
});
|
|
21
|
-
const stopOldListenersToken = { stop: undefined };
|
|
22
|
-
function stopOldListener() {
|
|
23
|
-
var _a;
|
|
24
|
-
(_a = stopOldListenersToken.stop) === null || _a === void 0 ? void 0 : _a.call(stopOldListenersToken);
|
|
25
|
-
}
|
|
26
|
-
test.skip('0 listenForOldBlockHeaders', async () => {
|
|
27
|
-
// The service this depends on appears to be deprecated...
|
|
28
|
-
const height = await woc.getChainTipHeight();
|
|
29
|
-
expect(height > 600000).toBe(true);
|
|
30
|
-
const headersOld = [];
|
|
31
|
-
const errorsOld = [];
|
|
32
|
-
const okOld = await (0, WhatsOnChainIngestorWs_1.WocHeadersBulkListener)(height - 4, height, h => headersOld.push(h), (code, message) => {
|
|
33
|
-
errorsOld.push({ code, message });
|
|
34
|
-
return true;
|
|
35
|
-
}, stopOldListenersToken, chain);
|
|
36
|
-
expect(okOld).toBe(true);
|
|
37
|
-
expect(errorsOld.length).toBe(0);
|
|
38
|
-
expect(headersOld.length >= 4).toBe(true);
|
|
39
|
-
});
|
|
40
|
-
const stopNewListenersToken = { stop: undefined };
|
|
41
|
-
test.skip('1 listenForNewBlockHeaders', async () => {
|
|
42
|
-
// The service this depends on appears to be deprecated...
|
|
43
|
-
const height = await woc.getChainTipHeight();
|
|
44
|
-
expect(height > 600000).toBe(true);
|
|
45
|
-
// Comment out this line to just wait for next new header...
|
|
46
|
-
//setTimeout(() => woc.stopNewListener(), 5000)
|
|
47
|
-
const headersNew = [];
|
|
48
|
-
const errorsNew = [];
|
|
49
|
-
const eh = h => {
|
|
50
|
-
var _a;
|
|
51
|
-
headersNew.push(h);
|
|
52
|
-
if (headersNew.length >= 1)
|
|
53
|
-
(_a = stopNewListenersToken.stop) === null || _a === void 0 ? void 0 : _a.call(stopNewListenersToken);
|
|
54
|
-
};
|
|
55
|
-
const errh = (code, message) => {
|
|
56
|
-
errorsNew.push({ code, message });
|
|
57
|
-
return true;
|
|
58
|
-
};
|
|
59
|
-
const okNew = await (0, WhatsOnChainIngestorWs_1.WocHeadersLiveListener)(eh, errh, stopNewListenersToken, chain, console.log.bind(console));
|
|
60
|
-
if (errorsNew.length > 0)
|
|
61
|
-
console.log(JSON.stringify(errorsNew));
|
|
62
|
-
expect(errorsNew.length).toBe(0);
|
|
63
|
-
expect(okNew).toBe(true);
|
|
64
|
-
expect(headersNew.length >= 0).toBe(true);
|
|
65
|
-
});
|
|
66
|
-
test('2 get latest header bytes', async () => {
|
|
67
|
-
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
|
|
68
|
-
//for (;;) {
|
|
69
|
-
const bytes = await fetch.download(`https://api.whatsonchain.com/v1/bsv/main/block/headers/latest`);
|
|
70
|
-
console.log(`headers: ${bytes.length / 80}`);
|
|
71
|
-
const latest = await fetch.download(`https://api.whatsonchain.com/v1/bsv/main/block/headers/latest?count=1`);
|
|
72
|
-
const bh = (0, blockHeaderUtilities_1.deserializeBlockHeader)(latest, 0, 0);
|
|
73
|
-
console.log(`latest hash: ${bh.hash} at ${new Date().toISOString()}`);
|
|
74
|
-
// await wait(60 * 1000)
|
|
75
|
-
//}
|
|
76
|
-
});
|
|
77
|
-
test('3 get headers', async () => {
|
|
78
|
-
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
|
|
79
|
-
//for (;;) {
|
|
80
|
-
const headers = await fetch.fetchJson(`https://api.whatsonchain.com/v1/bsv/main/block/headers`);
|
|
81
|
-
let log = '';
|
|
82
|
-
for (const h of headers) {
|
|
83
|
-
log += `${h.height} ${h.hash} ${h.confirmations} ${h.nTx}\n`;
|
|
84
|
-
}
|
|
85
|
-
console.log(`${new Date().toISOString()}\n${log}`);
|
|
86
|
-
//await wait(60 * 1000)
|
|
87
|
-
//}
|
|
88
|
-
});
|
|
89
|
-
test('4 get header byte file links', async () => {
|
|
90
|
-
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
|
|
91
|
-
const woc = new WhatsOnChainServices_1.WhatsOnChainServices(WhatsOnChainServices_1.WhatsOnChainServices.createWhatsOnChainServicesOptions('main'));
|
|
92
|
-
const files = await woc.getHeaderByteFileLinks(new HeightRange_1.HeightRange(907123, 911000));
|
|
93
|
-
expect(files.length).toBe(3);
|
|
94
|
-
expect(files[0].range.minHeight).toBe(906001);
|
|
95
|
-
expect(files[0].range.maxHeight).toBe(908000);
|
|
96
|
-
expect(files[1].range.minHeight).toBe(908001);
|
|
97
|
-
expect(files[1].range.maxHeight).toBe(910000);
|
|
98
|
-
expect(files[2].range.minHeight).toBe(910001);
|
|
99
|
-
expect(files[2].range.maxHeight).toBeGreaterThan(910001);
|
|
100
|
-
});
|
|
101
|
-
});
|
|
102
|
-
//# sourceMappingURL=WhatsOnChainServices.test.js.map
|
package/out/src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WhatsOnChainServices.test.js","sourceRoot":"","sources":["../../../../../../../src/services/chaintracker/chaintracks/Ingest/__tests/WhatsOnChainServices.test.ts"],"names":[],"mappings":"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"}
|