diff --git a/assets/translations/en.json b/assets/translations/en.json index 1a5dae3..d9f6bdb 100644 --- a/assets/translations/en.json +++ b/assets/translations/en.json @@ -189,5 +189,7 @@ "identityMigration": "Identity migration", "areYouSureMigrateIdentity": "Are you sure you want to permanently migrate identity **{}** with balance of **{}** ?", "someoneCreatedYourIdentity": "Someone created your {} identity !", - "confirmMyIdentity": "Confirm my identity" + "confirmMyIdentity": "Confirm my identity", + "revokeMyIdentity": "Revoke my identity", + "youCannotRevokeThisIdentity": "You cannot revoke this identity while\nit is member of the blacksmiths web" } \ No newline at end of file diff --git a/assets/translations/es.json b/assets/translations/es.json index 8468eb2..64fa82e 100644 --- a/assets/translations/es.json +++ b/assets/translations/es.json @@ -189,5 +189,7 @@ "identityMigration": "Identity migration", "areYouSureMigrateIdentity": "Are you sure you want to permanently migrate identity **{}** with balance of **{}** ?", "someoneCreatedYourIdentity": "Someone created your {} identity !", - "confirmMyIdentity": "Confirm my identity" + "confirmMyIdentity": "Confirm my identity", + "revokeMyIdentity": "Revoke my identity", + "youCannotRevokeThisIdentity": "You cannot revoke this identity while\nit is member of the blacksmiths web" } \ No newline at end of file diff --git a/assets/translations/fr.json b/assets/translations/fr.json index bfe26e6..1861a8f 100644 --- a/assets/translations/fr.json +++ b/assets/translations/fr.json @@ -190,5 +190,7 @@ "identityMigration": "Migration de l'identité", "areYouSureMigrateIdentity": "Êtes-vous certain de vouloir migrer définitivement l'identité **{}** et son solde de **{}** ?", "someoneCreatedYourIdentity": "Quelqu'un a créé votre identité {} !", - "confirmMyIdentity": "Confirmer mon identité" + "confirmMyIdentity": "Confirmer mon identité", + "revokeMyIdentity": "Révoquer mon identité", + "youCannotRevokeThisIdentity": "Vous ne pouvez pas révoquer cette identité tant\nqu'elle fait partie de la toile forgerons" } \ No newline at end of file diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart index f295975..03ff57f 100644 --- a/lib/providers/substrate_sdk.dart +++ b/lib/providers/substrate_sdk.dart @@ -242,6 +242,19 @@ class SubstrateSdk with ChangeNotifier { return await idtyStatus(address) == 'Validated'; } + Future isSmithGet(String address) async { + var idtyIndex = await _getIdentityIndexOf(address); + + final Map smithExpireOn = + (await _getStorage('smithsMembership.membership($idtyIndex)')) ?? {}; + + if (smithExpireOn.isEmpty) { + return false; + } else { + return true; + } + } + Future> certState(String from, String to) async { Map result = {}; final toStatus = await idtyStatus(to); diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart index 4718fae..d7e5cbf 100644 --- a/lib/screens/myWallets/manage_membership.dart +++ b/lib/screens/myWallets/manage_membership.dart @@ -28,7 +28,7 @@ class ManageMembership extends StatelessWidget { @override Widget build(BuildContext context) { SystemChrome.setPreferredOrientations([DeviceOrientation.portraitUp]); - // HomeProvider _homeProvider = Provider.of(context); + final sub = Provider.of(context); return Scaffold( backgroundColor: backgroundColor, @@ -43,7 +43,41 @@ class ManageMembership extends StatelessWidget { const SizedBox(height: 20), migrateIdentity(context), const SizedBox(height: 10), - revokeMyIdentity(context) + FutureBuilder( + future: sub.isSmithGet(address), + builder: (BuildContext context, AsyncSnapshot isSmith) { + if (isSmith.data ?? false) { + return SizedBox( + height: 70, + child: Row( + children: [ + const SizedBox(width: 20), + Image.asset( + 'assets/skull_Icon.png', + color: Colors.grey[500], + height: 30, + ), + const SizedBox(width: 16), + Column( + mainAxisAlignment: MainAxisAlignment.center, + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text('revokeMyIdentity'.tr(), + style: TextStyle( + fontSize: 20, + color: Colors.grey[500])), + const SizedBox(height: 5), + Text("youCannotRevokeThisIdentity".tr(), + style: TextStyle( + fontSize: 14, + color: Colors.grey[500])), + ]), + ], + )); + } else { + return revokeMyIdentity(context); + } + }) // const SizedBox(height: 20), ]), ));