@@ -17,7 +17,7 @@ class InfoGetStatusResult extends AbstractResult
1717
1818 private string $ chainSpecName ;
1919
20- private MinimalBlockInfo $ lastAddedBlockInfo ;
20+ private ? MinimalBlockInfo $ lastAddedBlockInfo ;
2121
2222 private ?NextUpgrade $ nextUpgrade ;
2323
@@ -46,23 +46,28 @@ class InfoGetStatusResult extends AbstractResult
4646
4747 public static function fromJSON (array $ json ): self
4848 {
49+ // Handle optional last_added_block_info (may be null in some node states)
50+ $ lastAddedBlockInfo = isset ($ json ['last_added_block_info ' ])
51+ ? MinimalBlockInfoSerializer::fromJSON ($ json ['last_added_block_info ' ])
52+ : null ;
53+
4954 return new self (
5055 $ json ,
51- $ json ['protocol_version ' ],
52- $ json ['build_version ' ],
53- $ json ['chainspec_name ' ],
54- MinimalBlockInfoSerializer:: fromJSON ( $ json [ ' last_added_block_info ' ]) ,
55- $ json ['next_upgrade ' ] ? NextUpgradeSerializer::fromJSON ($ json ['next_upgrade ' ]) : null ,
56- $ json ['our_public_signing_key ' ],
57- PeerSerializer::fromJsonArray ($ json ['peers ' ]),
58- $ json ['round_length ' ],
59- $ json ['starting_state_root_hash ' ],
60- $ json ['uptime ' ],
61- $ json ['reactor_state ' ],
62- new \DateTime ($ json ['last_progress ' ]),
63- $ json ['latest_switch_block_hash ' ],
64- $ json ['available_block_ranges ' ],
65- $ json ['block_sync ' ]
56+ $ json ['protocol_version ' ] ?? $ json [ ' api_version ' ] ?? '' ,
57+ $ json ['build_version ' ] ?? '' ,
58+ $ json ['chainspec_name ' ] ?? '' ,
59+ $ lastAddedBlockInfo ,
60+ isset ( $ json ['next_upgrade ' ]) ? NextUpgradeSerializer::fromJSON ($ json ['next_upgrade ' ]) : null ,
61+ $ json ['our_public_signing_key ' ] ?? '' ,
62+ isset ( $ json [ ' peers ' ]) ? PeerSerializer::fromJsonArray ($ json ['peers ' ]) : [] ,
63+ $ json ['round_length ' ] ?? '' ,
64+ $ json ['starting_state_root_hash ' ] ?? '' ,
65+ $ json ['uptime ' ] ?? '' ,
66+ $ json ['reactor_state ' ] ?? '' ,
67+ isset ( $ json [ ' last_progress ' ]) ? new \DateTime ($ json ['last_progress ' ]) : new \ DateTime ( ),
68+ $ json ['latest_switch_block_hash ' ] ?? '' ,
69+ $ json ['available_block_ranges ' ] ?? $ json [ ' available_block_range ' ] ?? null ,
70+ $ json ['block_sync ' ] ?? []
6671 );
6772 }
6873
@@ -71,7 +76,7 @@ public function __construct(
7176 string $ protocolVersion ,
7277 string $ buildVersion ,
7378 string $ chainSpecName ,
74- MinimalBlockInfo $ lastAddedBlockInfo ,
79+ ? MinimalBlockInfo $ lastAddedBlockInfo ,
7580 ?NextUpgrade $ nextUpgrade ,
7681 string $ outPublicSigningKey ,
7782 array $ peers ,
@@ -118,7 +123,7 @@ public function getChainSpecName(): string
118123 return $ this ->chainSpecName ;
119124 }
120125
121- public function getLastAddedBlockInfo (): MinimalBlockInfo
126+ public function getLastAddedBlockInfo (): ? MinimalBlockInfo
122127 {
123128 return $ this ->lastAddedBlockInfo ;
124129 }
@@ -133,6 +138,11 @@ public function getOutPublicSigningKey(): string
133138 return $ this ->outPublicSigningKey ;
134139 }
135140
141+ public function getOurPublicSigningKey (): string
142+ {
143+ return $ this ->outPublicSigningKey ;
144+ }
145+
136146 public function getPeers (): array
137147 {
138148 return $ this ->peers ;
0 commit comments