Skip to content

Commit

Permalink
feat(utxo-bin): make conversion table a little prettier
Browse files Browse the repository at this point in the history
Issue: BTC-1472
  • Loading branch information
OttoAllmendinger committed Nov 22, 2024
1 parent 3f3886f commit 002f296
Show file tree
Hide file tree
Showing 16 changed files with 398 additions and 393 deletions.
11 changes: 8 additions & 3 deletions modules/utxo-bin/src/AddressParser.ts
Original file line number Diff line number Diff line change
Expand Up @@ -99,21 +99,26 @@ export class AddressParser extends Parser {
}

convert(outputScript: Buffer): ParserNode {
function getWidth(list: readonly string[]): number {
return Math.max(...list.map((s) => s.length));
}
const networkWith = getWidth(getNetworkList().map(getNetworkName));
const addressFormatWith = getWidth(utxolib.addressFormat.addressFormats);
return this.node(
'converted',
undefined,
getNetworkList().flatMap((network) =>
utxolib.addressFormat.addressFormats
.filter((f) => utxolib.addressFormat.isSupportedAddressFormat(f, network))
.map((addressFormat) => {
const name = getNetworkName(network);
const label = `${getNetworkName(network).padEnd(networkWith)} ${addressFormat.padEnd(addressFormatWith)}`;
try {
return this.node(
`${name} ${addressFormat}`,
label,
utxolib.addressFormat.fromOutputScriptWithFormat(outputScript, addressFormat, network)
);
} catch (e) {
return this.node(`${name} ${addressFormat}`, 'undefined');
return this.node(label, 'undefined');
}
})
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,29 @@ address: 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
│ └── asm: OP_DUP OP_HASH160 d2970bfc64117e397dc5cb7a9afe9f8b22dca1f1 OP_EQUALVERIFY OP_CHECKSIG
├── network: bitcoin, bitcoincash, bitcoinsv, ecash
└─┬ converted
├── bitcoin default: 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── bitcoinBitGoSignet default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinPublicSignet default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinRegtest default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinTestnet4 default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── testnet default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoincash default: 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── bitcoincash cashaddr: bitcoincash:qrffwzluvsghuwtach9h4xh7n79j9h9p7y50md7lc3
├── bitcoincashTestnet default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoincashTestnet cashaddr: bchtest:qrffwzluvsghuwtach9h4xh7n79j9h9p7ysal2ugld
├── bitcoingold default: Gd3RGL1YRshmnUiGneEPMh3kffR4S91A1w
├── bitcoingoldTestnet default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinsv default: 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── bitcoinsvTestnet default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── dash default: XutLgTLVQjK4rx1ZiatVnTPeaqCuNvRz6k
├── dashTest default: yfWwhQQvrGy9Cgw7HSCtpUozs7hGy5CK3x
├── dogecoin default: DQLbPTdEkRzmF1babHZqUgsTddMWgQq2ad
├── dogecoinTest default: noPf7UN9gQTV7zAmd7DHj6TksVjoihVkLY
├── ecash default: 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── ecash cashaddr: ecash:qrffwzluvsghuwtach9h4xh7n79j9h9p7ydz0x997x
├── ecashTest default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── ecashTest cashaddr: ectest:qrffwzluvsghuwtach9h4xh7n79j9h9p7ytf3xzgah
├── litecoin default: LeRT7QzRXgLXxp792qZaCwmcxhzVVhCFuv
├── litecoinTest default: mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── zcash default: t1d56rY6jRLt5JeTso8PQ4jon19pJAF13hg
└── zcashTest default: tmUurBNb8p1PaStfKTrh8vQUXc8u7i1s34C
├── bitcoin default : 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── bitcoinBitGoSignet default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinPublicSignet default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinRegtest default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinTestnet4 default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── testnet default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoincash default : 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── bitcoincash cashaddr: bitcoincash:qrffwzluvsghuwtach9h4xh7n79j9h9p7y50md7lc3
├── bitcoincashTestnet default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoincashTestnet cashaddr: bchtest:qrffwzluvsghuwtach9h4xh7n79j9h9p7ysal2ugld
├── bitcoingold default : Gd3RGL1YRshmnUiGneEPMh3kffR4S91A1w
├── bitcoingoldTestnet default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── bitcoinsv default : 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── bitcoinsvTestnet default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── dash default : XutLgTLVQjK4rx1ZiatVnTPeaqCuNvRz6k
├── dashTest default : yfWwhQQvrGy9Cgw7HSCtpUozs7hGy5CK3x
├── dogecoin default : DQLbPTdEkRzmF1babHZqUgsTddMWgQq2ad
├── dogecoinTest default : noPf7UN9gQTV7zAmd7DHj6TksVjoihVkLY
├── ecash default : 1LCVrCgbT26Ui1QyrhaGvvhrkVdDRAXxtt
├── ecash cashaddr: ecash:qrffwzluvsghuwtach9h4xh7n79j9h9p7ydz0x997x
├── ecashTest default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── ecashTest cashaddr: ectest:qrffwzluvsghuwtach9h4xh7n79j9h9p7ytf3xzgah
├── litecoin default : LeRT7QzRXgLXxp792qZaCwmcxhzVVhCFuv
├── litecoinTest default : mziT9FmaG3XjV7tbaGYekqvBcVDvGnY3EZ
├── zcash default : t1d56rY6jRLt5JeTso8PQ4jon19pJAF13hg
└── zcashTest default : tmUurBNb8p1PaStfKTrh8vQUXc8u7i1s34C
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,29 @@ address: 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
│ └── asm: OP_HASH160 179ddf848a574c6fdb30e6e564f2c8b8fc113545 OP_EQUAL
├── network: bitcoin, bitcoincash, bitcoinsv, ecash
└─┬ converted
├── bitcoin default: 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── bitcoinBitGoSignet default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinPublicSignet default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinRegtest default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinTestnet4 default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── testnet default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoincash default: 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── bitcoincash cashaddr: bitcoincash:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g5r6hj6v3l
├── bitcoincashTestnet default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoincashTestnet cashaddr: bchtest:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g58gn4cmkr
├── bitcoingold default: AHvkK8Jwr48xc9vDERsLZU8Ad9KRDP3e7m
├── bitcoingoldTestnet default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinsv default: 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── bitcoinsvTestnet default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── dash default: 7UZXRNDvsntpt7wc4VY7AbDfDcWpG8NUjp
├── dashTest default: 8gaLNh7o1LHTLRMs8kY4cy3278HeNDxLze
├── dogecoin default: 9tb9L21f8sg5nin8D1Y25LrNze4UXu9zYi
├── dogecoinTest default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── ecash default: 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── ecash cashaddr: ecash:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g56hrepkhg
├── ecashTest default: 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── ecashTest cashaddr: ectest:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g5uuaexm5e
├── litecoin default: MA42u4Mj1vecgrgYtkrwerUQcmGtR4kUvr
├── litecoinTest default: QNkrmvk2hNMdEKoF67XVXreheoLS5yeqB5
├── zcash default: t3LiVbWMu38anUzTYjJgiy2KvYisXE5gqbm
└── zcashTest default: t28hgeBU2ubCA2h3Hf3gmWeWZfD6h3wzrZN
├── bitcoin default : 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── bitcoinBitGoSignet default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinPublicSignet default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinRegtest default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinTestnet4 default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── testnet default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoincash default : 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── bitcoincash cashaddr: bitcoincash:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g5r6hj6v3l
├── bitcoincashTestnet default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoincashTestnet cashaddr: bchtest:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g58gn4cmkr
├── bitcoingold default : AHvkK8Jwr48xc9vDERsLZU8Ad9KRDP3e7m
├── bitcoingoldTestnet default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── bitcoinsv default : 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── bitcoinsvTestnet default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── dash default : 7UZXRNDvsntpt7wc4VY7AbDfDcWpG8NUjp
├── dashTest default : 8gaLNh7o1LHTLRMs8kY4cy3278HeNDxLze
├── dogecoin default : 9tb9L21f8sg5nin8D1Y25LrNze4UXu9zYi
├── dogecoinTest default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── ecash default : 33qtbAwm4ooBtMQenssbqDE1J4gSMMBRnb
├── ecash cashaddr: ecash:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g56hrepkhg
├── ecashTest default : 2MuQ6eusngGJY693CU1VUTADGWQtcBBk1di
├── ecashTest cashaddr: ectest:pqtemhuy3ft5cm7mxrnw2e8jezu0cyf4g5uuaexm5e
├── litecoin default : MA42u4Mj1vecgrgYtkrwerUQcmGtR4kUvr
├── litecoinTest default : QNkrmvk2hNMdEKoF67XVXreheoLS5yeqB5
├── zcash default : t3LiVbWMu38anUzTYjJgiy2KvYisXE5gqbm
└── zcashTest default : t28hgeBU2ubCA2h3Hf3gmWeWZfD6h3wzrZN
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,29 @@ address: 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
│ └── asm: OP_HASH160 2f5e2d8f4ee34ccd1a4130975b9fe635ff65e02b OP_EQUAL
├── network: bitcoin, bitcoincash, bitcoinsv, ecash
└─┬ converted
├── bitcoin default: 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── bitcoinBitGoSignet default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinPublicSignet default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinRegtest default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinTestnet4 default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── testnet default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoincash default: 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── bitcoincash cashaddr: bitcoincash:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vhaa54xz8
├── bitcoincashTestnet default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoincashTestnet cashaddr: bchtest:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vn0enh39m
├── bitcoingold default: AL6LE7aicvjeMTdtWrgJpXGYuyzsxJYdja
├── bitcoingoldTestnet default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinsv default: 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── bitcoinsvTestnet default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── dash default: 7Wj7LMVhefVWdRfHLvM5ReN3WTCGzyVbdE
├── dashTest default: 8ijvHgPZnCt95j5YRBM2t2BQPxy76bvp6E
├── dogecoin default: 9vkjF1HRukGmY2VoVSLzLPzmHUjwCvtAad
├── dogecoinTest default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── ecash default: 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── ecash cashaddr: ecash:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vwsflwuys
├── ecashTest default: 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── ecashTest cashaddr: ectest:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vgmhlf38p
├── litecoin default: MCDcp3dVnoFJSAQEBBfuuucnubxM6uQRD5
├── litecoinTest default: QQvSgv1oUExJydWvNYLTnuo5we1tsV5DZ3
├── zcash default: t3Nt5WVdfp1BUEJBE1jVhE5UJqZYz1DCoRU
└── zcashTest default: t2AsGZAjogTnqmzkxwUVjmhewx3n9qwJkTV
├── bitcoin default : 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── bitcoinBitGoSignet default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinPublicSignet default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinRegtest default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinTestnet4 default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── testnet default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoincash default : 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── bitcoincash cashaddr: bitcoincash:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vhaa54xz8
├── bitcoincashTestnet default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoincashTestnet cashaddr: bchtest:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vn0enh39m
├── bitcoingold default : AL6LE7aicvjeMTdtWrgJpXGYuyzsxJYdja
├── bitcoingoldTestnet default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── bitcoinsv default : 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── bitcoinsvTestnet default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── dash default : 7Wj7LMVhefVWdRfHLvM5ReN3WTCGzyVbdE
├── dashTest default : 8ijvHgPZnCt95j5YRBM2t2BQPxy76bvp6E
├── dogecoin default : 9vkjF1HRukGmY2VoVSLzLPzmHUjwCvtAad
├── dogecoinTest default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── ecash default : 361UWADXqgPsdf8L5Jga6GNPauMuBtT1eW
├── ecash cashaddr: ecash:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vwsflwuys
├── ecashTest default : 2MwZgZu9ZT8uDqSkskSJSiDMeoFa4z4RtdW
├── ecashTest cashaddr: ectest:pqh4utv0fm35eng6gycfwkuluc6l7e0q9vgmhlf38p
├── litecoin default : MCDcp3dVnoFJSAQEBBfuuucnubxM6uQRD5
├── litecoinTest default : QQvSgv1oUExJydWvNYLTnuo5we1tsV5DZ3
├── zcash default : t3Nt5WVdfp1BUEJBE1jVhE5UJqZYz1DCoRU
└── zcashTest default : t2AsGZAjogTnqmzkxwUVjmhewx3n9qwJkTV
Original file line number Diff line number Diff line change
Expand Up @@ -19,29 +19,29 @@ address: bc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9scdgsyg
│ └── asm: OP_1 a180c02323789a1c03508c85348a34564d7b469a096fbfeb1a2efabda103664b
├── network: bitcoin
└─┬ converted
├── bitcoin default: bc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9scdgsyg
├── bitcoinBitGoSignet default: tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── bitcoinPublicSignet default: tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── bitcoinRegtest default: bcrt1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9szu5eta
├── bitcoinTestnet4 default: tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── testnet default: tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── bitcoincash default: undefined
├── bitcoincash cashaddr: undefined
├── bitcoincashTestnet default: undefined
├── bitcoincashTestnet cashaddr: undefined
├── bitcoingold default: btg1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9skdvd5z
├── bitcoingoldTestnet default: tbtg1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9sazgnth
├── bitcoinsv default: undefined
├── bitcoinsvTestnet default: undefined
├── dash default: undefined
├── dashTest default: undefined
├── dogecoin default: undefined
├── dogecoinTest default: undefined
├── ecash default: undefined
├── ecash cashaddr: undefined
├── ecashTest default: undefined
├── ecashTest cashaddr: undefined
├── litecoin default: ltc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9smfxq7d
├── litecoinTest default: tltc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9ssxz7pc
├── zcash default: undefined
└── zcashTest default: undefined
├── bitcoin default : bc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9scdgsyg
├── bitcoinBitGoSignet default : tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── bitcoinPublicSignet default : tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── bitcoinRegtest default : bcrt1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9szu5eta
├── bitcoinTestnet4 default : tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── testnet default : tb1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9s097l78
├── bitcoincash default : undefined
├── bitcoincash cashaddr: undefined
├── bitcoincashTestnet default : undefined
├── bitcoincashTestnet cashaddr: undefined
├── bitcoingold default : btg1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9skdvd5z
├── bitcoingoldTestnet default : tbtg1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9sazgnth
├── bitcoinsv default : undefined
├── bitcoinsvTestnet default : undefined
├── dash default : undefined
├── dashTest default : undefined
├── dogecoin default : undefined
├── dogecoinTest default : undefined
├── ecash default : undefined
├── ecash cashaddr: undefined
├── ecashTest default : undefined
├── ecashTest cashaddr: undefined
├── litecoin default : ltc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9smfxq7d
├── litecoinTest default : tltc1p5xqvqger0zdpcq6s3jznfz352exhk356p9hml6c69matmggrve9ssxz7pc
├── zcash default : undefined
└── zcashTest default : undefined
Loading

0 comments on commit 002f296

Please sign in to comment.