diff --git a/lib/models/wallet_data.dart b/lib/models/wallet_data.dart index 034a292..428ad0f 100644 --- a/lib/models/wallet_data.dart +++ b/lib/models/wallet_data.dart @@ -61,6 +61,24 @@ class WalletData extends HiveObject { return "$chest:$number:$name:$derivation:$imageDefaultPath"; } + bool hasIdentity() { + return identityStatus == IdtyStatus.created || + identityStatus == IdtyStatus.confirmed || + identityStatus == IdtyStatus.validated; + } + + bool isMembre() { + return identityStatus == IdtyStatus.validated; + } + + bool exist() { + return balance != 0; + } + + bool hasCustomImage() { + return imageCustomPath != null; + } + // returns only the id part of the ':'-separated string List id() { return [chest, number]; diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index 0e87445..363f474 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -311,15 +311,6 @@ class SubstrateSdk with ChangeNotifier { return totalAmount; } - Future isMember(String address) async { - final isMember = await idtyStatus(address) == IdtyStatus.validated; - final walletData = walletBox.get(address) ?? WalletData(address: address); - walletData.identityStatus = IdtyStatus.validated; - walletBox.put(address, walletData); - // notifyListeners(); - return isMember; - } - Future isSmithGet(String address) async { var idtyIndex = await _getIdentityIndexOf(address); @@ -337,7 +328,9 @@ class SubstrateSdk with ChangeNotifier { Map result = {}; final toStatus = await idtyStatus(to); - if (from != to && await isMember(from)) { + final myWallets = MyWalletsProvider(); + + if (from != to && myWallets.getWalletDataByAddress(from)!.isMembre()) { final removableOn = await getCertValidityPeriod(from, to); final certMeta = await getCertMeta(from); final int nextIssuableOn = certMeta['nextIssuableOn'] ?? 0; diff --git a/lib/screens/myWallets/wallet_options.dart b/lib/screens/myWallets/wallet_options.dart index 690fefa..c70f644 100644 --- a/lib/screens/myWallets/wallet_options.dart +++ b/lib/screens/myWallets/wallet_options.dart @@ -262,28 +262,16 @@ class WalletOptions extends StatelessWidget { walletOptions, currentChest), SizedBox(height: 17 * ratio), - // walletProvider.isMember(context, _walletOptions.address.text) - FutureBuilder( - future: - sub.isMember(walletOptions.address.text), - builder: (BuildContext context, - AsyncSnapshot isMember) { - if (isMember.connectionState != - ConnectionState.done || - isMember.hasError) { - return const Text(''); - } - return Column(children: [ - if (!walletProvider.isDefaultWallet && - !isMember.data!) - deleteWallet(context, walletProvider, - currentChest) - else - const SizedBox(), - if (isMember.data!) - const ManageMembershipButton() - ]); - }), + Column(children: [ + if (!walletProvider.isDefaultWallet && + !wallet.isMembre()) + deleteWallet( + context, walletProvider, currentChest) + else + const SizedBox(), + if (wallet.isMembre()) + const ManageMembershipButton() + ]) ]); }), ]),