diff --git a/packages/backend/src/Node.ts b/packages/backend/src/Node.ts index 587b02f..124a6c8 100644 --- a/packages/backend/src/Node.ts +++ b/packages/backend/src/Node.ts @@ -31,6 +31,7 @@ export default class Node { public readonly events = new EventEmitter() as EventEmitter & NodeEvents; + public networkState: Maybe = null; public location: Maybe = null; public lastMessage: Types.Timestamp; public config: string; @@ -239,6 +240,7 @@ export default class Node { private onSystemInterval(message: SystemInterval) { const { + network_state, peers, txcount, cpu, @@ -249,6 +251,10 @@ export default class Node { finalized_hash: finalizedHash } = message; + if (this.networkState !== network_state && network_state) { + this.networkState = network_state; + }; + if (this.peers !== peers || this.txcount !== txcount) { this.peers = peers; this.txcount = txcount; diff --git a/packages/backend/src/message.ts b/packages/backend/src/message.ts index 1a1d41d..f199ada 100644 --- a/packages/backend/src/message.ts +++ b/packages/backend/src/message.ts @@ -53,6 +53,7 @@ export interface SystemConnected { export interface SystemInterval extends BestBlock { msg: 'system.interval'; + network_state: Maybe; txcount: Types.TransactionCount; peers: Types.PeerCount; memory: Maybe; diff --git a/packages/common/src/types.ts b/packages/common/src/types.ts index 4e9025a..7c2e34b 100644 --- a/packages/common/src/types.ts +++ b/packages/common/src/types.ts @@ -24,6 +24,7 @@ export type MemoryUse = Opaque; export type CPUUse = Opaque; export type BytesPerSecond = Opaque; export type NetworkId = Opaque; +export type NetworkState = Opaque; export type BlockDetails = [BlockNumber, BlockHash, Milliseconds, Timestamp, Maybe]; export type NodeDetails = [NodeName, NodeImplementation, NodeVersion, Maybe
, Maybe];