Skip to content

Commit 8a8756f

Browse files
committed
test: test btc-like coins
1 parent c05f4f3 commit 8a8756f

File tree

2 files changed

+83
-0
lines changed

2 files changed

+83
-0
lines changed
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"pubkeyToAddress": {
3+
"pubkey": "0279be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798",
4+
"chains": {
5+
"bch": {
6+
"P2PKH": "bitcoincash:qp63uahgrxged4z5jswyt5dn5v3lzsem6cy4spdc2h"
7+
},
8+
"ltc": {
9+
"P2PKH": "LVuDpNCSSj6pQ7t9Pv6d6sUkLKoqDEVUnJ",
10+
"P2SH_P2WPKH": "MR8UQSBr5ULwWheBHznrHk2jxyxkHQu8vB",
11+
"P2WPKH": "ltc1qw508d6qejxtdg4y5r3zarvary0c5xw7kgmn4n9"
12+
},
13+
"doge": { "P2PKH": "DFpN6QqFfUm3gKNaxN6tNcab1FArL9cZLE" },
14+
"btg": {
15+
"P2PKH": "GUXByHDZLvU4DnVH9imSFckt3HEQ5cFgE5",
16+
"P2SH_P2WPKH": "AZ1BpW94ubqHRzsqdfoFCMgVyN1H4CnSEp",
17+
"P2WPKH": "btg1qw508d6qejxtdg4y5r3zarvary0c5xw7k6w057a"
18+
},
19+
"dgb": {
20+
"P2PKH": "DFpN6QqFfUm3gKNaxN6tNcab1FArL9cZLE",
21+
"P2SH_P2WPKH": "SeXKCr4bJpNL9LTJcT7zbNZy9YK1Vihyox",
22+
"P2WPKH": "dgb1qw508d6qejxtdg4y5r3zarvary0c5xw7kmudfnm"
23+
},
24+
"nmc": { "P2PKH": "N7FdkoPbHSxKfrSVVbRu3NZtrLqc1oKpAR" },
25+
"vtc": {
26+
"P2PKH": "Vkg6Ts44mskyD668xZkxFkjqovjXX9yUzZ",
27+
"P2SH_P2WPKH": "3JvL6Ymt8MVWiCNHC7oWU6nLeHNJKLZGLN",
28+
"P2WPKH": "vtc1qw508d6qejxtdg4y5r3zarvary0c5xw7kuk9r06"
29+
}
30+
}
31+
}
32+
}
Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
import { Provider as BCHProvider } from '../../../../src/provider/chains/bch';
2+
import { Provider as BTCProvider } from '../../../../src/provider/chains/btc';
3+
4+
import fixture from './fixture.json';
5+
6+
const getProvider = (chainCode: string) => {
7+
const chainInfo: any = { code: chainCode };
8+
const blockbook: any = {};
9+
10+
if (chainCode === 'bch') {
11+
return new BCHProvider(chainInfo, () => Promise.resolve(blockbook));
12+
}
13+
return new BTCProvider(chainInfo, () => Promise.resolve(blockbook));
14+
};
15+
16+
describe('pubkeyToAddress', () => {
17+
const verifier: any = {
18+
getPubkey: () => Buffer.from(fixture.pubkeyToAddress.pubkey, 'hex'),
19+
};
20+
21+
for (const [chainCode, config] of Object.entries(
22+
fixture.pubkeyToAddress.chains,
23+
)) {
24+
for (const [encoding, correctAddress] of Object.entries(config)) {
25+
test(`${chainCode}:${encoding}`, async () => {
26+
await expect(
27+
getProvider(chainCode).pubkeyToAddress(verifier, encoding),
28+
).resolves.toBe(correctAddress);
29+
});
30+
}
31+
}
32+
});
33+
34+
describe('verifyAddress', () => {
35+
for (const [chainCode, config] of Object.entries(
36+
fixture.pubkeyToAddress.chains,
37+
)) {
38+
for (const [encoding, correctAddress] of Object.entries(config)) {
39+
test(`${chainCode}:${encoding}`, async () => {
40+
await expect(
41+
getProvider(chainCode).verifyAddress(correctAddress),
42+
).resolves.toStrictEqual({
43+
isValid: true,
44+
displayAddress: correctAddress,
45+
normalizedAddress: correctAddress,
46+
encoding,
47+
});
48+
});
49+
}
50+
}
51+
});

0 commit comments

Comments
 (0)