dev
dart 81 lines 2.79 KB
Raw
1 import 'dart:convert';
2 import 'dart:io';
3 import 'utils/utils.dart';
4
5 const configPath = 'tool/.secrets-config.json';
6 const outputPath = 'lib/.secrets.g.dart';
7
8 const evmChainsConfigPath = 'tool/.evm-secrets-config.json';
9 const evmChainsOutputPath = 'cw_evm/lib/.secrets.g.dart';
10
11 const solanaConfigPath = 'tool/.solana-secrets-config.json';
12 const solanaOutputPath = 'cw_solana/lib/.secrets.g.dart';
13
14 const tronConfigPath = 'tool/.tron-secrets-config.json';
15 const tronOutputPath = 'cw_tron/lib/.secrets.g.dart';
16
17 const bitcoinConfigPath = 'tool/.bitcoin-secrets-config.json';
18 const bitcoinOutputPath = 'cw_bitcoin/lib/.secrets.g.dart';
19
20 const nanoConfigPath = 'tool/.nano-secrets-config.json';
21 const nanoOutputPath = 'cw_nano/lib/.secrets.g.dart';
22
23 Future<void> main(List<String> args) async => importSecretsConfig();
24
25 Future<void> importSecretsConfig() async {
26 final outputFile = File(outputPath);
27 final input = json.decode(File(configPath).readAsStringSync()) as Map<String, dynamic>;
28 final output = input.keys.fold('', (String acc, String val) => acc + generateConst(val, input));
29
30 final evmChainsOutputFile = File(evmChainsOutputPath);
31 final evmChainsInput =
32 json.decode(File(evmChainsConfigPath).readAsStringSync()) as Map<String, dynamic>;
33 final evmChainsOutput = evmChainsInput.keys
34 .fold('', (String acc, String val) => acc + generateConst(val, evmChainsInput));
35
36 final solanaOutputFile = File(solanaOutputPath);
37 final solanaInput =
38 json.decode(File(solanaConfigPath).readAsStringSync()) as Map<String, dynamic>;
39 final solanaOutput =
40 solanaInput.keys.fold('', (String acc, String val) => acc + generateConst(val, solanaInput));
41
42 final tronOutputFile = File(tronOutputPath);
43 final tronInput = json.decode(File(tronConfigPath).readAsStringSync()) as Map<String, dynamic>;
44 final tronOutput =
45 tronInput.keys.fold('', (String acc, String val) => acc + generateConst(val, tronInput));
46
47 final nanoOutputFile = File(nanoOutputPath);
48 final nanoInput = json.decode(File(nanoConfigPath).readAsStringSync()) as Map<String, dynamic>;
49 final nanoOutput =
50 nanoInput.keys.fold('', (String acc, String val) => acc + generateConst(val, nanoInput));
51
52 if (outputFile.existsSync()) {
53 await outputFile.delete();
54 }
55
56 await outputFile.writeAsString(output);
57
58 if (evmChainsOutputFile.existsSync()) {
59 await evmChainsOutputFile.delete();
60 }
61
62 await evmChainsOutputFile.writeAsString(evmChainsOutput);
63
64 if (solanaOutputFile.existsSync()) {
65 await solanaOutputFile.delete();
66 }
67
68 await solanaOutputFile.writeAsString(solanaOutput);
69
70 if (tronOutputFile.existsSync()) {
71 await tronOutputFile.delete();
72 }
73
74 await tronOutputFile.writeAsString(tronOutput);
75
76 if (nanoOutputFile.existsSync()) {
77 await nanoOutputFile.delete();
78 }
79
80 await nanoOutputFile.writeAsString(nanoOutput);
81 }