Skip to content

Commit f1ebc8a

Browse files
refactor(networks): expose canonical network symbols
1 parent 97e86b1 commit f1ebc8a

22 files changed

Lines changed: 428 additions & 361 deletions

File tree

networks/bitcoin/network-bitcoin-suite-common/src/addressValidator/bitcoinAddressValidator.test.ts

Lines changed: 174 additions & 176 deletions
Large diffs are not rendered by default.

networks/bitcoin/network-bitcoin-suite-common/src/addressValidator/bitcoinAddressValidator.ts

Lines changed: 15 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -5,13 +5,20 @@ import { keccak_256 } from '@noble/hashes/sha3.js';
55
import { bytesToHex, hexToBytes } from '@noble/hashes/utils.js';
66
import { base58 } from '@scure/base';
77

8-
import { asNetworkSymbol } from '@trezor/network-module';
98
import { type AddressValidator, addressType } from '@trezor/network-module-suite-common-types';
109
import { typedObjectKeys } from '@trezor/utils';
1110

1211
import { bchValidator } from './bchAddressValidator';
1312
import * as bech32 from './bech32';
14-
import type { BitcoinNetworkSymbol } from '../supportedNetworks';
13+
import {
14+
type BitcoinNetworkSymbol,
15+
btcSymbol,
16+
dogeSymbol,
17+
ltcSymbol,
18+
regtestSymbol,
19+
testSymbol,
20+
zecSymbol,
21+
} from '../supportedNetworks';
1522

