From c8933fd5be81e03c22d86441415d5de6643fa8a6 Mon Sep 17 00:00:00 2001 From: guenoel Date: Sun, 26 Feb 2023 00:37:58 +0100 Subject: [PATCH] fix: parse double to int in initCurrencyParameters for iPhone --- lib/providers/substrate_sdk.dart | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index e37d699..33ffdb7 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -96,10 +96,19 @@ class SubstrateSdk with ChangeNotifier { } } - Future _getStorageConst(String call) async { - return (await sdk.webView! + Future _getStorageConst(String call) async { + final result = (await sdk.webView! .evalJavascript('api.consts.$call', wrapPromise: false) ?? [null])[0]; + + return checkInt(result) ?? 0; + } + + int? checkInt(dynamic value) { + if (value is int) return value; + if (value is double) return value.toInt(); + if (value is String) return int.tryParse(value); + return null; } Future _setSender(String address) async { @@ -396,7 +405,7 @@ class SubstrateSdk with ChangeNotifier { currencyParameters['certValidityPeriod'] = await _getStorageConst('cert.validityPeriod.words'); } catch (e) { - log.i('error while getting storageVals (network?)'); + log.i('error while getting storageVals (network?) :: $e'); } log.i('currencyParameters: $currencyParameters'); }