mirror of
https://github.com/cypherstack/stack_wallet.git
synced 2024-12-22 19:39:22 +00:00
clean up test epicbox connection
This commit is contained in:
parent
bfba6d9f5d
commit
3fe7f47d8b
3 changed files with 44 additions and 58 deletions
|
@ -36,7 +36,7 @@ import 'package:stackwallet/wallets/crypto_currency/crypto_currency.dart';
|
|||
import 'package:stackwallet/wallets/models/tx_data.dart';
|
||||
import 'package:stackwallet/wallets/wallet/intermediate/bip39_wallet.dart';
|
||||
import 'package:stackwallet/wallets/wallet/supporting/epiccash_wallet_info_extension.dart';
|
||||
import 'package:websocket_universal/websocket_universal.dart';
|
||||
import 'package:web_socket_channel/web_socket_channel.dart';
|
||||
|
||||
//
|
||||
// refactor of https://github.com/cypherstack/stack_wallet/blob/1d9fb4cd069f22492ece690ac788e05b8f8b1209/lib/services/coins/epiccash/epiccash_wallet.dart
|
||||
|
@ -103,15 +103,16 @@ class EpiccashWallet extends Bip39Wallet {
|
|||
}
|
||||
|
||||
Future<EpicBoxConfigModel> getEpicBoxConfig() async {
|
||||
EpicBoxConfigModel? _epicBoxConfig =
|
||||
EpicBoxConfigModel.fromServer(DefaultEpicBoxes.defaultEpicBoxServer);
|
||||
EpicBoxConfigModel? _epicBoxConfig = EpicBoxConfigModel.fromServer(
|
||||
DefaultEpicBoxes.defaultEpicBoxServer,
|
||||
);
|
||||
|
||||
//Get the default Epicbox server and check if it's conected
|
||||
// bool isEpicboxConnected = await _testEpicboxServer(
|
||||
// DefaultEpicBoxes.defaultEpicBoxServer.host, DefaultEpicBoxes.defaultEpicBoxServer.port ?? 443);
|
||||
|
||||
// if (isEpicboxConnected) {
|
||||
//Use default server for as Epicbox config
|
||||
//Use default server for as Epicbox config
|
||||
|
||||
// }
|
||||
// else {
|
||||
|
@ -231,48 +232,33 @@ class EpiccashWallet extends Bip39Wallet {
|
|||
);
|
||||
}
|
||||
|
||||
Future<bool> _testEpicboxServer(String host, int port) async {
|
||||
// TODO use an EpicBoxServerModel as the only param
|
||||
final websocketConnectionUri = 'wss://$host:$port';
|
||||
const connectionOptions = SocketConnectionOptions(
|
||||
pingIntervalMs: 3000,
|
||||
timeoutConnectionMs: 4000,
|
||||
Future<bool> _testEpicboxServer(EpicBoxConfigModel epicboxConfig) async {
|
||||
final host = epicboxConfig.host;
|
||||
final port = epicboxConfig.port ?? 443;
|
||||
WebSocketChannel? channel;
|
||||
try {
|
||||
final uri = Uri.parse('wss://$host:$port');
|
||||
|
||||
/// see ping/pong messages in [logEventStream] stream
|
||||
skipPingMessages: true,
|
||||
channel = WebSocketChannel.connect(
|
||||
uri,
|
||||
);
|
||||
|
||||
/// Set this attribute to `true` if do not need any ping/pong
|
||||
/// messages and ping measurement. Default is `false`
|
||||
pingRestrictionForce: true,
|
||||
);
|
||||
await channel.ready;
|
||||
|
||||
final IMessageProcessor<String, String> textSocketProcessor =
|
||||
SocketSimpleTextProcessor();
|
||||
final textSocketHandler = IWebSocketHandler<String, String>.createClient(
|
||||
websocketConnectionUri,
|
||||
textSocketProcessor,
|
||||
connectionOptions: connectionOptions,
|
||||
);
|
||||
final response = await channel.stream.first.timeout(
|
||||
const Duration(seconds: 2),
|
||||
);
|
||||
|
||||
// Listening to server responses:
|
||||
bool isConnected = true;
|
||||
textSocketHandler.incomingMessagesStream.listen((inMsg) {
|
||||
return response is String && response.contains("Challenge");
|
||||
} catch (_) {
|
||||
Logging.instance.log(
|
||||
'> webSocket got text message from server: "$inMsg" '
|
||||
'[ping: ${textSocketHandler.pingDelayMs}]',
|
||||
level: LogLevel.Info);
|
||||
});
|
||||
|
||||
// Connecting to server:
|
||||
final isTextSocketConnected = await textSocketHandler.connect();
|
||||
if (!isTextSocketConnected) {
|
||||
// ignore: avoid_print
|
||||
Logging.instance.log(
|
||||
'Connection to [$websocketConnectionUri] failed for some reason!',
|
||||
level: LogLevel.Error);
|
||||
isConnected = false;
|
||||
"_testEpicBoxConnection failed on \"$host:$port\"",
|
||||
level: LogLevel.Info,
|
||||
);
|
||||
return false;
|
||||
} finally {
|
||||
await channel?.sink.close();
|
||||
}
|
||||
return isConnected;
|
||||
}
|
||||
|
||||
Future<bool> _putSendToAddresses(
|
||||
|
@ -335,9 +321,9 @@ class EpiccashWallet extends Bip39Wallet {
|
|||
return address;
|
||||
}
|
||||
|
||||
Future<Address> thisWalletAddress(int index, EpicBoxConfigModel epicboxConfig) async {
|
||||
final wallet =
|
||||
await secureStorageInterface.read(key: '${walletId}_wallet');
|
||||
Future<Address> thisWalletAddress(
|
||||
int index, EpicBoxConfigModel epicboxConfig) async {
|
||||
final wallet = await secureStorageInterface.read(key: '${walletId}_wallet');
|
||||
// EpicBoxConfigModel epicboxConfig = await getEpicBoxConfig();
|
||||
|
||||
final walletAddress = await epiccash.LibEpiccash.getAddressInfo(
|
||||
|
@ -594,7 +580,8 @@ class EpiccashWallet extends Bip39Wallet {
|
|||
if (!receiverAddress.startsWith("http://") ||
|
||||
!receiverAddress.startsWith("https://")) {
|
||||
bool isEpicboxConnected = await _testEpicboxServer(
|
||||
epicboxConfig.host, epicboxConfig.port ?? 443);
|
||||
epicboxConfig,
|
||||
);
|
||||
if (!isEpicboxConnected) {
|
||||
throw Exception("Failed to send TX : Unable to reach epicbox server");
|
||||
}
|
||||
|
@ -934,7 +921,6 @@ class EpiccashWallet extends Bip39Wallet {
|
|||
.findAll();
|
||||
final myAddressesSet = myAddresses.toSet();
|
||||
|
||||
|
||||
final transactions = await epiccash.LibEpiccash.getTransactions(
|
||||
wallet: wallet!,
|
||||
refreshFromNode: refreshFromNode,
|
||||
|
|
24
pubspec.lock
24
pubspec.lock
|
@ -1970,6 +1970,14 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.1.0"
|
||||
web:
|
||||
dependency: transitive
|
||||
description:
|
||||
name: web
|
||||
sha256: "97da13628db363c635202ad97068d47c5b8aa555808e7a9411963c533b449b27"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.1"
|
||||
web3dart:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
|
@ -1979,13 +1987,13 @@ packages:
|
|||
source: hosted
|
||||
version: "2.6.1"
|
||||
web_socket_channel:
|
||||
dependency: transitive
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: web_socket_channel
|
||||
sha256: d88238e5eac9a42bb43ca4e721edba3c08c6354d4a53063afaa568516217621b
|
||||
sha256: "58c6666b342a38816b2e7e50ed0f1e261959630becd4c879c4f26bfa14aa5a42"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "2.4.0"
|
||||
version: "2.4.5"
|
||||
webdriver:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -2002,14 +2010,6 @@ packages:
|
|||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "1.2.1"
|
||||
websocket_universal:
|
||||
dependency: "direct main"
|
||||
description:
|
||||
name: websocket_universal
|
||||
sha256: "681e3050bd70b9c94617394f87a021746d24d4b3c8302be8c6b0b2a3e4209d7f"
|
||||
url: "https://pub.dev"
|
||||
source: hosted
|
||||
version: "0.5.2"
|
||||
win32:
|
||||
dependency: transitive
|
||||
description:
|
||||
|
@ -2076,5 +2076,5 @@ packages:
|
|||
source: hosted
|
||||
version: "1.0.0"
|
||||
sdks:
|
||||
dart: ">=3.2.0 <4.0.0"
|
||||
dart: ">=3.3.0 <4.0.0"
|
||||
flutter: ">=3.16.0"
|
||||
|
|
|
@ -22,7 +22,7 @@ dependencies:
|
|||
sdk: flutter
|
||||
ffi: ^2.0.1
|
||||
mutex: ^3.0.0
|
||||
websocket_universal: ^0.5.1
|
||||
web_socket_channel: ^2.4.5
|
||||
|
||||
lelantus:
|
||||
path: ./crypto_plugins/flutter_liblelantus
|
||||
|
|
Loading…
Reference in a new issue