diff --git a/assets/translations/en.json b/assets/translations/en.json index 1a5dae392489c07849860ada862f6be39bb187d1..d9f6bdb3efc043c0682b8ade037971a7ef51ff2c 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 8468eb2d742f13b023f2918de86454bbcd099363..64fa82e18e2353a79c2a14c243e8a02126d8347a 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 bfe26e6dea71577e9fae9d79130254088a066f15..1861a8f25d4b9520fbed00bd2d5583cde4e2bc2f 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 f295975e98ac29a1c6d61f3c10b112f244b2076a..03ff57fc4d5a98085a71af45264223569c0b8926 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<bool> 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<Map<String, int>> certState(String from, String to) async { Map<String, int> result = {}; final toStatus = await idtyStatus(to); diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart index 4718fae82c56afc5ef56f08f1de932c124ed8bc5..d7e5cbf29a4b3d9da2a627ed08f194c89f4c6ef2 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<HomeProvider>(context); + final sub = Provider.of<SubstrateSdk>(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<bool> isSmith) { + if (isSmith.data ?? false) { + return SizedBox( + height: 70, + child: Row( + children: <Widget>[ + 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), ]), ));