From 98175772e43eb4697ea6ccf5cf19ad23896933b0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20M=C3=BCller?= Date: Thu, 19 Sep 2019 10:32:04 +0200 Subject: [PATCH] Process GRANDPA authority id (#179) * Remove pubkey * Remove superfluous whitespace * Assign GRANDPA authority id as address --- packages/backend/src/Node.ts | 11 ++++++----- packages/backend/src/message.ts | 2 +- packages/frontend/src/Connection.ts | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/backend/src/Node.ts b/packages/backend/src/Node.ts index 4ac119e..6b6b015 100644 --- a/packages/backend/src/Node.ts +++ b/packages/backend/src/Node.ts @@ -37,12 +37,12 @@ export default class Node { public readonly chain: Types.ChainLabel; public readonly implementation: Types.NodeImplementation; public readonly version: Types.NodeVersion; - public readonly address: Maybe; public readonly networkId: Maybe; public readonly authority: boolean; public readonly events = new EventEmitter() as EventEmitter & NodeEvents; + public address: Maybe = null; public networkState: Maybe = null; public location: Maybe = null; public lastMessage: Types.Timestamp; @@ -81,7 +81,6 @@ export default class Node { config: string, implentation: Types.NodeImplementation, version: Types.NodeVersion, - address: Maybe, networkId: Maybe, authority: boolean, messages: Array, @@ -93,7 +92,6 @@ export default class Node { this.config = config; this.implementation = implentation; this.version = version; - this.address = address; this.authority = authority; this.networkId = networkId; this.lastMessage = timestamp(); @@ -141,9 +139,9 @@ export default class Node { if (message.msg === "system.connected") { cleanup(); - const { name, chain, config, implementation, version, pubkey, authority, network_id: networkId } = message; + const { name, chain, config, implementation, version, authority, network_id: networkId } = message; - resolve(new Node(ip, socket, name, chain, config, implementation, version, pubkey, networkId, authority === true, messages)); + resolve(new Node(ip, socket, name, chain, config, implementation, version, networkId, authority === true, messages)); } else { if (messages.length === 10) { messages.shift(); @@ -336,6 +334,7 @@ export default class Node { private onAfgAuthoritySet(message: AfgAuthoritySet) { const { + authority_id: authorityId, authority_set_id: authoritySetId, hash, number, @@ -345,6 +344,8 @@ export default class Node { // string by substrate before sending it. const authorities = JSON.parse(String(message.authorities)) as Types.Authorities; + this.address = authorityId; + if (JSON.stringify(this.authorities) !== String(message.authorities) || this.authoritySetId !== authoritySetId) { const no = parseInt(String(number), 10) as Types.BlockNumber; diff --git a/packages/backend/src/message.ts b/packages/backend/src/message.ts index eb46c76..5ae5fee 100644 --- a/packages/backend/src/message.ts +++ b/packages/backend/src/message.ts @@ -68,6 +68,7 @@ export interface AfgReceivedCommit extends AfgReceived { export interface AfgAuthoritySet { msg: 'afg.authority_set'; ts: Date; + authority_id: Types.Address, authorities: Types.Authorities; authority_set_id: Types.AuthoritySetId; number: Types.BlockNumber; @@ -81,7 +82,6 @@ export interface SystemConnected { config: string; implementation: Types.NodeImplementation; version: Types.NodeVersion; - pubkey: Maybe; authority: Maybe; network_id: Maybe; } diff --git a/packages/frontend/src/Connection.ts b/packages/frontend/src/Connection.ts index 944186c..2b733ea 100644 --- a/packages/frontend/src/Connection.ts +++ b/packages/frontend/src/Connection.ts @@ -280,7 +280,7 @@ export class Connection { case Actions.AfgFinalized: { const [nodeAddress, finalizedNumber, finalizedHash] = message.payload; const no = parseInt(String(finalizedNumber), 10) as Types.BlockNumber; - afg.receivedFinalized( nodeAddress, no, finalizedHash); + afg.receivedFinalized(nodeAddress, no, finalizedHash); break; }