lnrpc: OpenChannel and CloseChannel now return "status updates"

This commit modifies the prior protos to make the open/close channel
RPC commands return the “union” status update rather than a concrete
item of that union directly. With this change, RPC clients can now
receive status updates of the current state of the opening or closing
channel.
This commit is contained in:
Olaoluwa Osuntokun 2016-08-30 16:42:23 -07:00
parent 164db26a11
commit d548e56069
No known key found for this signature in database
GPG Key ID: 9CC5B105D03521A2
2 changed files with 215 additions and 134 deletions

@ -33,6 +33,7 @@ It has these top-level messages:
ChannelCloseUpdate ChannelCloseUpdate
CloseChannelRequest CloseChannelRequest
CloseStatusUpdate CloseStatusUpdate
PendingUpdate
OpenChannelRequest OpenChannelRequest
OpenStatusUpdate OpenStatusUpdate
PendingChannelRequest PendingChannelRequest
@ -404,6 +405,7 @@ func (m *CloseChannelRequest) GetChannelPoint() *ChannelPoint {
type CloseStatusUpdate struct { type CloseStatusUpdate struct {
// Types that are valid to be assigned to Update: // Types that are valid to be assigned to Update:
// *CloseStatusUpdate_ClosePending
// *CloseStatusUpdate_Confirmation // *CloseStatusUpdate_Confirmation
// *CloseStatusUpdate_ChanClose // *CloseStatusUpdate_ChanClose
Update isCloseStatusUpdate_Update `protobuf_oneof:"update"` Update isCloseStatusUpdate_Update `protobuf_oneof:"update"`
@ -418,13 +420,17 @@ type isCloseStatusUpdate_Update interface {
isCloseStatusUpdate_Update() isCloseStatusUpdate_Update()
} }
type CloseStatusUpdate_ClosePending struct {
ClosePending *PendingUpdate `protobuf:"bytes,1,opt,name=close_pending,oneof"`
}
type CloseStatusUpdate_Confirmation struct { type CloseStatusUpdate_Confirmation struct {
Confirmation *ConfirmationUpdate `protobuf:"bytes,1,opt,name=confirmation,oneof"` Confirmation *ConfirmationUpdate `protobuf:"bytes,2,opt,name=confirmation,oneof"`
} }
type CloseStatusUpdate_ChanClose struct { type CloseStatusUpdate_ChanClose struct {
ChanClose *ChannelCloseUpdate `protobuf:"bytes,2,opt,name=chan_close,oneof"` ChanClose *ChannelCloseUpdate `protobuf:"bytes,3,opt,name=chan_close,oneof"`
} }
func (*CloseStatusUpdate_ClosePending) isCloseStatusUpdate_Update() {}
func (*CloseStatusUpdate_Confirmation) isCloseStatusUpdate_Update() {} func (*CloseStatusUpdate_Confirmation) isCloseStatusUpdate_Update() {}
func (*CloseStatusUpdate_ChanClose) isCloseStatusUpdate_Update() {} func (*CloseStatusUpdate_ChanClose) isCloseStatusUpdate_Update() {}
@ -435,6 +441,13 @@ func (m *CloseStatusUpdate) GetUpdate() isCloseStatusUpdate_Update {
return nil return nil
} }
func (m *CloseStatusUpdate) GetClosePending() *PendingUpdate {
if x, ok := m.GetUpdate().(*CloseStatusUpdate_ClosePending); ok {
return x.ClosePending
}
return nil
}
func (m *CloseStatusUpdate) GetConfirmation() *ConfirmationUpdate { func (m *CloseStatusUpdate) GetConfirmation() *ConfirmationUpdate {
if x, ok := m.GetUpdate().(*CloseStatusUpdate_Confirmation); ok { if x, ok := m.GetUpdate().(*CloseStatusUpdate_Confirmation); ok {
return x.Confirmation return x.Confirmation
@ -452,6 +465,7 @@ func (m *CloseStatusUpdate) GetChanClose() *ChannelCloseUpdate {
// XXX_OneofFuncs is for the internal use of the proto package. // XXX_OneofFuncs is for the internal use of the proto package.
func (*CloseStatusUpdate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { func (*CloseStatusUpdate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _CloseStatusUpdate_OneofMarshaler, _CloseStatusUpdate_OneofUnmarshaler, _CloseStatusUpdate_OneofSizer, []interface{}{ return _CloseStatusUpdate_OneofMarshaler, _CloseStatusUpdate_OneofUnmarshaler, _CloseStatusUpdate_OneofSizer, []interface{}{
(*CloseStatusUpdate_ClosePending)(nil),
(*CloseStatusUpdate_Confirmation)(nil), (*CloseStatusUpdate_Confirmation)(nil),
(*CloseStatusUpdate_ChanClose)(nil), (*CloseStatusUpdate_ChanClose)(nil),
} }
@ -461,13 +475,18 @@ func _CloseStatusUpdate_OneofMarshaler(msg proto.Message, b *proto.Buffer) error
m := msg.(*CloseStatusUpdate) m := msg.(*CloseStatusUpdate)
// update // update
switch x := m.Update.(type) { switch x := m.Update.(type) {
case *CloseStatusUpdate_Confirmation: case *CloseStatusUpdate_ClosePending:
b.EncodeVarint(1<<3 | proto.WireBytes) b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ClosePending); err != nil {
return err
}
case *CloseStatusUpdate_Confirmation:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Confirmation); err != nil { if err := b.EncodeMessage(x.Confirmation); err != nil {
return err return err
} }
case *CloseStatusUpdate_ChanClose: case *CloseStatusUpdate_ChanClose:
b.EncodeVarint(2<<3 | proto.WireBytes) b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ChanClose); err != nil { if err := b.EncodeMessage(x.ChanClose); err != nil {
return err return err
} }
@ -481,7 +500,15 @@ func _CloseStatusUpdate_OneofMarshaler(msg proto.Message, b *proto.Buffer) error
func _CloseStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { func _CloseStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*CloseStatusUpdate) m := msg.(*CloseStatusUpdate)
switch tag { switch tag {
case 1: // update.confirmation case 1: // update.close_pending
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(PendingUpdate)
err := b.DecodeMessage(msg)
m.Update = &CloseStatusUpdate_ClosePending{msg}
return true, err
case 2: // update.confirmation
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
@ -489,7 +516,7 @@ func _CloseStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *pr
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Update = &CloseStatusUpdate_Confirmation{msg} m.Update = &CloseStatusUpdate_Confirmation{msg}
return true, err return true, err
case 2: // update.chan_close case 3: // update.chan_close
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
@ -506,14 +533,19 @@ func _CloseStatusUpdate_OneofSizer(msg proto.Message) (n int) {
m := msg.(*CloseStatusUpdate) m := msg.(*CloseStatusUpdate)
// update // update
switch x := m.Update.(type) { switch x := m.Update.(type) {
case *CloseStatusUpdate_ClosePending:
s := proto.Size(x.ClosePending)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *CloseStatusUpdate_Confirmation: case *CloseStatusUpdate_Confirmation:
s := proto.Size(x.Confirmation) s := proto.Size(x.Confirmation)
n += proto.SizeVarint(1<<3 | proto.WireBytes) n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *CloseStatusUpdate_ChanClose: case *CloseStatusUpdate_ChanClose:
s := proto.Size(x.ChanClose) s := proto.Size(x.ChanClose)
n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case nil: case nil:
@ -523,6 +555,15 @@ func _CloseStatusUpdate_OneofSizer(msg proto.Message) (n int) {
return n return n
} }
type PendingUpdate struct {
Txid []byte `protobuf:"bytes,1,opt,name=txid,proto3" json:"txid,omitempty"`
}
func (m *PendingUpdate) Reset() { *m = PendingUpdate{} }
func (m *PendingUpdate) String() string { return proto.CompactTextString(m) }
func (*PendingUpdate) ProtoMessage() {}
func (*PendingUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} }
type OpenChannelRequest struct { type OpenChannelRequest struct {
TargetPeerId int32 `protobuf:"varint,1,opt,name=target_peer_id" json:"target_peer_id,omitempty"` TargetPeerId int32 `protobuf:"varint,1,opt,name=target_peer_id" json:"target_peer_id,omitempty"`
TargetNode *LightningAddress `protobuf:"bytes,2,opt,name=target_node" json:"target_node,omitempty"` TargetNode *LightningAddress `protobuf:"bytes,2,opt,name=target_node" json:"target_node,omitempty"`
@ -535,7 +576,7 @@ type OpenChannelRequest struct {
func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} } func (m *OpenChannelRequest) Reset() { *m = OpenChannelRequest{} }
func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) } func (m *OpenChannelRequest) String() string { return proto.CompactTextString(m) }
func (*OpenChannelRequest) ProtoMessage() {} func (*OpenChannelRequest) ProtoMessage() {}
func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{24} } func (*OpenChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} }
func (m *OpenChannelRequest) GetTargetNode() *LightningAddress { func (m *OpenChannelRequest) GetTargetNode() *LightningAddress {
if m != nil { if m != nil {
@ -546,6 +587,7 @@ func (m *OpenChannelRequest) GetTargetNode() *LightningAddress {
type OpenStatusUpdate struct { type OpenStatusUpdate struct {
// Types that are valid to be assigned to Update: // Types that are valid to be assigned to Update:
// *OpenStatusUpdate_ChanPending
// *OpenStatusUpdate_Confirmation // *OpenStatusUpdate_Confirmation
// *OpenStatusUpdate_ChanOpen // *OpenStatusUpdate_ChanOpen
Update isOpenStatusUpdate_Update `protobuf_oneof:"update"` Update isOpenStatusUpdate_Update `protobuf_oneof:"update"`
@ -554,19 +596,23 @@ type OpenStatusUpdate struct {
func (m *OpenStatusUpdate) Reset() { *m = OpenStatusUpdate{} } func (m *OpenStatusUpdate) Reset() { *m = OpenStatusUpdate{} }
func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) } func (m *OpenStatusUpdate) String() string { return proto.CompactTextString(m) }
func (*OpenStatusUpdate) ProtoMessage() {} func (*OpenStatusUpdate) ProtoMessage() {}
func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{25} } func (*OpenStatusUpdate) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} }
type isOpenStatusUpdate_Update interface { type isOpenStatusUpdate_Update interface {
isOpenStatusUpdate_Update() isOpenStatusUpdate_Update()
} }
type OpenStatusUpdate_ChanPending struct {
ChanPending *PendingUpdate `protobuf:"bytes,1,opt,name=chan_pending,oneof"`
}
type OpenStatusUpdate_Confirmation struct { type OpenStatusUpdate_Confirmation struct {
Confirmation *ConfirmationUpdate `protobuf:"bytes,1,opt,name=confirmation,oneof"` Confirmation *ConfirmationUpdate `protobuf:"bytes,2,opt,name=confirmation,oneof"`
} }
type OpenStatusUpdate_ChanOpen struct { type OpenStatusUpdate_ChanOpen struct {
ChanOpen *ChannelOpenUpdate `protobuf:"bytes,2,opt,name=chan_open,oneof"` ChanOpen *ChannelOpenUpdate `protobuf:"bytes,3,opt,name=chan_open,oneof"`
} }
func (*OpenStatusUpdate_ChanPending) isOpenStatusUpdate_Update() {}
func (*OpenStatusUpdate_Confirmation) isOpenStatusUpdate_Update() {} func (*OpenStatusUpdate_Confirmation) isOpenStatusUpdate_Update() {}
func (*OpenStatusUpdate_ChanOpen) isOpenStatusUpdate_Update() {} func (*OpenStatusUpdate_ChanOpen) isOpenStatusUpdate_Update() {}
@ -577,6 +623,13 @@ func (m *OpenStatusUpdate) GetUpdate() isOpenStatusUpdate_Update {
return nil return nil
} }
func (m *OpenStatusUpdate) GetChanPending() *PendingUpdate {
if x, ok := m.GetUpdate().(*OpenStatusUpdate_ChanPending); ok {
return x.ChanPending
}
return nil
}
func (m *OpenStatusUpdate) GetConfirmation() *ConfirmationUpdate { func (m *OpenStatusUpdate) GetConfirmation() *ConfirmationUpdate {
if x, ok := m.GetUpdate().(*OpenStatusUpdate_Confirmation); ok { if x, ok := m.GetUpdate().(*OpenStatusUpdate_Confirmation); ok {
return x.Confirmation return x.Confirmation
@ -594,6 +647,7 @@ func (m *OpenStatusUpdate) GetChanOpen() *ChannelOpenUpdate {
// XXX_OneofFuncs is for the internal use of the proto package. // XXX_OneofFuncs is for the internal use of the proto package.
func (*OpenStatusUpdate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) { func (*OpenStatusUpdate) XXX_OneofFuncs() (func(msg proto.Message, b *proto.Buffer) error, func(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error), func(msg proto.Message) (n int), []interface{}) {
return _OpenStatusUpdate_OneofMarshaler, _OpenStatusUpdate_OneofUnmarshaler, _OpenStatusUpdate_OneofSizer, []interface{}{ return _OpenStatusUpdate_OneofMarshaler, _OpenStatusUpdate_OneofUnmarshaler, _OpenStatusUpdate_OneofSizer, []interface{}{
(*OpenStatusUpdate_ChanPending)(nil),
(*OpenStatusUpdate_Confirmation)(nil), (*OpenStatusUpdate_Confirmation)(nil),
(*OpenStatusUpdate_ChanOpen)(nil), (*OpenStatusUpdate_ChanOpen)(nil),
} }
@ -603,13 +657,18 @@ func _OpenStatusUpdate_OneofMarshaler(msg proto.Message, b *proto.Buffer) error
m := msg.(*OpenStatusUpdate) m := msg.(*OpenStatusUpdate)
// update // update
switch x := m.Update.(type) { switch x := m.Update.(type) {
case *OpenStatusUpdate_Confirmation: case *OpenStatusUpdate_ChanPending:
b.EncodeVarint(1<<3 | proto.WireBytes) b.EncodeVarint(1<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ChanPending); err != nil {
return err
}
case *OpenStatusUpdate_Confirmation:
b.EncodeVarint(2<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.Confirmation); err != nil { if err := b.EncodeMessage(x.Confirmation); err != nil {
return err return err
} }
case *OpenStatusUpdate_ChanOpen: case *OpenStatusUpdate_ChanOpen:
b.EncodeVarint(2<<3 | proto.WireBytes) b.EncodeVarint(3<<3 | proto.WireBytes)
if err := b.EncodeMessage(x.ChanOpen); err != nil { if err := b.EncodeMessage(x.ChanOpen); err != nil {
return err return err
} }
@ -623,7 +682,15 @@ func _OpenStatusUpdate_OneofMarshaler(msg proto.Message, b *proto.Buffer) error
func _OpenStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) { func _OpenStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *proto.Buffer) (bool, error) {
m := msg.(*OpenStatusUpdate) m := msg.(*OpenStatusUpdate)
switch tag { switch tag {
case 1: // update.confirmation case 1: // update.chan_pending
if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType
}
msg := new(PendingUpdate)
err := b.DecodeMessage(msg)
m.Update = &OpenStatusUpdate_ChanPending{msg}
return true, err
case 2: // update.confirmation
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
@ -631,7 +698,7 @@ func _OpenStatusUpdate_OneofUnmarshaler(msg proto.Message, tag, wire int, b *pro
err := b.DecodeMessage(msg) err := b.DecodeMessage(msg)
m.Update = &OpenStatusUpdate_Confirmation{msg} m.Update = &OpenStatusUpdate_Confirmation{msg}
return true, err return true, err
case 2: // update.chan_open case 3: // update.chan_open
if wire != proto.WireBytes { if wire != proto.WireBytes {
return true, proto.ErrInternalBadWireType return true, proto.ErrInternalBadWireType
} }
@ -648,14 +715,19 @@ func _OpenStatusUpdate_OneofSizer(msg proto.Message) (n int) {
m := msg.(*OpenStatusUpdate) m := msg.(*OpenStatusUpdate)
// update // update
switch x := m.Update.(type) { switch x := m.Update.(type) {
case *OpenStatusUpdate_ChanPending:
s := proto.Size(x.ChanPending)
n += proto.SizeVarint(1<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s))
n += s
case *OpenStatusUpdate_Confirmation: case *OpenStatusUpdate_Confirmation:
s := proto.Size(x.Confirmation) s := proto.Size(x.Confirmation)
n += proto.SizeVarint(1<<3 | proto.WireBytes) n += proto.SizeVarint(2<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case *OpenStatusUpdate_ChanOpen: case *OpenStatusUpdate_ChanOpen:
s := proto.Size(x.ChanOpen) s := proto.Size(x.ChanOpen)
n += proto.SizeVarint(2<<3 | proto.WireBytes) n += proto.SizeVarint(3<<3 | proto.WireBytes)
n += proto.SizeVarint(uint64(s)) n += proto.SizeVarint(uint64(s))
n += s n += s
case nil: case nil:
@ -672,7 +744,7 @@ type PendingChannelRequest struct {
func (m *PendingChannelRequest) Reset() { *m = PendingChannelRequest{} } func (m *PendingChannelRequest) Reset() { *m = PendingChannelRequest{} }
func (m *PendingChannelRequest) String() string { return proto.CompactTextString(m) } func (m *PendingChannelRequest) String() string { return proto.CompactTextString(m) }
func (*PendingChannelRequest) ProtoMessage() {} func (*PendingChannelRequest) ProtoMessage() {}
func (*PendingChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{26} } func (*PendingChannelRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} }
type PendingChannelResponse struct { type PendingChannelResponse struct {
PendingChannels []*PendingChannelResponse_PendingChannel `protobuf:"bytes,1,rep,name=pending_channels" json:"pending_channels,omitempty"` PendingChannels []*PendingChannelResponse_PendingChannel `protobuf:"bytes,1,rep,name=pending_channels" json:"pending_channels,omitempty"`
@ -681,7 +753,7 @@ type PendingChannelResponse struct {
func (m *PendingChannelResponse) Reset() { *m = PendingChannelResponse{} } func (m *PendingChannelResponse) Reset() { *m = PendingChannelResponse{} }
func (m *PendingChannelResponse) String() string { return proto.CompactTextString(m) } func (m *PendingChannelResponse) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse) ProtoMessage() {} func (*PendingChannelResponse) ProtoMessage() {}
func (*PendingChannelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{27} } func (*PendingChannelResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} }
func (m *PendingChannelResponse) GetPendingChannels() []*PendingChannelResponse_PendingChannel { func (m *PendingChannelResponse) GetPendingChannels() []*PendingChannelResponse_PendingChannel {
if m != nil { if m != nil {
@ -705,7 +777,7 @@ func (m *PendingChannelResponse_PendingChannel) Reset() { *m = PendingCh
func (m *PendingChannelResponse_PendingChannel) String() string { return proto.CompactTextString(m) } func (m *PendingChannelResponse_PendingChannel) String() string { return proto.CompactTextString(m) }
func (*PendingChannelResponse_PendingChannel) ProtoMessage() {} func (*PendingChannelResponse_PendingChannel) ProtoMessage() {}
func (*PendingChannelResponse_PendingChannel) Descriptor() ([]byte, []int) { func (*PendingChannelResponse_PendingChannel) Descriptor() ([]byte, []int) {
return fileDescriptor0, []int{27, 0} return fileDescriptor0, []int{28, 0}
} }
type WalletBalanceRequest struct { type WalletBalanceRequest struct {
@ -715,7 +787,7 @@ type WalletBalanceRequest struct {
func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} } func (m *WalletBalanceRequest) Reset() { *m = WalletBalanceRequest{} }
func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) } func (m *WalletBalanceRequest) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceRequest) ProtoMessage() {} func (*WalletBalanceRequest) ProtoMessage() {}
func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{28} } func (*WalletBalanceRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} }
type WalletBalanceResponse struct { type WalletBalanceResponse struct {
Balance float64 `protobuf:"fixed64,1,opt,name=balance" json:"balance,omitempty"` Balance float64 `protobuf:"fixed64,1,opt,name=balance" json:"balance,omitempty"`
@ -724,7 +796,7 @@ type WalletBalanceResponse struct {
func (m *WalletBalanceResponse) Reset() { *m = WalletBalanceResponse{} } func (m *WalletBalanceResponse) Reset() { *m = WalletBalanceResponse{} }
func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) } func (m *WalletBalanceResponse) String() string { return proto.CompactTextString(m) }
func (*WalletBalanceResponse) ProtoMessage() {} func (*WalletBalanceResponse) ProtoMessage() {}
func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{29} } func (*WalletBalanceResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} }
type ShowRoutingTableRequest struct { type ShowRoutingTableRequest struct {
} }
@ -732,7 +804,7 @@ type ShowRoutingTableRequest struct {
func (m *ShowRoutingTableRequest) Reset() { *m = ShowRoutingTableRequest{} } func (m *ShowRoutingTableRequest) Reset() { *m = ShowRoutingTableRequest{} }
func (m *ShowRoutingTableRequest) String() string { return proto.CompactTextString(m) } func (m *ShowRoutingTableRequest) String() string { return proto.CompactTextString(m) }
func (*ShowRoutingTableRequest) ProtoMessage() {} func (*ShowRoutingTableRequest) ProtoMessage() {}
func (*ShowRoutingTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{30} } func (*ShowRoutingTableRequest) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} }
type ShowRoutingTableResponse struct { type ShowRoutingTableResponse struct {
Rt string `protobuf:"bytes,1,opt,name=rt" json:"rt,omitempty"` Rt string `protobuf:"bytes,1,opt,name=rt" json:"rt,omitempty"`
@ -741,7 +813,7 @@ type ShowRoutingTableResponse struct {
func (m *ShowRoutingTableResponse) Reset() { *m = ShowRoutingTableResponse{} } func (m *ShowRoutingTableResponse) Reset() { *m = ShowRoutingTableResponse{} }
func (m *ShowRoutingTableResponse) String() string { return proto.CompactTextString(m) } func (m *ShowRoutingTableResponse) String() string { return proto.CompactTextString(m) }
func (*ShowRoutingTableResponse) ProtoMessage() {} func (*ShowRoutingTableResponse) ProtoMessage() {}
func (*ShowRoutingTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{31} } func (*ShowRoutingTableResponse) Descriptor() ([]byte, []int) { return fileDescriptor0, []int{32} }
func init() { func init() {
proto.RegisterType((*SendRequest)(nil), "lnrpc.SendRequest") proto.RegisterType((*SendRequest)(nil), "lnrpc.SendRequest")
@ -768,6 +840,7 @@ func init() {
proto.RegisterType((*ChannelCloseUpdate)(nil), "lnrpc.ChannelCloseUpdate") proto.RegisterType((*ChannelCloseUpdate)(nil), "lnrpc.ChannelCloseUpdate")
proto.RegisterType((*CloseChannelRequest)(nil), "lnrpc.CloseChannelRequest") proto.RegisterType((*CloseChannelRequest)(nil), "lnrpc.CloseChannelRequest")
proto.RegisterType((*CloseStatusUpdate)(nil), "lnrpc.CloseStatusUpdate") proto.RegisterType((*CloseStatusUpdate)(nil), "lnrpc.CloseStatusUpdate")
proto.RegisterType((*PendingUpdate)(nil), "lnrpc.PendingUpdate")
proto.RegisterType((*OpenChannelRequest)(nil), "lnrpc.OpenChannelRequest") proto.RegisterType((*OpenChannelRequest)(nil), "lnrpc.OpenChannelRequest")
proto.RegisterType((*OpenStatusUpdate)(nil), "lnrpc.OpenStatusUpdate") proto.RegisterType((*OpenStatusUpdate)(nil), "lnrpc.OpenStatusUpdate")
proto.RegisterType((*PendingChannelRequest)(nil), "lnrpc.PendingChannelRequest") proto.RegisterType((*PendingChannelRequest)(nil), "lnrpc.PendingChannelRequest")
@ -893,7 +966,7 @@ func (c *lightningClient) OpenChannel(ctx context.Context, in *OpenChannelReques
} }
type Lightning_OpenChannelClient interface { type Lightning_OpenChannelClient interface {
Recv() (*ChannelOpenUpdate, error) Recv() (*OpenStatusUpdate, error)
grpc.ClientStream grpc.ClientStream
} }
@ -901,8 +974,8 @@ type lightningOpenChannelClient struct {
grpc.ClientStream grpc.ClientStream
} }
func (x *lightningOpenChannelClient) Recv() (*ChannelOpenUpdate, error) { func (x *lightningOpenChannelClient) Recv() (*OpenStatusUpdate, error) {
m := new(ChannelOpenUpdate) m := new(OpenStatusUpdate)
if err := x.ClientStream.RecvMsg(m); err != nil { if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err return nil, err
} }
@ -925,7 +998,7 @@ func (c *lightningClient) CloseChannel(ctx context.Context, in *CloseChannelRequ
} }
type Lightning_CloseChannelClient interface { type Lightning_CloseChannelClient interface {
Recv() (*ChannelCloseUpdate, error) Recv() (*CloseStatusUpdate, error)
grpc.ClientStream grpc.ClientStream
} }
@ -933,8 +1006,8 @@ type lightningCloseChannelClient struct {
grpc.ClientStream grpc.ClientStream
} }
func (x *lightningCloseChannelClient) Recv() (*ChannelCloseUpdate, error) { func (x *lightningCloseChannelClient) Recv() (*CloseStatusUpdate, error) {
m := new(ChannelCloseUpdate) m := new(CloseStatusUpdate)
if err := x.ClientStream.RecvMsg(m); err != nil { if err := x.ClientStream.RecvMsg(m); err != nil {
return nil, err return nil, err
} }
@ -1146,7 +1219,7 @@ func _Lightning_OpenChannel_Handler(srv interface{}, stream grpc.ServerStream) e
} }
type Lightning_OpenChannelServer interface { type Lightning_OpenChannelServer interface {
Send(*ChannelOpenUpdate) error Send(*OpenStatusUpdate) error
grpc.ServerStream grpc.ServerStream
} }
@ -1154,7 +1227,7 @@ type lightningOpenChannelServer struct {
grpc.ServerStream grpc.ServerStream
} }
func (x *lightningOpenChannelServer) Send(m *ChannelOpenUpdate) error { func (x *lightningOpenChannelServer) Send(m *OpenStatusUpdate) error {
return x.ServerStream.SendMsg(m) return x.ServerStream.SendMsg(m)
} }
@ -1167,7 +1240,7 @@ func _Lightning_CloseChannel_Handler(srv interface{}, stream grpc.ServerStream)
} }
type Lightning_CloseChannelServer interface { type Lightning_CloseChannelServer interface {
Send(*ChannelCloseUpdate) error Send(*CloseStatusUpdate) error
grpc.ServerStream grpc.ServerStream
} }
@ -1175,7 +1248,7 @@ type lightningCloseChannelServer struct {
grpc.ServerStream grpc.ServerStream
} }
func (x *lightningCloseChannelServer) Send(m *ChannelCloseUpdate) error { func (x *lightningCloseChannelServer) Send(m *CloseStatusUpdate) error {
return x.ServerStream.SendMsg(m) return x.ServerStream.SendMsg(m)
} }
@ -1306,97 +1379,99 @@ var _Lightning_serviceDesc = grpc.ServiceDesc{
func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) } func init() { proto.RegisterFile("rpc.proto", fileDescriptor0) }
var fileDescriptor0 = []byte{ var fileDescriptor0 = []byte{
// 1458 bytes of a gzipped FileDescriptorProto // 1496 bytes of a gzipped FileDescriptorProto
0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xa4, 0x57, 0x4b, 0x6f, 0xdb, 0x46, 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x09, 0x6e, 0x88, 0x02, 0xff, 0xb4, 0x57, 0x5b, 0x6f, 0x13, 0xd7,
0x10, 0x8e, 0x5e, 0x96, 0x34, 0xb2, 0x6c, 0x69, 0xfd, 0x92, 0x99, 0xa4, 0x4d, 0x89, 0x24, 0x30, 0x13, 0xc7, 0x77, 0x7b, 0x6c, 0x27, 0xf6, 0xc9, 0xcd, 0x31, 0xf0, 0xff, 0xd3, 0x15, 0xa0, 0x08,
0x82, 0xd4, 0x49, 0x9d, 0x1e, 0x82, 0x04, 0x4d, 0xe1, 0x38, 0x6e, 0x9c, 0xc6, 0xb5, 0xdd, 0xc8, 0x85, 0x40, 0x4d, 0x1f, 0x10, 0xa8, 0x54, 0xc1, 0xa4, 0x84, 0x92, 0x26, 0x29, 0x0e, 0x42, 0x7d,
0x41, 0xd0, 0x13, 0x41, 0x51, 0xeb, 0x88, 0x08, 0x45, 0xb2, 0xda, 0x65, 0x1c, 0xf5, 0x50, 0xa0, 0x5a, 0xad, 0xd7, 0x27, 0x78, 0xc5, 0x7a, 0x77, 0xeb, 0x73, 0x36, 0xc1, 0xfd, 0x00, 0x7d, 0xed,
0x97, 0x5e, 0x7b, 0xed, 0xaf, 0xe8, 0x9f, 0xe8, 0xa1, 0x87, 0x02, 0xfd, 0x4d, 0x9d, 0x7d, 0x50, 0x6b, 0x3f, 0x44, 0x55, 0xf5, 0x3b, 0x54, 0x7d, 0xaa, 0xd4, 0xcf, 0xd4, 0x39, 0x97, 0xb5, 0xf7,
0x7c, 0x49, 0x01, 0x8a, 0x9e, 0x04, 0xce, 0xce, 0x7e, 0x3b, 0xf3, 0xed, 0xcc, 0x37, 0x2b, 0x68, 0xe2, 0x20, 0xf5, 0xa1, 0x4f, 0xd6, 0xce, 0x99, 0x33, 0x97, 0xdf, 0xcc, 0xfc, 0xce, 0x18, 0x6a,
0x4e, 0x42, 0x67, 0x37, 0x9c, 0x04, 0x3c, 0x20, 0x35, 0xcf, 0xc7, 0x0f, 0xf3, 0x7b, 0x68, 0xf5, 0xd3, 0xc0, 0xde, 0x0b, 0xa6, 0x3e, 0xf7, 0x49, 0xc9, 0xf5, 0xf0, 0xc3, 0xf8, 0x0e, 0xea, 0x03,
0xa9, 0x3f, 0x7c, 0x45, 0x7f, 0x8c, 0x28, 0xe3, 0x64, 0x19, 0xaa, 0x43, 0xfc, 0xed, 0x95, 0x6e, 0xea, 0x8d, 0xde, 0xd0, 0x1f, 0x42, 0xca, 0x38, 0x69, 0x40, 0x71, 0x84, 0xbf, 0x9d, 0xdc, 0xad,
0x94, 0x76, 0x96, 0x49, 0x0b, 0x2a, 0xf6, 0x98, 0xf7, 0xca, 0xf8, 0x51, 0x21, 0xeb, 0xb0, 0x1c, 0xdc, 0x4e, 0x83, 0xd4, 0xa1, 0x60, 0x4d, 0x78, 0x27, 0x8f, 0x1f, 0x05, 0xb2, 0x0e, 0x8d, 0xc0,
0xda, 0xd3, 0x31, 0xf5, 0xb9, 0x35, 0xb2, 0xd9, 0xa8, 0x57, 0x91, 0x2e, 0x5d, 0x68, 0x5e, 0xd8, 0x9a, 0x4d, 0xa8, 0xc7, 0xcd, 0xb1, 0xc5, 0xc6, 0x9d, 0x82, 0x54, 0x69, 0x43, 0xed, 0xdc, 0x62,
0x8c, 0x5b, 0x0c, 0x41, 0x7a, 0x55, 0x34, 0x35, 0xcc, 0x15, 0x58, 0x56, 0x90, 0x2c, 0x0c, 0x7c, 0xdc, 0x64, 0x68, 0xa4, 0x53, 0x44, 0x51, 0xd5, 0x58, 0x81, 0x86, 0x32, 0xc9, 0x02, 0xdf, 0x63,
0x46, 0xcd, 0x47, 0xb0, 0x7c, 0x30, 0xb2, 0x7d, 0x9f, 0x7a, 0x67, 0x81, 0xeb, 0x73, 0x01, 0x74, 0xd4, 0x78, 0x02, 0x8d, 0xfe, 0xd8, 0xf2, 0x3c, 0xea, 0x9e, 0xfa, 0x8e, 0xc7, 0x85, 0xa1, 0xf3,
0x11, 0xf9, 0x43, 0xd7, 0x7f, 0x6b, 0xf1, 0x0f, 0xee, 0x50, 0x9f, 0x85, 0xd6, 0x20, 0xe2, 0x61, 0xd0, 0x1b, 0x39, 0xde, 0x7b, 0x93, 0x7f, 0x74, 0x46, 0xda, 0x17, 0x4a, 0xfd, 0x90, 0x07, 0x21,
0xc4, 0x2d, 0xd7, 0x1f, 0xd2, 0x0f, 0xf2, 0xd0, 0xb6, 0xf9, 0x25, 0x74, 0x8e, 0xdd, 0xb7, 0x23, 0x37, 0x1d, 0x6f, 0x44, 0x3f, 0x4a, 0xa7, 0x4d, 0xe3, 0x0b, 0x68, 0x1d, 0x39, 0xef, 0xc7, 0xdc,
0xee, 0xa3, 0xf7, 0xfe, 0x70, 0x38, 0xa1, 0x8c, 0x11, 0x02, 0x10, 0x46, 0x83, 0x97, 0x74, 0x7a, 0x43, 0xed, 0xfd, 0xd1, 0x68, 0x4a, 0x19, 0x23, 0x04, 0x20, 0x08, 0x87, 0xaf, 0xe9, 0xec, 0x50,
0x24, 0xc2, 0x10, 0xbb, 0x9b, 0x22, 0xee, 0x51, 0xc0, 0x54, 0xa8, 0x4d, 0xf3, 0xd7, 0x12, 0xac, 0x84, 0x21, 0x6e, 0xd7, 0x44, 0xdc, 0x63, 0x9f, 0xa9, 0x50, 0x6b, 0xc6, 0x4f, 0x39, 0x58, 0x15,
0x8a, 0x10, 0xbe, 0xb3, 0xfd, 0x69, 0x9c, 0xd9, 0x13, 0x58, 0x16, 0x00, 0xe7, 0xc1, 0xfe, 0x38, 0x21, 0x7c, 0x6b, 0x79, 0xb3, 0x28, 0xb3, 0x67, 0xd0, 0x10, 0x06, 0xce, 0xfc, 0xfd, 0x89, 0x1f,
0x88, 0x7c, 0x91, 0x61, 0x65, 0xa7, 0xb5, 0xb7, 0xb3, 0x2b, 0x69, 0xd8, 0xcd, 0x79, 0xef, 0xa6, 0x7a, 0x22, 0xc3, 0xc2, 0x4e, 0xbd, 0xb7, 0xb3, 0x27, 0x61, 0xd8, 0x4b, 0x69, 0xef, 0xc5, 0x55,
0x5d, 0x0f, 0x7d, 0x3e, 0x99, 0x1a, 0x0f, 0xa0, 0x5b, 0x30, 0x0a, 0x82, 0xde, 0xd1, 0xa9, 0x8e, 0x0f, 0x3c, 0x3e, 0x9d, 0x75, 0x1f, 0x41, 0x3b, 0x23, 0x14, 0x00, 0x7d, 0xa0, 0x33, 0x1d, 0x43,
0xa1, 0x0d, 0xb5, 0xf7, 0xb6, 0x17, 0x51, 0xc5, 0xd7, 0xa3, 0xf2, 0xc3, 0x92, 0x79, 0x03, 0x3a, 0x13, 0x4a, 0x17, 0x96, 0x1b, 0x52, 0x85, 0xd7, 0x93, 0xfc, 0xe3, 0x9c, 0x71, 0x0b, 0x5a, 0x0b,
0x09, 0xb2, 0xa2, 0x43, 0x84, 0x3a, 0x4b, 0xbb, 0x69, 0xde, 0x57, 0x1e, 0x07, 0xc8, 0x0c, 0x4b, 0xcb, 0x0a, 0x0e, 0x11, 0xea, 0x3c, 0xed, 0x9a, 0xf1, 0x50, 0x69, 0xf4, 0x11, 0x19, 0x16, 0x2b,
0x5d, 0x82, 0x8d, 0x47, 0x69, 0xd8, 0x15, 0x58, 0xb2, 0x55, 0xc8, 0x12, 0xd7, 0xfc, 0x0c, 0xba, 0x82, 0x85, 0xae, 0xb4, 0xd9, 0x15, 0x28, 0x5b, 0x2a, 0x64, 0x69, 0xd7, 0xf8, 0x0c, 0xda, 0xb1,
0xa9, 0x1d, 0x73, 0x41, 0x7f, 0x2f, 0x41, 0xf7, 0x84, 0x5e, 0x6a, 0xc2, 0x62, 0xd8, 0x3d, 0xf4, 0x1b, 0x4b, 0x8d, 0xfe, 0x92, 0x83, 0xf6, 0x31, 0xbd, 0xd4, 0x80, 0x45, 0x66, 0x7b, 0xa8, 0x33,
0x99, 0x86, 0x54, 0xfa, 0xac, 0xec, 0xdd, 0xd4, 0x99, 0x17, 0xfc, 0x76, 0xf5, 0xe7, 0x39, 0xfa, 0x0b, 0xa8, 0xd4, 0x59, 0xe9, 0xdd, 0xd6, 0x99, 0x67, 0xf4, 0xf6, 0xf4, 0xe7, 0x19, 0xea, 0x1a,
0x9a, 0xa7, 0xd0, 0x4a, 0x7d, 0x92, 0x2d, 0x58, 0x7b, 0xf3, 0xe2, 0xfc, 0xe4, 0xb0, 0xdf, 0xb7, 0x27, 0x50, 0x8f, 0x7d, 0x92, 0x2d, 0x58, 0x7b, 0xf7, 0xea, 0xec, 0xf8, 0x60, 0x30, 0x30, 0x4f,
0xce, 0x5e, 0x3f, 0x7d, 0x79, 0xf8, 0x83, 0x75, 0xb4, 0xdf, 0x3f, 0xea, 0x5c, 0x21, 0x9b, 0x40, 0xdf, 0x3e, 0x7f, 0x7d, 0xf0, 0xbd, 0x79, 0xb8, 0x3f, 0x38, 0x6c, 0x5d, 0x23, 0x9b, 0x40, 0x50,
0xd0, 0x7a, 0x7e, 0xf8, 0x2c, 0x63, 0x2f, 0x91, 0x55, 0x68, 0xa5, 0x0d, 0x65, 0xf3, 0x16, 0x3a, 0x7a, 0x76, 0xf0, 0x22, 0x21, 0xcf, 0x91, 0x55, 0xa8, 0xc7, 0x05, 0x79, 0xe3, 0x0e, 0x2a, 0xc6,
0xa6, 0x4e, 0xd4, 0xe1, 0xaf, 0x42, 0xdd, 0x56, 0x26, 0x9d, 0xc1, 0x63, 0x20, 0x07, 0x01, 0x96, 0x3c, 0xea, 0xf0, 0x57, 0xa1, 0x62, 0x29, 0x91, 0xce, 0xe0, 0x29, 0x90, 0xbe, 0x8f, 0x2d, 0x63,
0x8c, 0xc3, 0xcf, 0x28, 0x9d, 0xc4, 0x19, 0xdc, 0x4a, 0x11, 0xd3, 0xda, 0xdb, 0xd2, 0x19, 0xe4, 0xf3, 0x53, 0x4a, 0xa7, 0x51, 0x06, 0x77, 0x62, 0xc0, 0xd4, 0x7b, 0x5b, 0x3a, 0x83, 0x74, 0x83,
0x0b, 0xc4, 0xbc, 0x0d, 0x6b, 0x99, 0xcd, 0xc9, 0x21, 0x21, 0x7e, 0x5b, 0x9a, 0xa6, 0x9a, 0xf9, 0x18, 0x77, 0x61, 0x2d, 0x71, 0x79, 0xe1, 0x24, 0xc0, 0x6f, 0x53, 0xc3, 0x54, 0x32, 0x5e, 0x40,
0x0c, 0xaa, 0x47, 0xe7, 0xc7, 0x07, 0x58, 0x4f, 0x65, 0x6d, 0xab, 0xe4, 0xd9, 0x16, 0xf5, 0x2d, 0xf1, 0xf0, 0xec, 0xa8, 0x8f, 0xfd, 0x94, 0xd7, 0xb2, 0x42, 0x1a, 0x6d, 0xd1, 0xdf, 0xa2, 0xdb,
0xaa, 0xdd, 0xf2, 0x02, 0xe7, 0x9d, 0x2e, 0x79, 0xbc, 0x67, 0x1e, 0x58, 0x11, 0xd3, 0xe5, 0xfe, 0x4d, 0xd7, 0xb7, 0x3f, 0xe8, 0x96, 0xc7, 0x3a, 0x73, 0xdf, 0x0c, 0x99, 0x6e, 0xf7, 0xbf, 0x73,
0x4f, 0x09, 0xda, 0xfb, 0x0e, 0x77, 0xdf, 0x53, 0x5d, 0xe5, 0x62, 0xcf, 0x84, 0x8e, 0x03, 0x4e, 0xd0, 0xdc, 0xb7, 0xb9, 0x73, 0x41, 0x75, 0x97, 0x8b, 0x3b, 0x53, 0x3a, 0xf1, 0x39, 0x8d, 0x5c,
0xe3, 0xa3, 0x9a, 0x64, 0x03, 0xda, 0x8e, 0x5a, 0xb5, 0x42, 0xd1, 0x04, 0xaa, 0x50, 0x49, 0x07, 0xd5, 0xc8, 0x06, 0x34, 0x6d, 0x75, 0x6a, 0x06, 0x62, 0x08, 0x54, 0xa3, 0x92, 0x16, 0x54, 0x6d,
0x1a, 0x8e, 0x1d, 0xda, 0x8e, 0xcb, 0xa7, 0x12, 0xbc, 0x22, 0x1c, 0xf1, 0x28, 0xdb, 0xb3, 0x06, 0x2b, 0xb0, 0x6c, 0x87, 0xcf, 0xa4, 0xf1, 0x82, 0x50, 0x44, 0x57, 0x96, 0x6b, 0x0e, 0x2d, 0xd7,
0xb6, 0x67, 0xfb, 0x0e, 0x95, 0x87, 0x54, 0x90, 0xdf, 0x15, 0x0d, 0x19, 0xdb, 0x6b, 0xd2, 0xbe, 0xf2, 0x6c, 0x2a, 0x9d, 0x14, 0x10, 0xdf, 0x15, 0x6d, 0x32, 0x92, 0x97, 0xa4, 0x7c, 0x1b, 0xda,
0x0d, 0xdd, 0x08, 0x73, 0xe3, 0xdc, 0xa3, 0x43, 0x6b, 0x40, 0xd5, 0xd2, 0x92, 0x5c, 0x32, 0xa1, 0x21, 0xe6, 0xc6, 0xb9, 0x4b, 0x47, 0xe6, 0x90, 0xaa, 0xa3, 0xb2, 0x3c, 0x32, 0xa0, 0x19, 0x50,
0x1d, 0x52, 0xd5, 0x66, 0x23, 0xee, 0x39, 0xac, 0x57, 0x97, 0x15, 0xdf, 0xd2, 0xac, 0xc9, 0xcc, 0x35, 0x66, 0x63, 0xee, 0xda, 0xac, 0x53, 0x91, 0x1d, 0x5f, 0xd7, 0xa8, 0xc9, 0xcc, 0xd7, 0xa0,
0xd7, 0xa0, 0xe5, 0x47, 0x63, 0x2b, 0x0a, 0x87, 0x36, 0xa7, 0xac, 0xd7, 0xc0, 0x8d, 0x55, 0xf3, 0xee, 0x85, 0x13, 0x33, 0x0c, 0x46, 0x16, 0xa7, 0xac, 0x53, 0xc5, 0x8b, 0x45, 0xe3, 0x8f, 0x1c,
0xcf, 0x12, 0x54, 0x05, 0x71, 0xa2, 0x25, 0xbd, 0x98, 0xdb, 0x24, 0x95, 0x14, 0x8d, 0x22, 0x89, 0x14, 0x05, 0x70, 0x62, 0x24, 0xdd, 0x08, 0xdb, 0x45, 0x2a, 0x31, 0x18, 0x45, 0x12, 0xa5, 0x78,
0x5a, 0xfa, 0xf2, 0x2a, 0xd2, 0x03, 0x09, 0x1d, 0x4c, 0x11, 0x4f, 0x88, 0x02, 0x97, 0x09, 0x54, 0xf1, 0x0a, 0x52, 0x03, 0x01, 0x1d, 0xce, 0xd0, 0x9e, 0x20, 0x05, 0x2e, 0x13, 0x28, 0x2e, 0x64,
0x13, 0xdb, 0x84, 0x3a, 0xef, 0x65, 0xf0, 0x55, 0x91, 0x3d, 0xb3, 0xb9, 0xf2, 0x52, 0x31, 0x6b, 0x53, 0x6a, 0x5f, 0xc8, 0xe0, 0x8b, 0x22, 0x7b, 0x66, 0x71, 0xa5, 0xa5, 0x62, 0xd6, 0x12, 0xa9,
0x8b, 0xf4, 0xa9, 0x4b, 0x0b, 0x82, 0xbb, 0xfe, 0x00, 0x2f, 0x64, 0x28, 0xa3, 0x6b, 0x90, 0xdb, 0x53, 0x91, 0x12, 0x34, 0xee, 0x78, 0x43, 0x2c, 0xc8, 0x48, 0x46, 0x57, 0x25, 0x77, 0x11, 0x32,
0x48, 0x99, 0x62, 0x92, 0xf5, 0x9a, 0x32, 0xa3, 0x75, 0x9d, 0x51, 0xe6, 0x12, 0x4c, 0x22, 0x94, 0x85, 0x24, 0xeb, 0xd4, 0x64, 0x46, 0xeb, 0x3a, 0xa3, 0x44, 0x11, 0x0c, 0x22, 0x98, 0x83, 0xc9,
0x83, 0xc9, 0x0a, 0x88, 0x2b, 0xdb, 0xbc, 0x07, 0xdd, 0x94, 0x4d, 0x97, 0x85, 0x01, 0x35, 0x91, 0x0e, 0x88, 0x3a, 0xdb, 0x78, 0x00, 0xed, 0x98, 0x4c, 0xb7, 0x45, 0x17, 0x4a, 0x22, 0x1f, 0xa6,
0x0f, 0xd3, 0x8a, 0x10, 0xf3, 0x23, 0x9c, 0xcc, 0x0e, 0xac, 0x3c, 0xa7, 0xfc, 0x85, 0x7f, 0x11, 0x19, 0x21, 0xc2, 0x47, 0x28, 0x19, 0x2d, 0x58, 0x79, 0x49, 0xf9, 0x2b, 0xef, 0xdc, 0x8f, 0x4c,
0xc4, 0x10, 0xbf, 0xa1, 0xb4, 0xcc, 0x4c, 0x1a, 0x61, 0x3e, 0x4f, 0x3d, 0xe8, 0xb8, 0x43, 0x4c, 0xfc, 0x8c, 0xd4, 0x32, 0x17, 0x69, 0x0b, 0xcb, 0x71, 0xea, 0x40, 0xcb, 0x19, 0x61, 0x6a, 0x58,
0x0d, 0xef, 0xd6, 0x8a, 0xf9, 0x51, 0xb7, 0x7e, 0x0d, 0xd6, 0x05, 0xeb, 0xf1, 0xed, 0xcc, 0xd2, 0x5b, 0x33, 0xc2, 0x47, 0x55, 0xfd, 0x06, 0xac, 0x0b, 0xd4, 0xa3, 0xea, 0xcc, 0xd3, 0x11, 0xe8,
0x11, 0xec, 0xb5, 0xc9, 0x55, 0x58, 0x13, 0xab, 0xb6, 0xcc, 0x26, 0x59, 0xac, 0xca, 0x45, 0x2c, 0x35, 0xc9, 0x75, 0x58, 0x13, 0xa7, 0x96, 0xcc, 0x66, 0x71, 0x58, 0x94, 0x87, 0xd8, 0x5a, 0xea,
0x2d, 0xb5, 0x55, 0x04, 0x5c, 0x93, 0x12, 0xf9, 0x5a, 0xb6, 0xca, 0x85, 0x3b, 0x19, 0xdb, 0xdc, 0xaa, 0x08, 0xb8, 0x24, 0x29, 0xf2, 0xad, 0x1c, 0x95, 0x73, 0x67, 0x3a, 0xb1, 0xb8, 0xe3, 0x7b,
0x0d, 0xfc, 0xd7, 0xf2, 0x2e, 0x85, 0xe3, 0x40, 0xd4, 0xac, 0xc5, 0x46, 0x76, 0xa2, 0xb0, 0xca, 0x6f, 0x65, 0x2d, 0x85, 0xe2, 0x50, 0xf4, 0xac, 0xc9, 0xc6, 0xd6, 0x82, 0x61, 0x95, 0x68, 0x4c,
0x34, 0xa2, 0x22, 0x5a, 0x7d, 0x7b, 0x58, 0x59, 0x02, 0xd1, 0x41, 0x08, 0x66, 0x79, 0xf4, 0x82, 0x45, 0xb4, 0xba, 0x7a, 0xd8, 0x59, 0xc2, 0xa2, 0x8d, 0x26, 0x98, 0xe9, 0xd2, 0x73, 0xae, 0xc2,
0xab, 0x30, 0xcc, 0xaf, 0xa1, 0xab, 0xa9, 0x3c, 0xc5, 0x40, 0x35, 0xea, 0x9d, 0x7c, 0x19, 0xab, 0x30, 0xbe, 0x82, 0xb6, 0x86, 0xf2, 0x04, 0x03, 0xd5, 0x56, 0xef, 0xa5, 0xdb, 0x58, 0x4d, 0xe2,
0x4e, 0x5c, 0xd3, 0x9c, 0xa5, 0x65, 0x5e, 0xb6, 0xb0, 0xfa, 0x3e, 0xf0, 0x02, 0x46, 0x35, 0x02, 0x9a, 0xc6, 0x2c, 0x4e, 0xf3, 0x72, 0x84, 0xd5, 0x77, 0xdf, 0xf5, 0x19, 0xd5, 0x16, 0x30, 0x08,
0x06, 0xe1, 0xe0, 0x67, 0x4e, 0xfc, 0xf1, 0x96, 0x59, 0xe4, 0x38, 0x31, 0x45, 0x0d, 0x33, 0xc4, 0x1b, 0x3f, 0x53, 0xe4, 0x8f, 0x55, 0x66, 0xa1, 0x6d, 0x47, 0x10, 0x55, 0x8d, 0x00, 0x47, 0x58,
0x16, 0x16, 0xbb, 0x34, 0x42, 0x2c, 0x00, 0xff, 0xe1, 0x7c, 0x51, 0x71, 0xdc, 0x1d, 0x53, 0xcb, 0xdc, 0xd2, 0x16, 0x22, 0x02, 0xf8, 0x17, 0xfe, 0x45, 0xc7, 0x71, 0x67, 0x42, 0x4d, 0xd7, 0x99,
0x73, 0xc7, 0x6e, 0xdc, 0xcd, 0xd8, 0x2e, 0xb6, 0xe7, 0x05, 0x97, 0xd6, 0x45, 0x30, 0x71, 0x90, 0x38, 0xd1, 0x34, 0xe3, 0xb8, 0x58, 0xae, 0xeb, 0x5f, 0x9a, 0xe7, 0xfe, 0xd4, 0x46, 0x70, 0x85,
0x5c, 0x71, 0x84, 0xcc, 0xb7, 0x61, 0xfe, 0x82, 0x9a, 0x29, 0x8f, 0xec, 0x73, 0x9b, 0x47, 0x4c, 0x0b, 0x99, 0x6f, 0xd5, 0xf8, 0x1d, 0x39, 0x53, 0xba, 0x1c, 0x70, 0x8b, 0x87, 0x4c, 0x87, 0x7b,
0x87, 0xfb, 0x05, 0x86, 0x9b, 0x22, 0x57, 0x9f, 0xb7, 0x1d, 0x9f, 0x57, 0xe0, 0xfd, 0xe8, 0x0a, 0x1f, 0x1d, 0x0a, 0x61, 0x54, 0x2c, 0xed, 0x70, 0x7d, 0xde, 0x24, 0x52, 0xaa, 0x94, 0x0f, 0xaf,
0xb9, 0x07, 0x20, 0x62, 0xd4, 0xe0, 0xe5, 0xec, 0x86, 0x02, 0x21, 0x47, 0x57, 0x9e, 0x36, 0x60, 0x91, 0xcf, 0x31, 0xbb, 0x58, 0x2d, 0xa4, 0xd7, 0x7a, 0x6f, 0x3b, 0x0a, 0x2f, 0x53, 0x26, 0xbc,
0x49, 0x35, 0xa0, 0xe8, 0x3c, 0x22, 0xd8, 0xce, 0x65, 0x8d, 0x57, 0xc4, 0xed, 0xc9, 0x5b, 0xca, 0xf2, 0x00, 0x40, 0xa4, 0x14, 0x8b, 0x25, 0x76, 0x21, 0x83, 0xdf, 0xe1, 0xb5, 0xe7, 0x55, 0x28,
0xad, 0x8c, 0x7e, 0x91, 0xbb, 0xd0, 0xd2, 0x76, 0x3f, 0x18, 0xc6, 0x47, 0x2d, 0x52, 0x45, 0x51, 0xab, 0x79, 0x35, 0x6e, 0x42, 0x33, 0x11, 0x40, 0xe2, 0x15, 0x68, 0x88, 0x39, 0x26, 0xa2, 0x76,
0x75, 0x4a, 0x59, 0xe2, 0xe1, 0xab, 0x75, 0x4e, 0xe9, 0xce, 0x75, 0xd8, 0xd0, 0x02, 0x93, 0x5b, 0x29, 0x0c, 0xb1, 0xe0, 0xdc, 0x9a, 0xbe, 0xa7, 0xdc, 0x4c, 0xb0, 0x21, 0xd9, 0x85, 0xba, 0x96,
0x56, 0xfa, 0xb3, 0x05, 0xab, 0x4e, 0x30, 0x1e, 0xbb, 0x8c, 0x61, 0xaa, 0x16, 0x73, 0x7f, 0x8a, 0x7b, 0xfe, 0x88, 0xea, 0xd0, 0xaf, 0xe2, 0x58, 0xd1, 0xc3, 0x8a, 0xa7, 0xa2, 0xa7, 0x5c, 0xb3,
0x05, 0x48, 0x17, 0xa4, 0x2c, 0x1f, 0xd9, 0xc4, 0x6d, 0xf3, 0x67, 0xe8, 0x88, 0x24, 0xfe, 0x2f, 0xa6, 0x62, 0xb1, 0x9b, 0xb0, 0xa1, 0xe9, 0x2a, 0x75, 0xac, 0xd8, 0x6c, 0x0b, 0x56, 0x6d, 0x7f,
0x8f, 0x9f, 0x43, 0x53, 0xf2, 0x18, 0x20, 0x96, 0xce, 0xad, 0x97, 0xa5, 0x31, 0x29, 0xcc, 0x0c, 0x32, 0x71, 0x18, 0x43, 0x24, 0x4c, 0xe6, 0xfc, 0x18, 0xd1, 0x99, 0x6e, 0x6f, 0xd9, 0x8c, 0x92,
0x8b, 0x5f, 0xc1, 0xc6, 0x99, 0x6a, 0xad, 0x1c, 0x8f, 0x37, 0x61, 0x89, 0xc9, 0xa0, 0xf4, 0x08, 0x12, 0x9a, 0xc6, 0xaf, 0x39, 0x68, 0x89, 0x2c, 0x12, 0x65, 0xd9, 0x45, 0x9c, 0x05, 0x68, 0xff,
0x5c, 0xcf, 0xc2, 0xa9, 0x80, 0xcd, 0x3f, 0xca, 0xb0, 0x99, 0xdf, 0xaf, 0x1b, 0xfd, 0x1b, 0xe8, 0x59, 0x55, 0xee, 0x43, 0x4d, 0x3a, 0xf0, 0xd1, 0x83, 0x2e, 0x4a, 0x27, 0x59, 0x94, 0xc5, 0x54,
0x14, 0x9a, 0x56, 0xa9, 0xc6, 0xdd, 0x99, 0x6a, 0xcc, 0xdb, 0x98, 0x33, 0x1b, 0x7f, 0x97, 0x60, 0x24, 0x6a, 0xf2, 0x25, 0x6c, 0x68, 0xf7, 0x29, 0xd8, 0x6f, 0x43, 0x99, 0xc9, 0x14, 0xf4, 0xfb,
0x25, 0x6b, 0x2a, 0x0c, 0xa7, 0x82, 0xa8, 0x94, 0xe7, 0xcf, 0x91, 0x4a, 0x61, 0x8e, 0x54, 0xe7, 0xbb, 0x9e, 0x34, 0xa7, 0xd2, 0x33, 0x7e, 0xcb, 0xc3, 0x66, 0xfa, 0xbe, 0x66, 0x99, 0xaf, 0xa1,
0xcf, 0x91, 0xda, 0x82, 0x39, 0xb2, 0x14, 0x3f, 0xee, 0x32, 0x6d, 0x59, 0x97, 0xb0, 0x09, 0x61, 0x95, 0x61, 0x0c, 0x45, 0x59, 0xbb, 0xc9, 0xbc, 0x53, 0x17, 0x53, 0xe2, 0xee, 0x5f, 0x39, 0x58,
0x8d, 0x8f, 0x10, 0x76, 0x17, 0xd6, 0xdf, 0x60, 0x57, 0x51, 0xfe, 0x54, 0x41, 0xc6, 0x74, 0x23, 0x49, 0x8a, 0x32, 0x2f, 0x63, 0x86, 0xd1, 0xf2, 0xcb, 0x1f, 0xb1, 0x42, 0xe6, 0x11, 0x2b, 0x2e,
0xe6, 0xa5, 0xcb, 0x7d, 0xac, 0x3d, 0x2b, 0xf0, 0x3d, 0xf5, 0x4a, 0x6a, 0x98, 0x3b, 0xb0, 0x91, 0x7f, 0xc4, 0x4a, 0x57, 0x3c, 0x62, 0xe5, 0x68, 0xb3, 0x4c, 0x70, 0x42, 0x45, 0x9a, 0x5d, 0x00,
0xf3, 0x4e, 0xc6, 0x73, 0x1c, 0x93, 0xf0, 0x2c, 0x99, 0xdb, 0xb0, 0xd5, 0x1f, 0x05, 0x97, 0xaf, 0x56, 0xfd, 0x04, 0x60, 0xbb, 0xb0, 0xfe, 0x0e, 0x47, 0x9a, 0xf2, 0xe7, 0xca, 0x64, 0x04, 0x37,
0xf0, 0x59, 0x88, 0x71, 0x9d, 0xdb, 0x03, 0x2f, 0x86, 0xc6, 0x09, 0xdf, 0x2b, 0x2e, 0x69, 0x1c, 0xda, 0xbc, 0x74, 0xb8, 0x87, 0xad, 0x6a, 0xfa, 0x9e, 0xab, 0x56, 0xb4, 0xaa, 0xb1, 0x03, 0x1b,
0x9c, 0xe6, 0x13, 0x25, 0x0c, 0xcd, 0x3b, 0x7b, 0xd0, 0xce, 0xc4, 0x4a, 0xea, 0x50, 0xd9, 0x3f, 0x29, 0xed, 0xc5, 0x6e, 0x10, 0xc5, 0x24, 0x34, 0x73, 0xc6, 0x36, 0x6c, 0x0d, 0xc6, 0xfe, 0xe5,
0x3e, 0xc6, 0x07, 0x4b, 0x0b, 0xea, 0xa7, 0x67, 0x87, 0x27, 0x2f, 0x4e, 0x9e, 0xe3, 0x2b, 0x05, 0x1b, 0xdc, 0x49, 0x31, 0xae, 0x33, 0x6b, 0xe8, 0x46, 0xa6, 0x71, 0xbd, 0xe8, 0x64, 0x8f, 0xb4,
0x3f, 0x0e, 0x8e, 0x4f, 0xfb, 0xe2, 0xa3, 0xbc, 0xf7, 0xd7, 0x12, 0x34, 0x67, 0xcd, 0x43, 0xbe, 0x1d, 0x5c, 0x25, 0xa6, 0x8a, 0x95, 0x6a, 0xf7, 0x7a, 0xd0, 0x4c, 0xc4, 0x4a, 0x2a, 0x50, 0xd8,
0x85, 0x76, 0x26, 0x5c, 0x72, 0x55, 0x73, 0x30, 0x2f, 0x65, 0xe3, 0xda, 0xfc, 0x45, 0x1d, 0xd9, 0x3f, 0x3a, 0xc2, 0x6d, 0xa9, 0x0e, 0x95, 0x93, 0xd3, 0x83, 0xe3, 0x57, 0xc7, 0x2f, 0x71, 0x45,
0x63, 0x68, 0xc4, 0xaf, 0x41, 0xb2, 0x39, 0xff, 0xe1, 0x69, 0x6c, 0x15, 0xec, 0x7a, 0xf3, 0x13, 0xc2, 0x8f, 0xfe, 0xd1, 0xc9, 0x40, 0x7c, 0xe4, 0x7b, 0x7f, 0x96, 0xa1, 0x36, 0x9f, 0x35, 0xf2,
0x68, 0xce, 0x9e, 0x7d, 0x24, 0xed, 0x95, 0x7e, 0x3a, 0x1a, 0xbd, 0xe2, 0x82, 0xde, 0xbf, 0x0f, 0x0d, 0x34, 0x13, 0xe1, 0x92, 0xeb, 0x1a, 0x83, 0x65, 0x29, 0x77, 0x6f, 0x2c, 0x3f, 0xd4, 0x91,
0x90, 0x3c, 0xbc, 0x48, 0x6f, 0xd1, 0xeb, 0xcf, 0xd8, 0x9e, 0xb3, 0xa2, 0x21, 0x9e, 0x41, 0x2b, 0x3d, 0x85, 0x6a, 0xb4, 0x8a, 0x92, 0xcd, 0xe5, 0x5b, 0x6f, 0x77, 0x2b, 0x23, 0xd7, 0x97, 0x9f,
0xf5, 0xae, 0x22, 0xa9, 0xee, 0xcd, 0x3d, 0xd4, 0x0c, 0x63, 0xde, 0x52, 0x92, 0xc8, 0x6c, 0x08, 0x41, 0x6d, 0xbe, 0x73, 0x92, 0xb8, 0x56, 0x7c, 0x6f, 0xed, 0x76, 0xb2, 0x07, 0xfa, 0xfe, 0x3e,
0x93, 0x44, 0xad, 0xb2, 0xa3, 0x7a, 0x96, 0x48, 0x71, 0x5e, 0x3f, 0x84, 0xba, 0x1e, 0xc0, 0x64, 0xc0, 0x62, 0xeb, 0x23, 0x9d, 0xab, 0x56, 0xcf, 0xee, 0xf6, 0x92, 0x13, 0x6d, 0xe2, 0x05, 0xd4,
0x43, 0x3b, 0x65, 0x67, 0xb4, 0xb1, 0x99, 0x37, 0x27, 0xf1, 0xa7, 0xd4, 0x75, 0x16, 0x7f, 0x51, 0x63, 0x4b, 0x1d, 0x89, 0x4d, 0x6f, 0x6a, 0x4b, 0xec, 0x76, 0x97, 0x1d, 0x2d, 0x12, 0x99, 0x6f,
0x71, 0x8d, 0x85, 0x42, 0x73, 0xbf, 0x44, 0x9e, 0xe3, 0xdf, 0x99, 0xd4, 0x68, 0x22, 0xb3, 0x5c, 0x00, 0x64, 0x41, 0x6e, 0xc9, 0x3d, 0x61, 0x9e, 0x48, 0x76, 0x59, 0x78, 0x0c, 0x15, 0xfd, 0xfa,
0x8b, 0xf3, 0xca, 0x58, 0xac, 0xfb, 0x08, 0x74, 0x02, 0xab, 0x59, 0x11, 0x40, 0x8d, 0x5e, 0x20, 0x93, 0x0d, 0xad, 0x94, 0x5c, 0x10, 0xba, 0x9b, 0x69, 0xb1, 0xbe, 0xd9, 0x87, 0x7a, 0x8c, 0x8c,
0x23, 0x0a, 0xed, 0xfa, 0x47, 0x45, 0x86, 0x3c, 0x52, 0x7f, 0xe5, 0xce, 0xd4, 0x9f, 0x34, 0x42, 0xe7, 0xf1, 0x67, 0x09, 0x7a, 0x5e, 0x85, 0x34, 0xeb, 0x3d, 0xcc, 0x21, 0x07, 0x34, 0xe2, 0xcf,
0x52, 0xa5, 0x10, 0x23, 0xac, 0x65, 0x6c, 0x6a, 0xdf, 0x4e, 0x09, 0x63, 0xe9, 0xe3, 0xdf, 0x90, 0x22, 0x99, 0xa7, 0x9a, 0x7d, 0x2b, 0xe7, 0x49, 0x64, 0x1e, 0x35, 0xb4, 0x73, 0x0c, 0xab, 0x49,
0x5c, 0x43, 0x91, 0x4f, 0x62, 0xe7, 0xf9, 0x4d, 0x68, 0x7c, 0xba, 0x70, 0x5d, 0x01, 0x0f, 0x96, 0x0a, 0x40, 0x42, 0xbf, 0x82, 0x44, 0x94, 0xb1, 0x9b, 0x9f, 0xa4, 0x18, 0xf2, 0x44, 0xfd, 0x8b,
0xe4, 0x3f, 0xcd, 0x07, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x71, 0xcd, 0xec, 0x2c, 0x76, 0x0e, 0x3c, 0x55, 0xff, 0x0f, 0x09, 0x89, 0x35, 0x42, 0x64, 0x61, 0x2d, 0x21, 0x53, 0xf7, 0x76, 0x72,
0x00, 0x00, 0x18, 0xcb, 0x00, 0xff, 0x01, 0xa5, 0xc6, 0x89, 0xfc, 0x2f, 0x52, 0x5e, 0x3e, 0x82, 0xdd, 0xff,
0x5f, 0x79, 0xae, 0x0c, 0x0f, 0xcb, 0xf2, 0x4f, 0xee, 0xa3, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff,
0xfb, 0x5b, 0x5f, 0x9d, 0xf1, 0x0e, 0x00, 0x00,
} }

@ -12,8 +12,8 @@ service Lightning {
rpc ListPeers(ListPeersRequest) returns (ListPeersResponse); rpc ListPeers(ListPeersRequest) returns (ListPeersResponse);
rpc GetInfo(GetInfoRequest) returns (GetInfoResponse); rpc GetInfo(GetInfoRequest) returns (GetInfoResponse);
rpc OpenChannel(OpenChannelRequest) returns (stream ChannelOpenUpdate); rpc OpenChannel(OpenChannelRequest) returns (stream OpenStatusUpdate);
rpc CloseChannel(CloseChannelRequest) returns (stream ChannelCloseUpdate); rpc CloseChannel(CloseChannelRequest) returns (stream CloseStatusUpdate);
rpc PendingChannels(PendingChannelRequest) returns (PendingChannelResponse); rpc PendingChannels(PendingChannelRequest) returns (PendingChannelResponse);
rpc SendPayment(stream SendRequest) returns (stream SendResponse); rpc SendPayment(stream SendRequest) returns (stream SendResponse);
@ -159,11 +159,16 @@ message CloseChannelRequest {
} }
message CloseStatusUpdate { message CloseStatusUpdate {
oneof update { oneof update {
ConfirmationUpdate confirmation = 1; PendingUpdate close_pending = 1;
ChannelCloseUpdate chan_close = 2; ConfirmationUpdate confirmation = 2;
ChannelCloseUpdate chan_close = 3;
} }
} }
message PendingUpdate {
bytes txid = 1;
}
message OpenChannelRequest { message OpenChannelRequest {
int32 target_peer_id = 1; int32 target_peer_id = 1;
LightningAddress target_node = 2; LightningAddress target_node = 2;
@ -177,8 +182,9 @@ message OpenChannelRequest {
} }
message OpenStatusUpdate { message OpenStatusUpdate {
oneof update { oneof update {
ConfirmationUpdate confirmation = 1; PendingUpdate chan_pending = 1;
ChannelOpenUpdate chan_open = 2; ConfirmationUpdate confirmation = 2;
ChannelOpenUpdate chan_open = 3;
} }
} }