dev
dart 49 lines 1.46 KB
Raw
1 enum ZcashNetwork {
2 mainnet,
3 testnet,
4 regtest;
5
6 /// NU6.3 / Ironwood activation height on zkool regtest (see zkool2/misc/zebra.toml).
7 static const int regtestNu63Height = 250;
8
9 String get value => name;
10
11 String get label => switch (this) {
12 ZcashNetwork.mainnet => 'Mainnet',
13 ZcashNetwork.testnet => 'Testnet',
14 ZcashNetwork.regtest => 'Regtest',
15 };
16
17 String get dbFileName => switch (this) {
18 ZcashNetwork.mainnet => 'zec.v2.db',
19 ZcashNetwork.testnet => 'zec.testnet.v2.db',
20 ZcashNetwork.regtest => 'zec.regtest.v2.db',
21 };
22
23 /// Default lightwalletd endpoint for dev networks.
24 String get defaultNodeUri => switch (this) {
25 ZcashNetwork.mainnet => 'zec.rocks:443',
26 ZcashNetwork.testnet => 'testnet.lightwalletd.com:9067',
27 ZcashNetwork.regtest => '10.0.2.2:9067', // 10.0.2.2 - AVD host bridge
28 };
29
30 bool get useSsl => this == ZcashNetwork.mainnet;
31
32 static ZcashNetwork fromName(final String? name) => switch (name) {
33 'testnet' => ZcashNetwork.testnet,
34 'regtest' => ZcashNetwork.regtest,
35 _ => ZcashNetwork.mainnet,
36 };
37
38 static ZcashNetwork fromIndex(final int index) => switch (index) {
39 1 => ZcashNetwork.testnet,
40 2 => ZcashNetwork.regtest,
41 _ => ZcashNetwork.mainnet,
42 };
43
44 int get networkIndex => switch (this) {
45 ZcashNetwork.testnet => 1,
46 ZcashNetwork.regtest => 2,
47 ZcashNetwork.mainnet => 0,
48 };
49 }