syntax = "proto3"; package autopilotrpc; option go_package = "github.com/lightningnetwork/lnd/lnrpc/autopilotrpc"; // Autopilot is a service that can be used to get information about the current // state of the daemon's autopilot agent, and also supply it with information // that can be used when deciding where to open channels. service Autopilot { /** Status returns whether the daemon's autopilot agent is active. */ rpc Status(StatusRequest) returns (StatusResponse); /** ModifyStatus is used to modify the status of the autopilot agent, like enabling or disabling it. */ rpc ModifyStatus(ModifyStatusRequest) returns (ModifyStatusResponse); /** QueryScores queries all available autopilot heuristics, in addition to any active combination of these heruristics, for the scores they would give to the given nodes. */ rpc QueryScores(QueryScoresRequest) returns (QueryScoresResponse); /** SetScores attempts to set the scores used by the running autopilot agent, if the external scoring heuristic is enabled. */ rpc SetScores(SetScoresRequest) returns (SetScoresResponse); } message StatusRequest{ } message StatusResponse{ /// Indicates whether the autopilot is active or not. bool active = 1 [json_name = "active"]; } message ModifyStatusRequest{ /// Whether the autopilot agent should be enabled or not. bool enable = 1 [json_name = "enable"]; } message ModifyStatusResponse {} message QueryScoresRequest{ repeated string pubkeys = 1 [json_name = "pubkeys"]; /// If set, we will ignore the local channel state when calculating scores. bool ignore_local_state = 2 [json_name = "no_state"]; } message QueryScoresResponse { message HeuristicResult { string heuristic = 1 [json_name = "heuristic"]; map scores= 2 [json_name = "scores"]; } repeated HeuristicResult results = 1 [json_name = "results"]; } message SetScoresRequest{ /// The name of the heuristic to provide scores to. string heuristic = 1 [json_name = "heuristic"]; /** A map from hex-encoded public keys to scores. Scores must be in the range [0.0, 1.0]. */ map scores = 2 [json_name = "scores"]; } message SetScoresResponse {}