mirror of
https://github.com/aljazceru/breez-lnd.git
synced 2026-01-05 23:44:33 +01:00
lnrpc+lncli: add feature bits to GetInfo
This commit is contained in:
@@ -1965,6 +1965,7 @@ func getInfo(ctx *cli.Context) error {
|
||||
Testnet bool `json:"testnet"`
|
||||
Chains []chain `json:"chains"`
|
||||
Uris []string `json:"uris"`
|
||||
Features map[uint32]*lnrpc.Feature `json:"features"`
|
||||
}{
|
||||
Version: resp.Version,
|
||||
IdentityPubkey: resp.IdentityPubkey,
|
||||
@@ -1982,6 +1983,7 @@ func getInfo(ctx *cli.Context) error {
|
||||
Testnet: resp.Testnet,
|
||||
Chains: chains,
|
||||
Uris: resp.Uris,
|
||||
Features: resp.Features,
|
||||
})
|
||||
return nil
|
||||
}
|
||||
|
||||
1164
lnrpc/rpc.pb.go
1164
lnrpc/rpc.pb.go
File diff suppressed because it is too large
Load Diff
@@ -1539,6 +1539,12 @@ message GetInfoResponse {
|
||||
|
||||
// Whether we consider ourselves synced with the public channel graph.
|
||||
bool synced_to_graph = 18 [json_name = "synced_to_graph"];
|
||||
|
||||
/*
|
||||
Features that our node has advertised in our init message, node
|
||||
announcements and invoices.
|
||||
*/
|
||||
map<uint32, Feature> features = 19 [json_name = "features"];
|
||||
}
|
||||
|
||||
message Chain {
|
||||
|
||||
@@ -2504,6 +2504,13 @@
|
||||
"type": "boolean",
|
||||
"format": "boolean",
|
||||
"description": "Whether we consider ourselves synced with the public channel graph."
|
||||
},
|
||||
"features": {
|
||||
"type": "object",
|
||||
"additionalProperties": {
|
||||
"$ref": "#/definitions/lnrpcFeature"
|
||||
},
|
||||
"description": "Features that our node has advertised in our init message, node\nannouncements and invoices."
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
17
rpcserver.go
17
rpcserver.go
@@ -2215,6 +2215,22 @@ func (r *rpcServer) GetInfo(ctx context.Context,
|
||||
|
||||
isGraphSynced := r.server.authGossiper.SyncManager().IsGraphSynced()
|
||||
|
||||
features := make(map[uint32]*lnrpc.Feature)
|
||||
sets := r.server.featureMgr.ListSets()
|
||||
|
||||
for _, set := range sets {
|
||||
// Get the a list of lnrpc features for each set we support.
|
||||
featureVector := r.server.featureMgr.Get(set)
|
||||
rpcFeatures := invoicesrpc.CreateRPCFeatures(featureVector)
|
||||
|
||||
// Add the features to our map of features, allowing over writing of
|
||||
// existing values because features in different sets with the same bit
|
||||
// are duplicated across sets.
|
||||
for bit, feature := range rpcFeatures {
|
||||
features[bit] = feature
|
||||
}
|
||||
}
|
||||
|
||||
// TODO(roasbeef): add synced height n stuff
|
||||
return &lnrpc.GetInfoResponse{
|
||||
IdentityPubkey: encodedIDPub,
|
||||
@@ -2233,6 +2249,7 @@ func (r *rpcServer) GetInfo(ctx context.Context,
|
||||
BestHeaderTimestamp: int64(bestHeaderTimestamp),
|
||||
Version: build.Version(),
|
||||
SyncedToGraph: isGraphSynced,
|
||||
Features: features,
|
||||
}, nil
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user