Skip to content

Commit 850cd65

Browse files
Merge pull request #1227 from Tritonn204/xelis-1.19
Xelis 1.19 Compatibility
2 parents 918c5c3 + 4815d63 commit 850cd65

File tree

8 files changed

+229
-137
lines changed

8 files changed

+229
-137
lines changed

lib/wallets/crypto_currency/coins/xelis.dart

Lines changed: 26 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,10 @@ class Xelis extends ElectrumCurrency {
1919
_id = "xelisTestNet";
2020
_name = "tXelis";
2121
_ticker = "XET";
22+
case CryptoCurrencyNetwork.stage:
23+
_id = "xelisStageNet";
24+
_name = "sXelis";
25+
_ticker = "XET";
2226
default:
2327
throw Exception("Unsupported network: $network");
2428
}
@@ -79,6 +83,22 @@ class Xelis extends ElectrumCurrency {
7983
isPrimary: isPrimary,
8084
);
8185

86+
case CryptoCurrencyNetwork.test:
87+
return NodeModel(
88+
host: "stagenet-node.xelis.io",
89+
port: 443,
90+
name: DefaultNodes.defaultName,
91+
id: DefaultNodes.buildId(this),
92+
useSSL: true,
93+
enabled: true,
94+
coinName: identifier,
95+
isFailover: true,
96+
isDown: false,
97+
torEnabled: false,
98+
clearnetEnabled: true,
99+
isPrimary: isPrimary,
100+
);
101+
82102
default:
83103
throw Exception("Unsupported network: $network");
84104
}
@@ -93,7 +113,7 @@ class Xelis extends ElectrumCurrency {
93113
@override
94114
bool validateAddress(String address) {
95115
try {
96-
return libXelis.isAddressValid(address: address);
116+
return libXelis.isAddressValid(address: address, network: network);
97117
} catch (_) {
98118
return false;
99119
}
@@ -133,7 +153,11 @@ class Xelis extends ElectrumCurrency {
133153
Uri defaultBlockExplorer(String txid) {
134154
switch (network) {
135155
case CryptoCurrencyNetwork.main:
136-
return Uri.parse("https://explorer.xelis.io/txs/$txid");
156+
return Uri.parse("https://explorer.xelis.io/tx/$txid");
157+
case CryptoCurrencyNetwork.test:
158+
return Uri.parse("https://testnet-explorer.xelis.io/tx/$txid");
159+
case CryptoCurrencyNetwork.stage:
160+
return Uri.parse("https://stagenet-explorer.xelis.io/tx/$txid");
137161
default:
138162
throw Exception(
139163
"Unsupported network for defaultBlockExplorer(): $network",

lib/wallets/wallet/impl/xelis_wallet.dart

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -57,7 +57,7 @@ class XelisWallet extends LibXelisWallet {
5757
seed: mnemonic,
5858
network: cryptoCurrency.network,
5959
precomputedTablesPath: tablePath,
60-
l1Low: tableState.currentSize.isLow,
60+
stack_l1Low: tableState.currentSize.isLow,
6161
);
6262

6363
await secureStorageInterface.write(
@@ -91,7 +91,7 @@ class XelisWallet extends LibXelisWallet {
9191
password: password,
9292
network: cryptoCurrency.network,
9393
precomputedTablesPath: tablePath,
94-
l1Low: tableState.currentSize.isLow,
94+
stack_l1Low: tableState.currentSize.isLow,
9595
);
9696

9797
final mnemonic = await libXelis.getSeed(wallet);
@@ -123,7 +123,7 @@ class XelisWallet extends LibXelisWallet {
123123
password: password!,
124124
network: cryptoCurrency.network,
125125
precomputedTablesPath: tablePath,
126-
l1Low: tableState.currentSize.isLow,
126+
stack_l1Low: tableState.currentSize.isLow,
127127
);
128128

129129
await _finishInit();

lib/wallets/wallet/intermediate/lib_xelis_wallet.dart

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -226,11 +226,10 @@ extension XelisTableManagement on LibXelisWallet {
226226

227227
try {
228228
Logging.instance.i("Xelis: Generating large tables in background");
229-
230229
final tablePath = await getPrecomputedTablesPath();
231230
await libXelis.updateTables(
232231
precomputedTablesPath: tablePath,
233-
l1Low: state.desiredSize.isLow,
232+
stack_l1Low: state.desiredSize.isLow,
234233
);
235234

236235
await setTableState(

lib/wl_gen/interfaces/lib_xelis_interface.dart

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import 'package:flutter/foundation.dart';
2-
2+
import 'package:xelis_dart_sdk/src/data_transfer_objects/get_asset/max_supply_mode.dart';
3+
34
import '../../providers/progress_report/xelis_table_progress_provider.dart';
45
import '../../wallets/crypto_currency/crypto_currency.dart';
56

@@ -18,7 +19,7 @@ abstract class LibXelisInterface {
1819

1920
Stream<XelisTableProgressState> createProgressReportStream();
2021

21-
bool isAddressValid({required String address});
22+
bool isAddressValid({required String address, required CryptoCurrencyNetwork network});
2223

2324
bool validateSeedWord(String word);
2425

@@ -32,7 +33,7 @@ abstract class LibXelisInterface {
3233

3334
Future<void> updateTables({
3435
required String precomputedTablesPath,
35-
required bool l1Low,
36+
required bool stack_l1Low,
3637
});
3738

3839
Future<String> getSeed(OpaqueXelisWallet wallet);
@@ -46,7 +47,7 @@ abstract class LibXelisInterface {
4647
String? seed,
4748
String? privateKey,
4849
String? precomputedTablesPath,
49-
bool? l1Low,
50+
bool? stack_l1Low,
5051
});
5152

5253
Future<OpaqueXelisWallet> openXelisWallet(
@@ -56,7 +57,7 @@ abstract class LibXelisInterface {
5657
required String password,
5758
required CryptoCurrencyNetwork network,
5859
String? precomputedTablesPath,
59-
bool? l1Low,
60+
bool? stack_l1Low,
6061
});
6162

6263
String getAddress(OpaqueXelisWallet wallet);
@@ -225,6 +226,8 @@ enum XelisTableSize {
225226
low,
226227
full;
227228

229+
// TODO: add more granular table size management interface
230+
// for now, just patching the old system into the new FFI API
228231
bool get isLow => this == XelisTableSize.low;
229232

230233
static XelisTableSize get platformDefault {
@@ -294,7 +297,7 @@ final class NewAsset extends Event {
294297
// final xelis_sdk.AssetData asset;
295298
final String name;
296299
final int decimals;
297-
final int? maxSupply;
300+
final MaxSupplyMode? maxSupply;
298301

299302
NewAsset(this.name, this.decimals, this.maxSupply);
300303
}

0 commit comments

Comments
 (0)