diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index 4b28bade643a3c1a6a7dc65036ef7647fa13842a..230cd12e8919ebf2f200279cd6bca5b1c019f9e2 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -210,6 +210,20 @@ class SubstrateSdk with ChangeNotifier { return result; } + Future<List<int>> getCerts(String address) async { + final idtyIndex = await sdk.webView! + .evalJavascript('api.query.identity.identityIndexOf("$address")'); + log.d(idtyIndex); + + final _certsReceiver = await sdk.webView! + .evalJavascript('api.query.cert.storageIdtyCertMeta($idtyIndex)') ?? + []; + + log.d(_certsReceiver['receivedCount']); + + return [_certsReceiver['receivedCount'], _certsReceiver['issuedCount']]; + } + Future<double> getBalance(String address, {bool isUd = false}) async { double balance = 0.0; if (nodeConnected) { diff --git a/lib/providers/wallet_options.dart b/lib/providers/wallet_options.dart index df905a2296f56e5eff8838c03a3f65ea6f946fa0..f064b3bf78e696e8e90a06c0c9f7e4d886eb0a20 100644 --- a/lib/providers/wallet_options.dart +++ b/lib/providers/wallet_options.dart @@ -174,7 +174,6 @@ class WalletOptionsProvider with ChangeNotifier { } } return SizedBox( - width: 230, child: Column(children: const <Widget>[ Text( 'Statut inconnu', @@ -291,3 +290,44 @@ Widget balance(BuildContext context, String address, double size, }), ]); } + +Map<String, String> certCache = {}; +Widget getCerts(BuildContext context, String address, double size, + [Color _color = Colors.black]) { + return Column(children: <Widget>[ + Consumer<SubstrateSdk>(builder: (context, _sdk, _) { + return FutureBuilder( + future: _sdk.getCerts(address), + builder: (BuildContext context, AsyncSnapshot<List?>? _certs) { + if (_certs!.connectionState != ConnectionState.done || + _certs.hasError) { + if (certCache[address] != null) { + return Text(certCache[address]!, + style: TextStyle( + fontSize: isTall ? size : size * 0.9, color: _color)); + } else { + return SizedBox( + height: 15, + width: 15, + child: CircularProgressIndicator( + color: orangeC, + strokeWidth: 2, + ), + ); + } + } + certCache[address] = _certs.data![0] != 0 + ? "Certifications reçus: ${_certs.data![0].toString()}\nCertifications envoyés: ${_certs.data![1].toString()}" + : ''; + + return Text( + certCache[address]!, + style: TextStyle( + fontSize: isTall ? size : size * 0.9, + color: _color, + ), + ); + }); + }), + ]); +} diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 8a71592df858494fc821cc3c069ac8e5ae9a4e5e..7bf0ef47bf4579cb3937e3f3eeceb2389bd969f6 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -91,23 +91,39 @@ class WalletOptions extends StatelessWidget { crossAxisAlignment: CrossAxisAlignment.start, mainAxisAlignment: MainAxisAlignment.spaceAround, children: <Widget>[ - const Spacer(flex: 1), + const Spacer(flex: 5), avatar(walletProvider), - const Spacer(flex: 1), + // const Spacer(flex: 1), Column(children: <Widget>[ walletName(walletProvider, _walletOptions), SizedBox(height: isTall ? 5 : 0), - balance(context, walletProvider.address.text, 20), - SizedBox(height: isTall ? 5 : 0), - _walletOptions.idtyStatus( - context, _walletOptions.address.text, - isOwner: true), + SizedBox( + width: 350, + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + // SizedBox(height: isTall ? 5 : 0), + balance( + context, walletProvider.address.text, 21), + const SizedBox(width: 30), + Column( + crossAxisAlignment: + CrossAxisAlignment.start, + children: [ + _walletOptions.idtyStatus(context, + _walletOptions.address.text, + isOwner: true), + getCerts(context, + walletProvider.address.text, 15), + ]), + ]), + ), + SizedBox(height: 10 * ratio), ]), - const Spacer(flex: 3), + const Spacer(flex: 1), ]), ); }), - SizedBox(height: 10 * ratio), Expanded( child: SingleChildScrollView( child: Column(children: <Widget>[ diff --git a/lib/screens/wallet_view.dart b/lib/screens/wallet_view.dart index e665aef47e409cc18b925efd2ca23dbd8e1ad0f9..ec6d88632da8f85ab218b49b41b6d2c218149696 100644 --- a/lib/screens/wallet_view.dart +++ b/lib/screens/wallet_view.dart @@ -609,12 +609,11 @@ class WalletViewScreen extends StatelessWidget { ), ]), const SizedBox(height: 25), - Consumer<WalletOptionsProvider>( - builder: (context, walletProvider, _) { - return balance(context, pubkey!, 22); - }), + + balance(context, pubkey!, 22), const SizedBox(height: 10), _walletOptions.idtyStatus(context, pubkey!, isOwner: false), + getCerts(context, pubkey!, 14), // if (username == null && // g1WalletsBox.get(pubkey)?.username == null)