Skip to content

Commit a7a6d63

Browse files
authored
Merge pull request #85 from tnull/2022-11-channelmanager-init-with-user-config
Allow to specify a `UserConfig` for `CMC`
2 parents 330579f + c3b7c15 commit a7a6d63

File tree

6 files changed

+18
-16
lines changed

6 files changed

+18
-16
lines changed

ci/LDKSwift/Sources/LDKSwift/batteries/ChannelManagerConstructor.swift

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -40,6 +40,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
4040
fileprivate var scorer: MultiThreadedLockableScore?
4141
fileprivate let keysInterface: KeysInterface!
4242
public private(set) var payer: InvoicePayer?
43+
fileprivate var payerRetries: Retry!
4344
public let peerManager: PeerManager
4445
private var tcpPeerHandler: TCPPeerHandler?
4546

@@ -54,7 +55,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
5455
private let chain_monitor: ChainMonitor
5556

5657

57-
public init(channelManagerSerialized: [UInt8], channelMonitorsSerialized: [[UInt8]], keysInterface: KeysInterface, feeEstimator: FeeEstimator, chainMonitor: ChainMonitor, filter: Filter?, netGraphSerialized: [UInt8]?, txBroadcaster: BroadcasterInterface, logger: Logger, enableP2PGossip: Bool = false) throws {
58+
public init(channelManagerSerialized: [UInt8], channelMonitorsSerialized: [[UInt8]], keysInterface: KeysInterface, feeEstimator: FeeEstimator, chainMonitor: ChainMonitor, filter: Filter?, netGraphSerialized: [UInt8]?, txBroadcaster: BroadcasterInterface, logger: Logger, enableP2PGossip: Bool = false, userConfig: UserConfig = UserConfig.initWithDefault(), payerRetries: Retry = Retry.initWithAttempts(a: UInt(3))) throws {
5859

5960
var monitors: [ChannelMonitor] = []
6061
self.channel_monitors = []
@@ -83,8 +84,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
8384
}
8485

8586
print("Collected channel monitors, reading channel manager")
86-
let channelManagerReadArgs = ChannelManagerReadArgs(keysManager: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor.asWatch(), txBroadcaster: txBroadcaster, logger: logger, defaultConfig: UserConfig.initWithDefault(), channelMonitors: monitors)
87-
87+
let channelManagerReadArgs = ChannelManagerReadArgs(keysManager: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor.asWatch(), txBroadcaster: txBroadcaster, logger: logger, defaultConfig: userConfig, channelMonitors: monitors)
8888

8989
guard let (latestBlockHash, channelManager) = Bindings.readBlockHashChannelManager(ser: channelManagerSerialized, arg: channelManagerReadArgs).getValue() else {
9090
throw InvalidSerializedDataError.invalidSerializedChannelManager
@@ -99,6 +99,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
9999
self.channel_manager_latest_block_hash = latestBlockHash
100100
self.chain_monitor = chainMonitor
101101
self.keysInterface = keysInterface
102+
self.payerRetries = payerRetries
102103
self.logger = logger
103104

104105
let random_data = keysInterface.getSecureRandomBytes();
@@ -143,14 +144,15 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
143144
/**
144145
* Constructs a channel manager from the given interface implementations
145146
*/
146-
public init(network: Network, config: UserConfig, currentBlockchainTipHash: [UInt8], currentBlockchainTipHeight: UInt32, keysInterface: KeysInterface, feeEstimator: FeeEstimator, chainMonitor: ChainMonitor, netGraph: NetworkGraph?, txBroadcaster: BroadcasterInterface, logger: Logger, enableP2PGossip: Bool = false) {
147+
public init(network: Network, userConfig: UserConfig, currentBlockchainTipHash: [UInt8], currentBlockchainTipHeight: UInt32, keysInterface: KeysInterface, feeEstimator: FeeEstimator, chainMonitor: ChainMonitor, netGraph: NetworkGraph?, txBroadcaster: BroadcasterInterface, logger: Logger, enableP2PGossip: Bool = false, payerRetries: Retry = Retry.initWithAttempts(a: UInt(3))) {
147148

148149
self.channel_monitors = []
149150
self.channel_manager_latest_block_hash = nil
150151
self.chain_monitor = chainMonitor
151152
let block = BestBlock(blockHash: currentBlockchainTipHash, height: currentBlockchainTipHeight)
152153
let chainParameters = ChainParameters(networkArg: network, bestBlockArg: block)
153-
self.channelManager = ChannelManager(feeEst: feeEstimator, chainMonitor: chainMonitor.asWatch(), txBroadcaster: txBroadcaster, logger: logger, keysManager: keysInterface, config: config, params: chainParameters)
154+
self.channelManager = ChannelManager(feeEst: feeEstimator, chainMonitor: chainMonitor.asWatch(), txBroadcaster: txBroadcaster, logger: logger, keysManager: keysInterface, config: userConfig, params: chainParameters)
155+
self.payerRetries = payerRetries
154156
self.logger = logger
155157

156158
self.keysInterface = keysInterface
@@ -215,7 +217,7 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
215217
// either dangle router, or set is_owned to false
216218
// scorer.cType!.is_owned = false
217219
// router.cType!.is_owned = false
218-
self.payer = InvoicePayer(payer: self.channelManager.asPayer(), router: router.asRouter(), logger: self.logger, eventHandler: self.customEventHandler!, retry: Retry.initWithAttempts(a: UInt(3)))
220+
self.payer = InvoicePayer(payer: self.channelManager.asPayer(), router: router.asRouter(), logger: self.logger, eventHandler: self.customEventHandler!, retry: self.payerRetries)
219221
// router.cType!.is_owned = true
220222
self.customEventHandler = self.payer!.asEventHandler()
221223
}

ci/LDKSwift/Tests/LDKSwiftTests/HumanObjectPeerTestInstance.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,7 @@ public class HumanObjectPeerTestInstance {
304304

305305
let graph = NetworkGraph(genesisHash: [UInt8](repeating: 0, count: 32), logger: self.logger)
306306

307-
self.constructor = ChannelManagerConstructor(network: .Bitcoin, config: UserConfig.initWithDefault(), currentBlockchainTipHash: [UInt8](repeating: 0, count: 32), currentBlockchainTipHeight: 0, keysInterface: self.keysInterface, feeEstimator: self.feeEstimator, chainMonitor: self.chainMonitor!, netGraph: graph, txBroadcaster: self.txBroadcaster, logger: self.logger)
307+
self.constructor = ChannelManagerConstructor(network: .Bitcoin, userConfig: UserConfig.initWithDefault(), currentBlockchainTipHash: [UInt8](repeating: 0, count: 32), currentBlockchainTipHeight: 0, keysInterface: self.keysInterface, feeEstimator: self.feeEstimator, chainMonitor: self.chainMonitor!, netGraph: graph, txBroadcaster: self.txBroadcaster, logger: self.logger)
308308

309309
let scoringParams = ProbabilisticScoringParameters.initWithDefault()
310310
let probabalisticScorer = ProbabilisticScorer(params: scoringParams, networkGraph: graph, logger: self.logger)
@@ -325,7 +325,7 @@ public class HumanObjectPeerTestInstance {
325325
do {
326326
// channel manager constructor is mandatory
327327
let graph = NetworkGraph(genesisHash: [UInt8](repeating: 0, count: 32), logger: self.logger)
328-
self.constructor = ChannelManagerConstructor(network: .Bitcoin, config: UserConfig.initWithDefault(), currentBlockchainTipHash: [UInt8](repeating: 0, count: 32), currentBlockchainTipHeight: 0, keysInterface: self.keysInterface, feeEstimator: self.feeEstimator, chainMonitor: self.chainMonitor!, netGraph: graph, txBroadcaster: self.txBroadcaster, logger: self.logger)
328+
self.constructor = ChannelManagerConstructor(network: .Bitcoin, userConfig: UserConfig.initWithDefault(), currentBlockchainTipHash: [UInt8](repeating: 0, count: 32), currentBlockchainTipHeight: 0, keysInterface: self.keysInterface, feeEstimator: self.feeEstimator, chainMonitor: self.chainMonitor!, netGraph: graph, txBroadcaster: self.txBroadcaster, logger: self.logger)
329329
self.constructor?.chainSyncCompleted(persister: TestChannelManagerPersister(master: self), scorer: nil)
330330
self.channelManager = self.constructor!.channelManager
331331
Task {

ci/LDKSwift/Tests/LDKSwiftTests/LDKSwiftTests.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -171,7 +171,7 @@ class LDKSwiftTests: XCTestCase {
171171
let channelMonitorPersister = TestPersister()
172172
let chainMonitor = ChainMonitor(chainSource: nil, broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
173173

174-
let channelManagerConstructor = ChannelManagerConstructor(network: .Bitcoin, config: config, currentBlockchainTipHash: reversedGenesisHash, currentBlockchainTipHeight: 0, keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
174+
let channelManagerConstructor = ChannelManagerConstructor(network: .Bitcoin, userConfig: config, currentBlockchainTipHash: reversedGenesisHash, currentBlockchainTipHeight: 0, keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
175175
let channelManager = channelManagerConstructor.channelManager
176176
let peerManager = channelManagerConstructor.peerManager
177177
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()
@@ -210,7 +210,7 @@ class LDKSwiftTests: XCTestCase {
210210
let channelMonitorPersister = TestPersister()
211211
let chainMonitor = ChainMonitor(chainSource: nil, broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
212212

213-
let channelManagerConstructor = ChannelManagerConstructor(network: .Bitcoin, config: config, currentBlockchainTipHash: reversedGenesisHash, currentBlockchainTipHeight: 0, keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
213+
let channelManagerConstructor = ChannelManagerConstructor(network: .Bitcoin, userConfig: config, currentBlockchainTipHash: reversedGenesisHash, currentBlockchainTipHeight: 0, keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
214214
let channelManager = channelManagerConstructor.channelManager
215215

216216
let channelValue: UInt64 = 1_300_000 // 1.3 million satoshis, or 0.013 BTC
@@ -255,7 +255,7 @@ class LDKSwiftTests: XCTestCase {
255255
let channelMonitorPersister = TestPersister()
256256
let chainMonitor = ChainMonitor(chainSource: nil, broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
257257

258-
let channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, config: config, currentBlockchainTipHash: reversedGenesisHash, currentBlockchainTipHeight: 0, keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
258+
let channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, userConfig: config, currentBlockchainTipHash: reversedGenesisHash, currentBlockchainTipHeight: 0, keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
259259
let channelManager = channelManagerConstructor.channelManager
260260
let peerManager = channelManagerConstructor.peerManager
261261
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()

xcode/LDKFramework/DirectlyLinkedBindingsApp/PolarConnectionExperiment.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,7 +67,7 @@ class PolarConnectionExperiment: ObservableObject {
6767

6868

6969

70-
self.channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, config: config, current_blockchain_tip_hash: chainTipHash, current_blockchain_tip_height: chainTipHeight, keys_interface: self.keysInterface, fee_estimator: self.feeEstimator, chain_monitor: self.chainMonitor, net_graph: networkGraph, tx_broadcaster: self.broadcaster, logger: self.logger)
70+
self.channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, userConfig: config, current_blockchain_tip_hash: chainTipHash, current_blockchain_tip_height: chainTipHeight, keys_interface: self.keysInterface, fee_estimator: self.feeEstimator, chain_monitor: self.chainMonitor, net_graph: networkGraph, tx_broadcaster: self.broadcaster, logger: self.logger)
7171
let userConfig = UserConfig()
7272
let latestBlockHash = [UInt8](Data(base64Encoded: "AAAAAAAAAAAABe5Xh25D12zkQuLAJQbBeLoF1tEQqR8=")!)
7373
let latestBlockHeight = 700123

xcode/LDKFramework/DirectlyLinkedBindingsApp/app-batteries/PolarIntegrationSample.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public class PolarIntegrationSample {
7373
let channelManagerAndNetworkGraphPersisterAndEventHandler = LDKTraitImplementations.PolarChannelManagerAndNetworkGraphPersisterAndEventHandler()
7474
let chainMonitor = ChainMonitor(chainSource: nil, broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
7575

76-
let channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, config: config, currentBlockchainTipHash: reversedChaintipHash, currentBlockchainTipHeight: UInt32(chaintipHeight), keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
76+
let channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, userConfig: config, currentBlockchainTipHash: reversedChaintipHash, currentBlockchainTipHeight: UInt32(chaintipHeight), keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
7777
let channelManager = channelManagerConstructor.channelManager
7878
let peerManager = channelManagerConstructor.peerManager
7979
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()
@@ -473,7 +473,7 @@ public class PolarIntegrationSample {
473473
let channelManagerAndNetworkGraphPersisterAndEventHandler = LDKTraitImplementations.PolarChannelManagerAndNetworkGraphPersisterAndEventHandler()
474474
let chainMonitor = ChainMonitor(chainSource: nil, broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
475475

476-
channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, config: config, currentBlockchainTipHash: reversedChaintipHash, currentBlockchainTipHeight: UInt32(chaintipHeight), keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
476+
channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, userConfig: config, currentBlockchainTipHash: reversedChaintipHash, currentBlockchainTipHeight: UInt32(chaintipHeight), keysInterface: keysInterface, feeEstimator: feeEstimator, chainMonitor: chainMonitor, netGraph: networkGraph, txBroadcaster: broadcaster, logger: logger)
477477
let channelManager = channelManagerConstructor.channelManager
478478
let peerManager = channelManagerConstructor.peerManager
479479
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()

xcode/LDKFramework/DirectlyLinkedBindingsAppTests/polar/PolarIntegrationSample.swift

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ public class PolarIntegrationSample {
7272
let channelManagerAndNetworkGraphPersisterAndEventHandler = LDKTraitImplementations.PolarChannelManagerAndNetworkGraphPersisterAndEventHandler()
7373
let chainMonitor = ChainMonitor(chain_source: Option_FilterZ(value: nil), broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
7474

75-
let channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, config: config, current_blockchain_tip_hash: reversedChaintipHash, current_blockchain_tip_height: UInt32(chaintipHeight), keys_interface: keysInterface, fee_estimator: feeEstimator, chain_monitor: chainMonitor, net_graph: networkGraph, tx_broadcaster: broadcaster, logger: logger)
75+
let channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, userConfig: config, current_blockchain_tip_hash: reversedChaintipHash, current_blockchain_tip_height: UInt32(chaintipHeight), keys_interface: keysInterface, fee_estimator: feeEstimator, chain_monitor: chainMonitor, net_graph: networkGraph, tx_broadcaster: broadcaster, logger: logger)
7676
let channelManager = channelManagerConstructor.channelManager
7777
let peerManager = channelManagerConstructor.peerManager
7878
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()
@@ -466,7 +466,7 @@ public class PolarIntegrationSample {
466466
let channelManagerAndNetworkGraphPersisterAndEventHandler = LDKTraitImplementations.PolarChannelManagerAndNetworkGraphPersisterAndEventHandler()
467467
let chainMonitor = ChainMonitor(chain_source: Option_FilterZ(value: nil), broadcaster: broadcaster, logger: logger, feeest: feeEstimator, persister: channelMonitorPersister)
468468

469-
channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, config: config, current_blockchain_tip_hash: reversedChaintipHash, current_blockchain_tip_height: UInt32(chaintipHeight), keys_interface: keysInterface, fee_estimator: feeEstimator, chain_monitor: chainMonitor, net_graph: networkGraph, tx_broadcaster: broadcaster, logger: logger)
469+
channelManagerConstructor = ChannelManagerConstructor(network: lightningNetwork, userConfig: config, current_blockchain_tip_hash: reversedChaintipHash, current_blockchain_tip_height: UInt32(chaintipHeight), keys_interface: keysInterface, fee_estimator: feeEstimator, chain_monitor: chainMonitor, net_graph: networkGraph, tx_broadcaster: broadcaster, logger: logger)
470470
let channelManager = channelManagerConstructor.channelManager
471471
let peerManager = channelManagerConstructor.peerManager
472472
let tcpPeerHandler = channelManagerConstructor.getTCPPeerHandler()

0 commit comments

Comments
 (0)