45 lines
1.9 KiB
JavaScript
45 lines
1.9 KiB
JavaScript
// Generated, do not edit. sha256:5b9dd8675758ba64b85bca5e16a855027af470810bba49c97e909a501ef3fbbd
|
|
import { describe, it, mock } from 'node:test';
|
|
import assert from 'node:assert/strict';
|
|
|
|
import { createDbHarness } from '../helpers/db-node.mjs';
|
|
|
|
const harness = createDbHarness();
|
|
mock.module('../../server/db.js', { namedExports: harness.exports });
|
|
|
|
const { firstReceiveAddress } = await import('../../client/price/wallet-scanner.js');
|
|
|
|
const VECTOREN = [
|
|
['p2pkh',
|
|
'xpub6BosfCnifzxcFwrSzQiqu2DBVTshkCXacvNsWGYJVVhhawA7d4R5WSWGFNbi8Aw6ZRc1brxMyWMzG3DSSSSoekkudhUd9yLb6qx39T9nMdj',
|
|
'1LqBGSKuX5yYUonjxT5qGfpUsXKYYWeabA'],
|
|
['p2sh-p2wpkh',
|
|
'ypub6Ww3ibxVfGzLrAH1PNcjyAWenMTbbAosGNB6VvmSEgytSER9azLDWCxoJwW7Ke7icmizBMXrzBx9979FfaHxHcrArf3zbeJJJUZPf663zsP',
|
|
'37VucYSaXLCAsxYyAPfbSi9eh4iEcbShgf'],
|
|
['p2wpkh',
|
|
'zpub6rFR7y4Q2AijBEqTUquhVz398htDFrtymD9xYYfG1m4wAcvPhXNfE3EfH1r1ADqtfSdVCToUG868RvUUkgDKf31mGDtKsAYz2oz2AGutZYs',
|
|
'bc1qcr8te4kr609gcawutmrza0j4xv80jy8z306fyu'],
|
|
['p2tr',
|
|
'xpub6BgBgsespWvERF3LHQu6CnqdvfEvtMcQjYrcRzx53QJjSxarj2afYWcLteoGVky7D3UKDP9QyrLprQ3VCECoY49yfdDEHGCtMMj92pReUsQ',
|
|
'bc1p5cyxnuxmeuwuvkwfem96lqzszd02n6xdcjrs20cac6yqjjwudpxqkedrcr'],
|
|
];
|
|
|
|
describe('firstReceiveAddress: BIP-testvectoren via de gevendorde noble/scure-bundel', () => {
|
|
for (const [scriptType, extKey, verwacht] of VECTOREN) {
|
|
it(`leidt het eerste ontvangstadres af voor ${scriptType}`, () => {
|
|
assert.equal(firstReceiveAddress(extKey, scriptType), verwacht);
|
|
});
|
|
}
|
|
|
|
it('gooit bij een sleutel met een kapotte checksum (geen stil verkeerd adres)', () => {
|
|
const [, zpub] = VECTOREN[2];
|
|
const kapot = zpub.slice(0, -1) + (zpub.endsWith('s') ? 't' : 's');
|
|
assert.throws(() => firstReceiveAddress(kapot, 'p2wpkh'));
|
|
});
|
|
|
|
it('valt bij een onbekend scripttype terug op p2pkh in plaats van te gooien', () => {
|
|
const [, xpub, p2pkhAdres] = VECTOREN[0];
|
|
assert.equal(firstReceiveAddress(xpub, 'p2wsh-bestaat-niet'), p2pkhAdres);
|
|
});
|
|
});
|