@@ -24,6 +24,7 @@ func ProviderDataTransferSubscriber(deals IDatatransferHandler) datatransfer.Sub
24
24
dealProposal , err := rm .DealProposalFromNode (voucher .Voucher )
25
25
// if this event is for a transfer not related to storage, ignore
26
26
if err != nil {
27
+ log .Errorf ("received wrong voucher type: %s" , err )
27
28
return
28
29
}
29
30
@@ -40,26 +41,26 @@ func ProviderDataTransferSubscriber(deals IDatatransferHandler) datatransfer.Sub
40
41
41
42
switch event .Code {
42
43
case datatransfer .Accept :
43
- mlog .With ("retrievalEvent" , rm .ProviderEventDealAccepted )
44
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventDealAccepted ] )
44
45
err := deals .HandleAcceptFor (ctx , identify , channelState .ChannelID ())
45
46
if err != nil {
46
47
log .Errorf ("processing dt event: %s" , err )
47
48
}
48
49
case datatransfer .Disconnected :
49
- mlog .With ("retrievalEvent" , rm .ProviderEventDataTransferError )
50
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventDataTransferError ] )
50
51
err := deals .HandleDisconnectFor (ctx , identify , fmt .Errorf ("deal data transfer stalled (peer hungup)" ))
51
52
if err != nil {
52
53
log .Errorf ("processing dt event: %s" , err )
53
54
}
54
55
case datatransfer .Error :
55
- mlog .With ("retrievalEvent" , rm .ProviderEventDataTransferError )
56
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventDataTransferError ] )
56
57
err := deals .HandleErrorForDeal (ctx , identify , fmt .Errorf ("deal data transfer failed: %s" , event .Message ))
57
58
if err != nil {
58
59
log .Errorf ("processing dt event: %s" , err )
59
60
}
60
61
case datatransfer .DataLimitExceeded :
61
62
// DataLimitExceeded indicates it's time to wait for a payment
62
- mlog .With ("retrievalEvent" , rm .ProviderEventPaymentRequested )
63
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventPaymentRequested ] )
63
64
err := deals .HandlePaymentRequested (ctx , identify )
64
65
if err != nil {
65
66
log .Errorf ("processing dt event: %s" , err )
@@ -69,24 +70,32 @@ func ProviderDataTransferSubscriber(deals IDatatransferHandler) datatransfer.Sub
69
70
// Because the legacy client expects a final voucher, we dispatch this event event when
70
71
// the deal is free -- so that we have a chance to send this final voucher before completion
71
72
// TODO: do not send the legacy voucher when the client no longer expects it
72
- mlog .With ("retrievalEvent" , rm .ProviderEventLastPaymentRequested )
73
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventLastPaymentRequested ] )
73
74
err := deals .HandleLastPayment (ctx , identify )
74
75
if err != nil {
75
76
log .Errorf ("processing dt event: %s" , err )
76
77
}
77
78
case datatransfer .NewVoucher :
78
79
// NewVoucher indicates a potential new payment we should attempt to process
79
- mlog .With ("retrievalEvent" , rm .ProviderEventProcessPayment )
80
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventProcessPayment ] )
80
81
err := deals .HandleProcessPayment (ctx , identify )
81
82
if err != nil {
82
83
log .Errorf ("processing dt event: %s" , err )
83
84
}
84
85
case datatransfer .Cancel :
85
- mlog .With ("retrievalEvent" , rm .ProviderEventClientCancelled )
86
+ mlog = mlog .With ("retrievalEvent" , rm .ProviderEvents [ rm . ProviderEventClientCancelled ] )
86
87
err := deals .HandleCancelForDeal (ctx , identify )
87
88
if err != nil {
88
89
log .Errorf ("processing dt event: %s" , err )
89
90
}
91
+ case datatransfer .NewVoucherResult :
92
+ mlog = mlog .With ("channelStatus" , channelState .Status ())
93
+ if channelState .Status () == datatransfer .Finalizing {
94
+ err := deals .HandleCompleteFor (ctx , identify )
95
+ if err != nil {
96
+ log .Errorf ("processing dt event: %s" , err )
97
+ }
98
+ }
90
99
default :
91
100
return
92
101
}
0 commit comments