htlcswitch: add final htlc event to notifier
This commit is contained in:
21 files changed
+729
-404
No files matched your search
+475
-382
File diff suppressed because it is too large.
Load diff
@@ -619,6 +619,7 @@ message HtlcEvent {
|
||||
SettleEvent settle_event = 9;
|
||||
LinkFailEvent link_fail_event = 10;
|
||||
SubscribedEvent subscribed_event = 11;
|
||||
FinalHtlcEvent final_htlc_event = 12;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -649,6 +650,11 @@ message SettleEvent {
|
||||
bytes preimage = 1;
|
||||
}
|
||||
|
||||
message FinalHtlcEvent {
|
||||
bool settled = 1;
|
||||
bool offchain = 2;
|
||||
}
|
||||
|
||||
message SubscribedEvent {
|
||||
}
|
||||
|
||||
|
||||
@@ -1168,6 +1168,17 @@
|
||||
],
|
||||
"default": "UNKNOWN"
|
||||
},
|
||||
"routerrpcFinalHtlcEvent": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"settled": {
|
||||
"type": "boolean"
|
||||
},
|
||||
"offchain": {
|
||||
"type": "boolean"
|
||||
}
|
||||
}
|
||||
},
|
||||
"routerrpcForwardEvent": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
@@ -1320,6 +1331,9 @@
|
||||
},
|
||||
"subscribed_event": {
|
||||
"$ref": "#/definitions/routerrpcSubscribedEvent"
|
||||
},
|
||||
"final_htlc_event": {
|
||||
"$ref": "#/definitions/routerrpcFinalHtlcEvent"
|
||||
}
|
||||
},
|
||||
"title": "HtlcEvent contains the htlc event that was processed. These are served on a\nbest-effort basis; events are not persisted, delivery is not guaranteed\n(in the event of a crash in the switch, forward events may be lost) and\nsome events may be replayed upon restart. Events consumed from this package\nshould be de-duplicated by the htlc's unique combination of incoming and\noutgoing channel id and htlc id. [EXPERIMENTAL]"
|
||||
|
||||
@@ -14,7 +14,7 @@ func rpcHtlcEvent(htlcEvent interface{}) (*HtlcEvent, error) {
|
||||
var (
|
||||
key htlcswitch.HtlcKey
|
||||
timestamp time.Time
|
||||
eventType htlcswitch.HtlcEventType
|
||||
eventType *htlcswitch.HtlcEventType
|
||||
event isHtlcEvent_Event
|
||||
)
|
||||
|
||||
@@ -27,7 +27,7 @@ func rpcHtlcEvent(htlcEvent interface{}) (*HtlcEvent, error) {
|
||||
}
|
||||
|
||||
key = e.HtlcKey
|
||||
eventType = e.HtlcEventType
|
||||
eventType = &e.HtlcEventType
|
||||
timestamp = e.Timestamp
|
||||
|
||||
case *htlcswitch.ForwardingFailEvent:
|
||||
@@ -36,7 +36,7 @@ func rpcHtlcEvent(htlcEvent interface{}) (*HtlcEvent, error) {
|
||||
}
|
||||
|
||||
key = e.HtlcKey
|
||||
eventType = e.HtlcEventType
|
||||
eventType = &e.HtlcEventType
|
||||
timestamp = e.Timestamp
|
||||
|
||||
case *htlcswitch.LinkFailEvent:
|
||||
@@ -57,7 +57,7 @@ func rpcHtlcEvent(htlcEvent interface{}) (*HtlcEvent, error) {
|
||||
}
|
||||
|
||||
key = e.HtlcKey
|
||||
eventType = e.HtlcEventType
|
||||
eventType = &e.HtlcEventType
|
||||
timestamp = e.Timestamp
|
||||
|
||||
case *htlcswitch.SettleEvent:
|
||||
@@ -68,7 +68,20 @@ func rpcHtlcEvent(htlcEvent interface{}) (*HtlcEvent, error) {
|
||||
}
|
||||
|
||||
key = e.HtlcKey
|
||||
eventType = e.HtlcEventType
|
||||
eventType = &e.HtlcEventType
|
||||
timestamp = e.Timestamp
|
||||
|
||||
case *htlcswitch.FinalHtlcEvent:
|
||||
event = &HtlcEvent_FinalHtlcEvent{
|
||||
FinalHtlcEvent: &FinalHtlcEvent{
|
||||
Settled: e.Settled,
|
||||
Offchain: e.Offchain,
|
||||
},
|
||||
}
|
||||
|
||||
key = htlcswitch.HtlcKey{
|
||||
IncomingCircuit: e.CircuitKey,
|
||||
}
|
||||
timestamp = e.Timestamp
|
||||
|
||||
default:
|
||||
@@ -85,18 +98,21 @@ func rpcHtlcEvent(htlcEvent interface{}) (*HtlcEvent, error) {
|
||||
}
|
||||
|
||||
// Convert the htlc event type to a rpc event.
|
||||
switch eventType {
|
||||
case htlcswitch.HtlcEventTypeSend:
|
||||
rpcEvent.EventType = HtlcEvent_SEND
|
||||
if eventType != nil {
|
||||
switch *eventType {
|
||||
case htlcswitch.HtlcEventTypeSend:
|
||||
rpcEvent.EventType = HtlcEvent_SEND
|
||||
|
||||
case htlcswitch.HtlcEventTypeReceive:
|
||||
rpcEvent.EventType = HtlcEvent_RECEIVE
|
||||
case htlcswitch.HtlcEventTypeReceive:
|
||||
rpcEvent.EventType = HtlcEvent_RECEIVE
|
||||
|
||||
case htlcswitch.HtlcEventTypeForward:
|
||||
rpcEvent.EventType = HtlcEvent_FORWARD
|
||||
case htlcswitch.HtlcEventTypeForward:
|
||||
rpcEvent.EventType = HtlcEvent_FORWARD
|
||||
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown event type: %v", eventType)
|
||||
default:
|
||||
return nil, fmt.Errorf("unknown event type: %v",
|
||||
eventType)
|
||||
}
|
||||
}
|
||||
|
||||
return rpcEvent, nil
|
||||
|
||||
Reference in new issue
Block a user