Add timestamps to block(dis)connected notifications.
This commit is contained in:
parent
2ceb6418e7
commit
09ce6f94d3
4 changed files with 20 additions and 14 deletions
|
@ -50,14 +50,16 @@ const (
|
|||
type BlockConnectedNtfn struct {
|
||||
Hash string
|
||||
Height int32
|
||||
Time int64
|
||||
}
|
||||
|
||||
// NewBlockConnectedNtfn returns a new instance which can be used to issue a
|
||||
// blockconnected JSON-RPC notification.
|
||||
func NewBlockConnectedNtfn(hash string, height int32) *BlockConnectedNtfn {
|
||||
func NewBlockConnectedNtfn(hash string, height int32, time int64) *BlockConnectedNtfn {
|
||||
return &BlockConnectedNtfn{
|
||||
Hash: hash,
|
||||
Height: height,
|
||||
Time: time,
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -65,14 +67,16 @@ func NewBlockConnectedNtfn(hash string, height int32) *BlockConnectedNtfn {
|
|||
type BlockDisconnectedNtfn struct {
|
||||
Hash string
|
||||
Height int32
|
||||
Time int64
|
||||
}
|
||||
|
||||
// NewBlockDisconnectedNtfn returns a new instance which can be used to issue a
|
||||
// blockdisconnected JSON-RPC notification.
|
||||
func NewBlockDisconnectedNtfn(hash string, height int32) *BlockDisconnectedNtfn {
|
||||
func NewBlockDisconnectedNtfn(hash string, height int32, time int64) *BlockDisconnectedNtfn {
|
||||
return &BlockDisconnectedNtfn{
|
||||
Hash: hash,
|
||||
Height: height,
|
||||
Time: time,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -31,29 +31,31 @@ func TestChainSvrWsNtfns(t *testing.T) {
|
|||
{
|
||||
name: "blockconnected",
|
||||
newNtfn: func() (interface{}, error) {
|
||||
return btcjson.NewCmd("blockconnected", "123", 100000)
|
||||
return btcjson.NewCmd("blockconnected", "123", 100000, 123456789)
|
||||
},
|
||||
staticNtfn: func() interface{} {
|
||||
return btcjson.NewBlockConnectedNtfn("123", 100000)
|
||||
return btcjson.NewBlockConnectedNtfn("123", 100000, 123456789)
|
||||
},
|
||||
marshalled: `{"jsonrpc":"1.0","method":"blockconnected","params":["123",100000],"id":null}`,
|
||||
marshalled: `{"jsonrpc":"1.0","method":"blockconnected","params":["123",100000,123456789],"id":null}`,
|
||||
unmarshalled: &btcjson.BlockConnectedNtfn{
|
||||
Hash: "123",
|
||||
Height: 100000,
|
||||
Time: 123456789,
|
||||
},
|
||||
},
|
||||
{
|
||||
name: "blockdisconnected",
|
||||
newNtfn: func() (interface{}, error) {
|
||||
return btcjson.NewCmd("blockdisconnected", "123", 100000)
|
||||
return btcjson.NewCmd("blockdisconnected", "123", 100000, 123456789)
|
||||
},
|
||||
staticNtfn: func() interface{} {
|
||||
return btcjson.NewBlockDisconnectedNtfn("123", 100000)
|
||||
return btcjson.NewBlockDisconnectedNtfn("123", 100000, 123456789)
|
||||
},
|
||||
marshalled: `{"jsonrpc":"1.0","method":"blockdisconnected","params":["123",100000],"id":null}`,
|
||||
marshalled: `{"jsonrpc":"1.0","method":"blockdisconnected","params":["123",100000,123456789],"id":null}`,
|
||||
unmarshalled: &btcjson.BlockDisconnectedNtfn{
|
||||
Hash: "123",
|
||||
Height: 100000,
|
||||
Time: 123456789,
|
||||
},
|
||||
},
|
||||
{
|
||||
|
|
|
@ -818,9 +818,9 @@ The following is an overview of the JSON-RPC notifications used for Websocket co
|
|||
|---|---|
|
||||
|Method|blockconnected|
|
||||
|Request|[notifyblocks](#notifyblocks)|
|
||||
|Parameters|1. BlockHash (string) hex-encoded bytes of the attached block hash<br />2. BlockHeight (numeric) height of the attached block|
|
||||
|Parameters|1. BlockHash (string) hex-encoded bytes of the attached block hash<br />2. BlockHeight (numeric) height of the attached block<br />3. BlockTime (numeric) unix time of the attached block|
|
||||
|Description|Notifies when a block has been added to the main chain. Notification is sent to all connected clients.|
|
||||
|Example|Example blockconnected notification for mainnet block 280330 (newlines added for readability):<br />`{`<br /> `"jsonrpc": "1.0",`<br /> `"method": "blockconnected",`<br /> `"params":`<br /> `[`<br /> `"000000000000000004cbdfe387f4df44b914e464ca79838a8ab777b3214dbffd",`<br /> `280330`<br /> `],`<br /> `"id": null`<br />`}`|
|
||||
|Example|Example blockconnected notification for mainnet block 280330 (newlines added for readability):<br />`{`<br /> `"jsonrpc": "1.0",`<br /> `"method": "blockconnected",`<br /> `"params":`<br /> `[`<br /> `"000000000000000004cbdfe387f4df44b914e464ca79838a8ab777b3214dbffd",`<br /> `280330,`<br /> `1389636265`<br /> `],`<br /> `"id": null`<br />`}`|
|
||||
[Return to Overview](#NotificationOverview)<br />
|
||||
|
||||
***
|
||||
|
@ -831,9 +831,9 @@ The following is an overview of the JSON-RPC notifications used for Websocket co
|
|||
|---|---|
|
||||
|Method|blockdisconnected|
|
||||
|Request|[notifyblocks](#notifyblocks)|
|
||||
|Parameters|1. BlockHash (string) hex-encoded bytes of the disconnected block hash<br />2. BlockHeight (numeric) height of the disconnected block|
|
||||
|Parameters|1. BlockHash (string) hex-encoded bytes of the disconnected block hash<br />2. BlockHeight (numeric) height of the disconnected block<br />3. BlockTime (numeric) unix time of the disconnected block|
|
||||
|Description|Notifies when a block has been removed from the main chain. Notification is sent to all connected clients.|
|
||||
|Example|Example blockdisconnected notification for mainnet block 280330 (newlines added for readability):<br />`{`<br /> `"jsonrpc": "1.0",`<br /> `"method": "blockdisconnected",`<br /> `"params":`<br /> `[`<br /> `"000000000000000004cbdfe387f4df44b914e464ca79838a8ab777b3214dbffd",`<br /> `280330`<br /> `],`<br /> `"id": null`<br />`}`|
|
||||
|Example|Example blockdisconnected notification for mainnet block 280330 (newlines added for readability):<br />`{`<br /> `"jsonrpc": "1.0",`<br /> `"method": "blockdisconnected",`<br /> `"params":`<br /> `[`<br /> `"000000000000000004cbdfe387f4df44b914e464ca79838a8ab777b3214dbffd",`<br /> `280330,`<br /> `1389636265`<br /> `],`<br /> `"id": null`<br />`}`|
|
||||
[Return to Overview](#NotificationOverview)<br />
|
||||
|
||||
***
|
||||
|
|
|
@ -411,7 +411,7 @@ func (*wsNotificationManager) notifyBlockConnected(clients map[chan struct{}]*ws
|
|||
|
||||
// Notify interested websocket clients about the connected block.
|
||||
ntfn := btcjson.NewBlockConnectedNtfn(block.Sha().String(),
|
||||
int32(block.Height()))
|
||||
int32(block.Height()), block.MsgBlock().Header.Timestamp.Unix())
|
||||
marshalledJSON, err := btcjson.MarshalCmd(nil, ntfn)
|
||||
if err != nil {
|
||||
rpcsLog.Error("Failed to marshal block connected notification: "+
|
||||
|
@ -435,7 +435,7 @@ func (*wsNotificationManager) notifyBlockDisconnected(clients map[chan struct{}]
|
|||
|
||||
// Notify interested websocket clients about the disconnected block.
|
||||
ntfn := btcjson.NewBlockDisconnectedNtfn(block.Sha().String(),
|
||||
int32(block.Height()))
|
||||
int32(block.Height()), block.MsgBlock().Header.Timestamp.Unix())
|
||||
marshalledJSON, err := btcjson.MarshalCmd(nil, ntfn)
|
||||
if err != nil {
|
||||
rpcsLog.Error("Failed to marshal block disconnected "+
|
||||
|
|
Loading…
Reference in a new issue