| 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 | } |