J’implémente la révocation d’identité dans Gecko.
Je reproduis le même schéma que pour la migration d’identité:
final prefix = 'revo'.codeUnits;
final genesisHashString = await getGenesisHash();
final genesisHash = HEX.decode(genesisHashString.substring(2)) as Uint8List;
final idtyIndexBytes = _int32bytes(idtyIndex);
final messageToSign =
Uint8List.fromList(prefix + idtyIndexBytes + genesisHash);
final revocationSig = await _signMessage(messageToSign, address, password);
final txInfo = TxInfoData(
'identity',
'revokeIdentity',
sender,
);
final txOptions = [idtyIndex, address, revocationSig];
@HugoTrentesaux m’a aidé à trouver le prefix dans le code de Duniter, ainsi que la composition du message à signer (payload).
Lorsque j’exécute cela, quelque soit le compte et le réseau, l’extrinsic finit en timeout 12s, pas d’erreur.
Sur la GD, en voulant révoquer test1
qui a pour adresse 5FeggKqw2AbnGZF9Y9WPM2QTgzENS3Hit94Ewgmzdg5a3LNa
, voici le message à signer que j’obtiens:
[114, 101, 118, 111, 24, 0, 0, 0, 7, 193, 18, 255, 106, 185, 215, 208, 213, 49, 235, 229, 159, 152, 179, 83, 24, 178, 129, 59, 22, 85, 87, 115, 128, 129, 157, 56, 214, 24, 45, 153]
Est-ce que quelqu’un peut me confirmer que c’est bien le bon message ?
Une idée de ce qui peut provoquer ce timeout ? L’extrinsic est bien identity.revokeIdentity(idtyIndex, revocationKey, revocationSig)
?
Un test d’intégration spécifique qui échoue a été écrit: integration_test/identity_revocation.dart · revocation-mechanisme · clients / Ğecko · GitLab