@@ -45,7 +45,7 @@ public struct ChannelManagerConstructionParameters {
45
45
public var scoreParams : ProbabilisticScoringFeeParameters ?
46
46
public var payerRetries : Retry = Retry . initWithAttempts ( a: UInt32 ( 3 ) )
47
47
public var logger : Logger
48
-
48
+
49
49
public init ( config: UserConfig , entropySource: EntropySource , nodeSigner: NodeSigner , signerProvider: SignerProvider , feeEstimator: FeeEstimator , chainMonitor: ChainMonitor , txBroadcaster: BroadcasterInterface , logger: Logger , enableP2PGossip: Bool = false , scorer: MultiThreadedLockableScore ? = nil , scoreParams: ProbabilisticScoringFeeParameters ? = nil , payerRetries: Retry = Retry . initWithAttempts ( a: UInt32 ( 3 ) ) ) {
50
50
self . config = config
51
51
self . entropySource = entropySource
@@ -55,7 +55,7 @@ public struct ChannelManagerConstructionParameters {
55
55
self . chainMonitor = chainMonitor
56
56
self . txBroadcaster = txBroadcaster
57
57
self . logger = logger
58
-
58
+
59
59
self . enableP2PGossip = enableP2PGossip
60
60
self . scorer = scorer
61
61
if scorer != nil && scoreParams == nil {
@@ -65,7 +65,7 @@ public struct ChannelManagerConstructionParameters {
65
65
}
66
66
self . payerRetries = payerRetries
67
67
}
68
-
68
+
69
69
private class CMCRouter : Router {
70
70
override func findRoute( payer: [ UInt8 ] , routeParams: Bindings . RouteParameters , firstHops: [ Bindings . ChannelDetails ] ? , inflightHtlcs: Bindings . InFlightHtlcs ) -> Bindings . Result_RouteLightningErrorZ {
71
71
let errorString = " Error: Router unavailable: ChannelManagerConstructor initialized without Scorer or NetworkGraph. "
@@ -78,7 +78,7 @@ public struct ChannelManagerConstructionParameters {
78
78
return . initWithErr( e: LightningError ( errArg: errorString, actionArg: ErrorAction . initWithIgnoreAndLog ( a: . Error) ) )
79
79
}
80
80
}
81
-
81
+
82
82
fileprivate func router( networkGraph: NetworkGraph ? ) -> Router {
83
83
if let netGraph = networkGraph, let scorer = self . scorer, let scoreParams = self . scoreParams {
84
84
return DefaultRouter ( networkGraph: netGraph, logger: self . logger, entropySource: self . entropySource, scorer: scorer. asLockableScore ( ) , scoreParams: scoreParams) . asRouter ( )
@@ -101,17 +101,17 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
101
101
public let channel_manager_latest_block_hash : [ UInt8 ] ?
102
102
103
103
private let constructionParameters : ChannelManagerConstructionParameters
104
-
104
+
105
105
fileprivate var customPersister : CustomChannelManagerPersister ?
106
106
fileprivate var customEventHandler : EventHandler ?
107
107
public private( set) var netGraph : NetworkGraph ?
108
108
fileprivate var graphMessageHandler : GossipSync ?
109
-
110
-
111
-
112
-
109
+
110
+
111
+
112
+
113
113
// public private(set) var payer: InvoicePayer?
114
-
114
+
115
115
public let peerManager : PeerManager
116
116
private var tcpPeerHandler : TCPPeerHandler ?
117
117
@@ -127,7 +127,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
127
127
public init ( channelManagerSerialized: [ UInt8 ] , channelMonitorsSerialized: [ [ UInt8 ] ] , networkGraph: NetworkGraphArgument , filter: Filter ? , params: ChannelManagerConstructionParameters , logger: Logger ) throws {
128
128
129
129
self . constructionParameters = params
130
-
130
+
131
131
var monitors : [ ChannelMonitor ] = [ ]
132
132
self . channel_monitors = [ ]
133
133
@@ -155,7 +155,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
155
155
}
156
156
157
157
print ( " Collected channel monitors, reading channel manager " )
158
-
158
+
159
159
switch networkGraph {
160
160
case . instance( let graph) :
161
161
self . netGraph = graph
@@ -166,11 +166,11 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
166
166
}
167
167
self . netGraph = netGraphResult. getValue ( )
168
168
}
169
-
169
+
170
170
// TODO: figure out better way to obtain a router
171
171
let router = params. router ( networkGraph: self . netGraph)
172
172
let channelManagerReadArgs = ChannelManagerReadArgs ( entropySource: params. entropySource, nodeSigner: params. nodeSigner, signerProvider: params. signerProvider, feeEstimator: params. feeEstimator, chainMonitor: params. chainMonitor. asWatch ( ) , txBroadcaster: params. txBroadcaster, router: router, logger: params. logger, defaultConfig: params. config, channelMonitors: monitors)
173
-
173
+
174
174
guard let ( latestBlockHash, channelManager) = Bindings . readThirtyTwoBytesChannelManager ( ser: channelManagerSerialized, arg: channelManagerReadArgs) . getValue ( ) else {
175
175
throw InvalidSerializedDataError . invalidSerializedChannelManager
176
176
}
@@ -222,17 +222,17 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
222
222
public init ( network: Network , currentBlockchainTipHash: [ UInt8 ] , currentBlockchainTipHeight: UInt32 , netGraph: NetworkGraph ? , params: ChannelManagerConstructionParameters ) {
223
223
224
224
self . constructionParameters = params
225
-
225
+
226
226
self . channel_monitors = [ ]
227
227
self . channel_manager_latest_block_hash = nil
228
228
let block = BestBlock ( blockHashArg: currentBlockchainTipHash, heightArg: currentBlockchainTipHeight)
229
229
let chainParameters = ChainParameters ( networkArg: network, bestBlockArg: block)
230
-
230
+
231
231
self . netGraph = netGraph
232
232
let router = params. router ( networkGraph: self . netGraph)
233
233
let timestampSeconds = UInt32 ( NSDate ( ) . timeIntervalSince1970)
234
234
self . channelManager = ChannelManager ( feeEst: params. feeEstimator, chainMonitor: params. chainMonitor. asWatch ( ) , txBroadcaster: params. txBroadcaster, router: router, logger: params. logger, entropySource: params. entropySource, nodeSigner: params. nodeSigner, signerProvider: params. signerProvider, config: params. config, params: chainParameters, currentTimestamp: timestampSeconds)
235
-
235
+
236
236
let channelMessageHandler = channelManager. asChannelMessageHandler ( )
237
237
let noCustomMessages = IgnoringMessageHandler ( ) . asCustomMessageHandler ( )
238
238
let noOnionMessages = IgnoringMessageHandler ( ) . asOnionMessageHandler ( )
@@ -246,7 +246,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
246
246
} else {
247
247
messageHandler = MessageHandler ( chanHandlerArg: channelMessageHandler, routeHandlerArg: noRoutingMessages, onionMessageHandlerArg: noOnionMessages, customMessageHandlerArg: noCustomMessages)
248
248
}
249
-
249
+
250
250
let random_data = params. entropySource. getSecureRandomBytes ( ) ;
251
251
252
252
self . peerManager = PeerManager ( messageHandler: messageHandler, currentTime: timestampSeconds, ephemeralRandomData: random_data, logger: params. logger, nodeSigner: params. nodeSigner)
@@ -290,10 +290,12 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
290
290
self . customPersister = CustomChannelManagerPersister ( handler: persister)
291
291
self . customEventHandler = CustomEventHandler ( handler: persister)
292
292
293
+ let ignoringMessageHandler = IgnoringMessageHandler ( )
294
+ let onionMessenger = OnionMessenger . initWith ( entropySource: self . constructionParameters. entropySource, nodeSigner: self . constructionParameters. nodeSigner, logger: self . constructionParameters. logger, nodeIdLookup: NodeIdLookUp ( ) , messageRouter: MessageRouter ( ) , offersHandler: self . channelManager. asOffersMessageHandler ( ) , asyncPaymentsHandler: ignoringMessageHandler. asAsyncPaymentsMessageHandler ( ) , customHandler: ignoringMessageHandler. asCustomOnionMessageHandler ( ) )
295
+
293
296
// if there is a graph msg handler, set its is_owned to false
294
297
// self.graph_msg_handler?.cOpaqueStruct?.is_owned = false
295
-
296
- self . backgroundProcessor = BackgroundProcessor . start ( persister: self . customPersister!, eventHandler: self . customEventHandler!, chainMonitor: self . constructionParameters. chainMonitor, channelManager: self . channelManager, gossipSync: self . graphMessageHandler ?? GossipSync . none ( ) , peerManager: self . peerManager, logger: self . constructionParameters. logger, scorer: self . constructionParameters. scorer? . asWriteableScore ( ) )
298
+ self . backgroundProcessor = BackgroundProcessor . start ( persister: self . customPersister!, eventHandler: self . customEventHandler!, chainMonitor: self . constructionParameters. chainMonitor, channelManager: self . channelManager, onionMessenger: onionMessenger, gossipSync: self . graphMessageHandler ?? GossipSync . none ( ) , peerManager: self . peerManager, logger: self . constructionParameters. logger, scorer: self . constructionParameters. scorer? . asWriteableScore ( ) )
297
299
298
300
// restore it back to true
299
301
// self.graph_msg_handler?.cOpaqueStruct?.is_owned = true
@@ -360,15 +362,15 @@ fileprivate class CustomChannelManagerPersister: Persister {
360
362
self . handler = handler
361
363
super. init ( )
362
364
}
363
-
365
+
364
366
override func persistManager( channelManager: Bindings . ChannelManager ) -> Bindings . Result_NoneIOErrorZ {
365
367
return self . handler. persistManager ( channelManager: channelManager)
366
368
}
367
-
369
+
368
370
override func persistGraph( networkGraph: Bindings . NetworkGraph ) -> Bindings . Result_NoneIOErrorZ {
369
371
return self . handler. persistGraph ( networkGraph: networkGraph)
370
372
}
371
-
373
+
372
374
override func persistScorer( scorer: Bindings . WriteableScore ) -> Bindings . Result_NoneIOErrorZ {
373
375
return self . handler. persistScorer ( scorer: scorer)
374
376
}
@@ -383,15 +385,15 @@ fileprivate class CustomEventHandler: EventHandler {
383
385
super. init ( )
384
386
}
385
387
386
- override func handleEvent( event: Bindings . Event ) {
388
+ override func handleEvent( event: Bindings . Event ) -> Bindings . Result_NoneReplayEventZ {
387
389
// self.handler.handle_event(event: event.clone())
388
390
self . handler. handleEvent ( event: event)
389
391
}
390
392
391
393
}
392
394
393
395
public protocol ExtendedChannelManagerPersister : Persister {
394
- func handleEvent( event: Event ) -> Void ;
396
+ func handleEvent( event: Event ) -> Result_NoneReplayEventZ ;
395
397
}
396
398
397
399
public class TCPPeerHandler {
0 commit comments