mirror of
https://github.com/bitcoinresearchkit/brk.git
synced 2026-07-01 22:39:03 -07:00
35 lines
1.4 KiB
JavaScript
35 lines
1.4 KiB
JavaScript
import assert from "node:assert/strict";
|
|
import { BrkClient, addressPayloadHashPrefix } from "../index.js";
|
|
|
|
const vectors = [
|
|
[Uint8Array.of(0x4e, 0x73), "58101afa51a1ecfd"],
|
|
[Uint8Array.from({ length: 20 }, (_, i) => i), "c3327ecb8ae1ff23"],
|
|
[Uint8Array.from({ length: 32 }, (_, i) => i), "c0186990f026b180"],
|
|
[Uint8Array.from({ length: 65 }, (_, i) => i), "0d4b77027ae7d700"],
|
|
];
|
|
|
|
for (const [payload, hash] of vectors) {
|
|
assert.equal(addressPayloadHashPrefix(payload, 16), hash);
|
|
assert.equal(BrkClient.addressPayloadHashPrefix(payload, 8), hash.slice(0, 8));
|
|
}
|
|
|
|
assert.throws(() => addressPayloadHashPrefix(Uint8Array.of(), 16), /non-empty/);
|
|
assert.throws(() => addressPayloadHashPrefix(new Uint8Array(66), 16), /at most 65/);
|
|
assert.throws(() => addressPayloadHashPrefix(Uint8Array.of(1, 2), 0), /1 to 16/);
|
|
|
|
const client = new BrkClient("http://127.0.0.1:0");
|
|
client.getAddressHashPrefixMatches = (addrType, prefix) => ({ addrType, prefix, truncated: false, addresses: [] });
|
|
|
|
assert.deepEqual(
|
|
client.getAddressPayloadHashPrefixMatches("p2pkh", Uint8Array.from({ length: 20 }, (_, i) => i), 8),
|
|
{ addrType: "p2pkh", prefix: "c3327ecb", truncated: false, addresses: [] },
|
|
);
|
|
assert.throws(
|
|
() => client.getAddressPayloadHashPrefixMatches("p2pkh", Uint8Array.of(1, 2), 8),
|
|
/p2pkh address payload length 20 bytes/,
|
|
);
|
|
assert.throws(
|
|
() => client.getAddressPayloadHashPrefixMatches("op_return", Uint8Array.of(1, 2), 8),
|
|
/Unsupported address type/,
|
|
);
|