From 23b6858a60b1f47d7c4aad10489b6b56ba5e06fb Mon Sep 17 00:00:00 2001
From: poka <poka@p2p.legal>
Date: Thu, 8 Sep 2022 14:37:00 +0200
Subject: [PATCH] add test: identity revocation

---
 integration_test/identity_revocation.dart    | 32 ++++++++++++++++++++
 lib/providers/substrate_sdk.dart             |  6 ++--
 lib/screens/myWallets/manage_membership.dart | 11 ++++---
 3 files changed, 42 insertions(+), 7 deletions(-)
 create mode 100644 integration_test/identity_revocation.dart

diff --git a/integration_test/identity_revocation.dart b/integration_test/identity_revocation.dart
new file mode 100644
index 00000000..a9fd912b
--- /dev/null
+++ b/integration_test/identity_revocation.dart
@@ -0,0 +1,32 @@
+import 'package:flutter_dotenv/flutter_dotenv.dart';
+import 'package:flutter_test/flutter_test.dart';
+import 'package:gecko/globals.dart';
+import 'package:gecko/models/widgets_keys.dart';
+import 'package:integration_test/integration_test.dart';
+import 'general_actions.dart';
+import 'tests_utility.dart';
+
+void main() async {
+  IntegrationTestWidgetsFlutterBinding.ensureInitialized();
+  await dotenv.load();
+
+  testWidgets('Certifications state', (testerLoc) async {
+    tester = testerLoc;
+    // Connect local node and import test chest in background
+    await bkFastStart();
+
+    // Open chest
+    await firstOpenChest();
+
+    // Revoke test3
+    await spawnBlock(number: 5);
+    await tapKey(keyOpenWallet(test3.address));
+    await tapKey(keyManageMembership);
+    await tapKey(keyRevokeIdty);
+    await tapKey(keyConfirm);
+    spawnBlock(duration: 2000);
+    await waitFor('validé !', timeout: const Duration(seconds: 1));
+    await tapKey(keyCloseTransactionScreen, duration: 0);
+    await waitFor('Membre validé !', reverse: true);
+  }, timeout: testTimeout());
+}
diff --git a/lib/providers/substrate_sdk.dart b/lib/providers/substrate_sdk.dart
index beb464d2..643939a5 100644
--- a/lib/providers/substrate_sdk.dart
+++ b/lib/providers/substrate_sdk.dart
@@ -844,13 +844,13 @@ newKeySig: $newKeySig""");
     final idtyIndex = await _getIdentityIndexOf(address);
     final sender = await _setSender(address);
 
-    final prefix = '?'.codeUnits;
+    final prefix = 'revo'.codeUnits;
     final genesisHashString = await getGenesisHash();
     final genesisHash = HEX.decode(genesisHashString.substring(2)) as Uint8List;
     final idtyIndexBytes = _int32bytes(idtyIndex);
-    final oldPubkey = await addressToPubkey(address);
+    // final pubkey = await addressToPubkey(address);
     final messageToSign =
-        Uint8List.fromList(prefix + genesisHash + idtyIndexBytes + oldPubkey);
+        Uint8List.fromList(prefix + idtyIndexBytes + genesisHash);
     final revocationSig = await _signMessage(messageToSign, address, password);
 
     final txInfo = TxInfoData(
diff --git a/lib/screens/myWallets/manage_membership.dart b/lib/screens/myWallets/manage_membership.dart
index a9a9b905..4718fae8 100644
--- a/lib/screens/myWallets/manage_membership.dart
+++ b/lib/screens/myWallets/manage_membership.dart
@@ -86,9 +86,9 @@ class ManageMembership extends StatelessWidget {
               Provider.of<MyWalletsProvider>(context, listen: false);
           SubstrateSdk sub = Provider.of<SubstrateSdk>(context, listen: false);
 
-          MyWalletsProvider mw = MyWalletsProvider();
-          final wallet = mw.getWalletDataByAddress(address);
-          await sub.setCurrentWallet(wallet!);
+          // MyWalletsProvider mw = MyWalletsProvider();
+          // final wallet = mw.getWalletDataByAddress(address);
+          // await sub.setCurrentWallet(wallet!);
 
           WalletData? defaultWallet = myWalletProvider.getDefaultWallet();
           String? pin;
@@ -110,7 +110,10 @@ class ManageMembership extends StatelessWidget {
           Navigator.push(
             context,
             MaterialPageRoute(builder: (context) {
-              return const TransactionInProgress(transType: 'revokeIdty');
+              return TransactionInProgress(
+                  transType: 'revokeIdty',
+                  fromAddress: getShortPubkey(address),
+                  toAddress: getShortPubkey(address));
             }),
           );
         }
-- 
GitLab