Skip to content

Commit 4ef02f9

Browse files
feat(utxo-staking): add babylon network type and conversion utils
Add network type definitions and conversion functions between Babylon and BitcoinJS networks Issue: BTC-1933
1 parent ca8202e commit 4ef02f9

File tree

1 file changed

+34
-0
lines changed

1 file changed

+34
-0
lines changed
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
import * as bitcoinjslib from 'bitcoinjs-lib';
2+
import * as utxolib from '@bitgo/utxo-lib';
3+
4+
export type BabylonNetwork = 'mainnet' | 'testnet';
5+
6+
export type BabylonNetworkLike = bitcoinjslib.Network | utxolib.Network | BabylonNetwork;
7+
8+
export function toBabylonNetwork(n: BabylonNetworkLike): BabylonNetwork {
9+
switch (n) {
10+
case bitcoinjslib.networks.bitcoin:
11+
case utxolib.networks.bitcoin:
12+
return 'mainnet';
13+
case bitcoinjslib.networks.testnet:
14+
case utxolib.networks.testnet:
15+
case utxolib.networks.bitcoinPublicSignet:
16+
return 'testnet';
17+
case 'mainnet':
18+
case 'testnet':
19+
return n;
20+
default:
21+
throw new Error('Unsupported network');
22+
}
23+
}
24+
25+
export function toBitcoinJsNetwork(n: BabylonNetworkLike): bitcoinjslib.Network {
26+
switch (toBabylonNetwork(n)) {
27+
case 'mainnet':
28+
return bitcoinjslib.networks.bitcoin;
29+
case 'testnet':
30+
return bitcoinjslib.networks.testnet;
31+
default:
32+
throw new Error('Unsupported network');
33+
}
34+
}

0 commit comments

Comments
 (0)