@bsv/wallet-toolbox
Version:
BRC100 conforming wallet, wallet storage and wallet signer components
56 lines • 3.32 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const sdk_1 = require("@bsv/sdk");
const ChaintracksFetch_1 = require("../ChaintracksFetch");
const utilityHelpers_noBuffer_1 = require("../../../../../utility/utilityHelpers.noBuffer");
const validBulkHeaderFilesByFileHash_1 = require("../validBulkHeaderFilesByFileHash");
describe('ChaintracksFetch tests', () => {
jest.setTimeout(99999999);
test('0 fetchJson', async () => {
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
const cdnUrl = 'https://cdn.projectbabbage.com/blockheaders/';
//const jsonResource = `${cdnUrl}/testNetV2.json`
const jsonResource = `${cdnUrl}/testNetBlockHeaders.json`;
const info = await fetch.fetchJson(jsonResource);
expect(info).toBeDefined();
expect(info.files.length).toBeGreaterThan(4);
});
test('1 download', async () => {
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
const cdnUrl = 'https://cdn.projectbabbage.com/blockheaders/';
const url = `${cdnUrl}/testNet_0.headers`;
const data = await fetch.download(url);
expect(data.length).toBe(8000000);
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_1.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(data)), 'base64');
expect((0, validBulkHeaderFilesByFileHash_1.validBulkHeaderFilesByFileHash)()[fileHash]).toBeDefined();
});
test.skip('2 download faster crypto.subtle sha256', async () => {
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
const cdnUrl = 'https://cdn.projectbabbage.com/blockheaders/';
const url = `${cdnUrl}/testNet_0.headers`;
const data = await fetch.download(url);
expect(data.length).toBe(8000000);
const hash = new Uint8Array(await crypto.subtle.digest('SHA-256', Uint8Array.from(data)));
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(hash, 'base64');
expect((0, validBulkHeaderFilesByFileHash_1.validBulkHeaderFilesByFileHash)()[fileHash]).toBeDefined();
});
test('3 download', async () => {
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
const cdnUrl = 'https://cdn.projectbabbage.com/blockheaders/';
const url = `${cdnUrl}/testNet_4.headers`;
const data = await fetch.download(url);
expect(data.length).toBe(80 * 100000);
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_1.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(data)), 'base64');
expect((0, validBulkHeaderFilesByFileHash_1.validBulkHeaderFilesByFileHash)()[fileHash]).toBeDefined();
});
test('4 download', async () => {
const fetch = new ChaintracksFetch_1.ChaintracksFetch();
const cdnUrl = 'https://cdn.projectbabbage.com/blockheaders/';
const url = `${cdnUrl}/mainNet_2.headers`;
const data = await fetch.download(url);
expect(data.length).toBe(80 * 100000);
const fileHash = (0, utilityHelpers_noBuffer_1.asString)(sdk_1.Hash.sha256((0, utilityHelpers_noBuffer_1.asArray)(data)), 'base64');
expect((0, validBulkHeaderFilesByFileHash_1.validBulkHeaderFilesByFileHash)()[fileHash]).toBeDefined();
});
});
//# sourceMappingURL=ChaintracksFetch.test.js.map