Skip to content

Commit

Permalink
Load community nodes from assets (#69)
Browse files Browse the repository at this point in the history
  • Loading branch information
KingGorrin authored Mar 5, 2024
1 parent 24fbfc8 commit fd16d20
Show file tree
Hide file tree
Showing 5 changed files with 53 additions and 5 deletions.
25 changes: 25 additions & 0 deletions .github/workflows/syrius_builder.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,14 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Checkout zenon-node-database repository
uses: actions/checkout@v3
with:
repository: HyperCore-One/zenon-node-database
path: ./node-db
ref: main
- name: Copy community nodes
run: cp -r ./node-db/rpc-nodes-mainnet.json assets/community-nodes.json
- name: Setup environment
run: |
brew install unzip create-dmg
Expand Down Expand Up @@ -63,6 +71,15 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Checkout zenon-node-database repository
uses: actions/checkout@v3
with:
repository: HyperCore-One/zenon-node-database
path: ./node-db
ref: main
- name: Copy community nodes
shell: pwsh
run: Copy-Item .\node-db\rpc-nodes-mainnet.json .\assets\community-nodes.json -Force
- name: Setup Flutter
uses: subosito/[email protected]
with:
Expand All @@ -89,6 +106,14 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v3
- name: Checkout zenon-node-database repository
uses: actions/checkout@v3
with:
repository: HyperCore-One/zenon-node-database
path: ./node-db
ref: main
- name: Copy community nodes
run: cp -r ./node-db/rpc-nodes-mainnet.json assets/community-nodes.json
- name: Prepare environment
run: |
sudo apt update
Expand Down
1 change: 1 addition & 0 deletions assets/community-nodes.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
[]
18 changes: 18 additions & 0 deletions lib/main.dart
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@ import 'package:zenon_syrius_wallet_flutter/screens/screens.dart';
import 'package:zenon_syrius_wallet_flutter/services/htlc_swaps_service.dart';
import 'package:zenon_syrius_wallet_flutter/services/shared_prefs_service.dart';
import 'package:zenon_syrius_wallet_flutter/services/wallet_connect_service.dart';
import 'package:zenon_syrius_wallet_flutter/utils/functions.dart';
import 'package:zenon_syrius_wallet_flutter/utils/utils.dart';
import 'package:zenon_syrius_wallet_flutter/widgets/widgets.dart';
import 'package:znn_sdk_dart/znn_sdk_dart.dart';
Expand Down Expand Up @@ -83,6 +84,9 @@ main() async {
// Setup tray manager
await _setupTrayManager();

// Load default community nodes from assets
await _loadDefaultCommunityNodes();

// Register Hive adapters
Hive.registerAdapter(NotificationTypeAdapter());
Hive.registerAdapter(WalletNotificationAdapter());
Expand Down Expand Up @@ -160,6 +164,20 @@ Future<void> _setupTrayManager() async {
await trayManager.setContextMenu(Menu(items: items));
}

Future<void> _loadDefaultCommunityNodes() async {
try {
var nodes = await loadJsonFromAssets('assets/community-nodes.json')
as List<dynamic>;
kDefaultCommunityNodes = nodes
.map((node) => node.toString())
.where((node) => InputValidators.node(node) == null)
.toList();
} catch (e, stackTrace) {
Logger('main')
.log(Level.WARNING, '_loadDefaultCommunityNodes', e, stackTrace);
}
}

void setup() {
sl.registerSingleton<Zenon>(Zenon());
zenon = sl<Zenon>();
Expand Down
7 changes: 7 additions & 0 deletions lib/utils/functions.dart
Original file line number Diff line number Diff line change
@@ -1,3 +1,5 @@
import 'dart:convert';

import 'package:flutter/services.dart';
import 'package:zenon_syrius_wallet_flutter/utils/global.dart';
import 'package:znn_sdk_dart/znn_sdk_dart.dart';
Expand Down Expand Up @@ -26,3 +28,8 @@ Future<Signature> walletSign(List<int> message) async {
kWalletFile!.close();
}
}

Future<dynamic> loadJsonFromAssets(String filePath) async {
String jsonString = await rootBundle.loadString(filePath);
return jsonDecode(jsonString);
}
7 changes: 2 additions & 5 deletions lib/utils/global.dart
Original file line number Diff line number Diff line change
Expand Up @@ -55,8 +55,5 @@ List<String> kDefaultNodes = [
kLocalhostDefaultNodeUrl,
];

// Community supplied public full nodes
List<String> kDefaultCommunityNodes = [
'wss://my.hc1node.com:35998',
'wss://node.zenonhub.io:35998'
];
// Community supplied public rpc nodes
List<String> kDefaultCommunityNodes = [];

0 comments on commit fd16d20

Please sign in to comment.