1623
type NetworkEnvironment = 'prod' | 'testnet' | 'regtest' | 'stake';
1724
type HashFunction = 'sha256' | 'blake256' | 'blake256keccak256' | 'keccak256';
@@ -37,28 +44,28 @@ const BITCOIN_NETWORK_CONFIG = {
3744

3845
const BITCOIN_CURRENCIES: Record<BitcoinCurrencySymbol, BitcoinCurrency> = {
3946
btc: {
40-
symbol: asNetworkSymbol('btc'),
47+
symbol: btcSymbol,
4148
...BITCOIN_NETWORK_CONFIG,
4249
},
4350
test: {
44-
symbol: asNetworkSymbol('test'),
51+
symbol: testSymbol,
4552
...BITCOIN_NETWORK_CONFIG,
4653
},
4754
regtest: {
48-
symbol: asNetworkSymbol('regtest'),
55+
symbol: regtestSymbol,
4956
...BITCOIN_NETWORK_CONFIG,
5057
},
5158
ltc: {
52-
symbol: asNetworkSymbol('ltc'),
59+
symbol: ltcSymbol,
5360
segwitHrp: { prod: 'ltc', testnet: 'tltc' },
5461
addressTypes: { prod: ['30', '32'], testnet: ['6f', 'c4', '3a'] },
5562
},
5663
doge: {
57-
symbol: asNetworkSymbol('doge'),
64+
symbol: dogeSymbol,
5865
addressTypes: { prod: ['1e', '16'], testnet: ['71', 'c4'] },
5966
},
6067
zec: {
61-
symbol: asNetworkSymbol('zec'),
68+
symbol: zecSymbol,
6269
expectedLength: 26,
6370
addressTypes: { prod: ['1cb8', '1cbd'], testnet: ['1d25', '1cba'] },
6471
},
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,11 @@
11
export { createBitcoinSuiteCommonNetworkModule } from './BitcoinNetworkSuiteCommonNetworkModule';
2+
export {
3+
bchSymbol,
4+
btcSymbol,
5+
dogeSymbol,
6+
ltcSymbol,
7+
regtestSymbol,
8+
testSymbol,
9+
zecSymbol,
10+
type BitcoinNetworkSymbol,
11+
} from './supportedNetworks';

networks/bitcoin/network-bitcoin-suite-common/src/supportedNetworks.ts

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,21 @@
11
import { type NetworkSymbol, asNetworkSymbol } from '@trezor/network-module';
22

3+
export const btcSymbol = asNetworkSymbol('btc');
4+
export const testSymbol = asNetworkSymbol('test');
5+
export const regtestSymbol = asNetworkSymbol('regtest');
6+
export const ltcSymbol = asNetworkSymbol('ltc');
7+
export const dogeSymbol = asNetworkSymbol('doge');
8+
export const zecSymbol = asNetworkSymbol('zec');
9+
export const bchSymbol = asNetworkSymbol('bch');
10+
311
export const supportedNetworks = [
4-
asNetworkSymbol('btc'),
5-
asNetworkSymbol('test'),
6-
asNetworkSymbol('regtest'),
7-
asNetworkSymbol('ltc'),
8-
asNetworkSymbol('doge'),
9-
asNetworkSymbol('zec'),
10-
asNetworkSymbol('bch'),
12+
btcSymbol,
13+
testSymbol,
14+
regtestSymbol,
15+
ltcSymbol,
16+
dogeSymbol,
17+
zecSymbol,
18+
bchSymbol,
1119
] as const;
1220

1321
export type BitcoinNetworkSymbol = (typeof supportedNetworks)[number];

networks/cardano/network-cardano-suite-common/src/addressValidator/cardanoAddressValidator.test.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,19 @@
1-
import { asNetworkSymbol } from '@trezor/network-module';
21
import { type AddressType, addressType } from '@trezor/network-module-suite-common-types';
32

3+
import { adaSymbol } from '../supportedNetworks';
44
import { adaValidator } from './cardanoAddressValidator';
55

66
type CardanoIsAddressValidCase = {
7-
address: string;
8-
expected: boolean;
7+
readonly address: string;
8+
readonly expected: boolean;
99
};
1010

1111
type CardanoAddressTypeCase = {
12-
address: string;
13-
expectedAddressType: AddressType | undefined;
12+
readonly address: string;
13+
readonly expectedAddressType: AddressType | undefined;
1414
};
1515

16-
const cardanoIsAddressValidCases: CardanoIsAddressValidCase[] = [
16+
const cardanoIsAddressValidCases: readonly CardanoIsAddressValidCase[] = [
1717
{
1818
address: 'Ae2tdPwUPEYxYNJw1He1esdZYvjmr4NtPzUsGTiqL9zd8ohjZYQcwu6kom7',
1919
expected: true,
@@ -118,7 +118,7 @@ const cardanoIsAddressValidCases: CardanoIsAddressValidCase[] = [
118118
},
119119
];
120120

121-
const cardanoAddressTypeCases: CardanoAddressTypeCase[] = [
121+
const cardanoAddressTypeCases: readonly CardanoAddressTypeCase[] = [
122122
{
123123
address: 'Ae2tdPwUPEYxYNJw1He1esdZYvjmr4NtPzUsGTiqL9zd8ohjZYQcwu6kom7',
124124
expectedAddressType: addressType.ADDRESS,
@@ -138,14 +138,12 @@ describe('cardano validator', () => {
138138
it.each(cardanoIsAddressValidCases)('validates address $address', testCase => {
139139
const { address, expected } = testCase;
140140

141-
expect(adaValidator.isAddressValid(address, asNetworkSymbol('ada'))).toBe(expected);
141+
expect(adaValidator.isAddressValid(address, adaSymbol)).toBe(expected);
142142
});
143143

144144
it.each(cardanoAddressTypeCases)('resolves address type for $address', testCase => {
145145
const { address, expectedAddressType } = testCase;
146146

147-
expect(adaValidator.getAddressType(address, asNetworkSymbol('ada'))).toBe(
148-
expectedAddressType,
149-
);
147+
expect(adaValidator.getAddressType(address, adaSymbol)).toBe(expectedAddressType);
150148
});
151149
});
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
export { createCardanoSuiteCommonNetworkModule } from './CardanoNetworkSuiteCommonNetworkModule';
2+
export { adaSymbol, type CardanoNetworkSymbol } from './supportedNetworks';

networks/cardano/network-cardano-suite-common/src/supportedNetworks.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
import { type NetworkSymbol, asNetworkSymbol } from '@trezor/network-module';
22

3-
export const supportedNetworks = [asNetworkSymbol('ada')] as const;
3+
export const adaSymbol = asNetworkSymbol('ada');
4+
5+
export const supportedNetworks = [adaSymbol] as const;
46

57
export type CardanoNetworkSymbol = (typeof supportedNetworks)[number];
68

0 commit comments

Comments
 (0)