Skip to content

Commit e9f4cce

Browse files
authored
Merge pull request #112 from tnull/2023-07-release-0.0.116
Release 0.0.116
2 parents aceb1c7 + 5aa7979 commit e9f4cce

File tree

213 files changed

+40212
-9399
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

213 files changed

+40212
-9399
lines changed

.github/actions/install-dependencies/action.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,8 @@ runs:
2222
run: |
2323
echo `pwd`
2424
mkdir -p ${{ inputs.destination }}/bin
25-
git clone --branch 2023-04-0.0.115-java-bindings https://github.com/TheBlueMatt/rust-lightning ${{ inputs.destination }}/rust-lightning
26-
git clone --branch v0.0.115.3 https://github.com/lightningdevkit/ldk-c-bindings ${{ inputs.destination }}/ldk-c-bindings
25+
git clone --branch 2023-07-0.0.116-java-bindings https://github.com/TheBlueMatt/rust-lightning ${{ inputs.destination }}/rust-lightning
26+
git clone --branch v0.0.116.0 https://github.com/lightningdevkit/ldk-c-bindings ${{ inputs.destination }}/ldk-c-bindings
2727
- name: Install Rust, required targets
2828
if: ${{ inputs.configureRustNightly == 'true' }}
2929
shell: bash

README.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ Automatic Swift bindings generation for [`rust-lightning`](https://github.com/li
77
### Swift Package Manager
88
To install using Swift Package Manager, add the following line to the depedencies array of your `Package.swift`:
99
```
10-
.package(url: "https://github.com/lightningdevkit/ldk-swift/", exact: "0.0.115")
10+
.package(url: "https://github.com/lightningdevkit/ldk-swift/", exact: "0.0.116")
1111
```
1212
Be sure to also include "LightningDevKit" into your packages target like so:
1313

@@ -58,13 +58,13 @@ In order to generate these bindings from scratch, you will need to clone two dep
5858
**[rust-lightning](https://github.com/lightningdevkit/rust-lightning)**, (a specific branch built for bindings compatibility):
5959

6060
```shell
61-
git clone --branch 2023-04-0.0.115-java-bindings https://github.com/TheBlueMatt/rust-lightning /path/to/rust-lightning
61+
git clone --branch 2023-07-0.0.116-java-bindings https://github.com/TheBlueMatt/rust-lightning /path/to/rust-lightning
6262
```
6363

6464
**[ldk-c-bindings](https://github.com/lightningdevkit/ldk-c-bindings)**:
6565

6666
```shell
67-
git clone --branch v0.0.115.0 https://github.com/lightningdevkit/ldk-c-bindings /path/to/ldk-c-bindings
67+
git clone --branch v0.0.116.0 https://github.com/lightningdevkit/ldk-c-bindings /path/to/ldk-c-bindings
6868
```
6969

7070
Take note of where you clone these directories, it's best you save the absolute path somewhere handy for the rest of the remaining steps.
@@ -95,11 +95,11 @@ folder due to the previous `genbindings.sh` step. As Docker won't have access to
9595
replace those lines with the following:
9696

9797
```yaml
98-
lightning = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-04-0.0.115-java-bindings", default-features = false }
99-
lightning-persister = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-04-0.0.115-java-bindings", default-features = false }
100-
lightning-invoice = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-05-0.0.115-java-bindings", default-features = false }
101-
lightning-background-processor = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-04-0.0.115-java-bindings", default-features = false }
102-
lightning-rapid-gossip-sync = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-04-0.0.115-java-bindings", default-features = false }
98+
lightning = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-07-0.0.116-java-bindings", default-features = false }
99+
lightning-persister = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-07-0.0.116-java-bindings", default-features = false }
100+
lightning-invoice = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-07-0.0.116-java-bindings", default-features = false }
101+
lightning-background-processor = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-07-0.0.116-java-bindings", default-features = false }
102+
lightning-rapid-gossip-sync = { git = "https://github.com/thebluematt/rust-lightning", branch = "2023-07-0.0.116-java-bindings", default-features = false }
103103
```
104104

105105
You will note that the revision is unspecified and is currently just placeholder `xxx`s. To obtain the revision,

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

Lines changed: 27 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -42,10 +42,11 @@ public struct ChannelManagerConstructionParameters {
4242
public var txBroadcaster: BroadcasterInterface
4343
public var enableP2PGossip: Bool = false
4444
public var scorer: MultiThreadedLockableScore?
45+
public var scoreParams: ProbabilisticScoringFeeParameters?
4546
public var payerRetries: Retry = Retry.initWithAttempts(a: UInt(3))
4647
public var logger: Logger
4748

48-
public init (config: UserConfig, entropySource: EntropySource, nodeSigner: NodeSigner, signerProvider: SignerProvider, feeEstimator: FeeEstimator, chainMonitor: ChainMonitor, txBroadcaster: BroadcasterInterface, logger: Logger, enableP2PGossip: Bool = false, scorer: MultiThreadedLockableScore? = nil, payerRetries: Retry = Retry.initWithAttempts(a: UInt(3))) {
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: UInt(3))) {
4950
self.config = config
5051
self.entropySource = entropySource
5152
self.nodeSigner = nodeSigner
@@ -57,6 +58,11 @@ public struct ChannelManagerConstructionParameters {
5758

5859
self.enableP2PGossip = enableP2PGossip
5960
self.scorer = scorer
61+
if scorer != nil && scoreParams == nil {
62+
self.scoreParams = ProbabilisticScoringFeeParameters.initWithDefault()
63+
} else {
64+
self.scoreParams = scoreParams
65+
}
6066
self.payerRetries = payerRetries
6167
}
6268

@@ -74,8 +80,8 @@ public struct ChannelManagerConstructionParameters {
7480
}
7581

7682
fileprivate func router(networkGraph: NetworkGraph?) -> Router {
77-
if let netGraph = networkGraph, let scorer = self.scorer {
78-
return DefaultRouter(networkGraph: netGraph, logger: self.logger, randomSeedBytes: self.entropySource.getSecureRandomBytes(), scorer: scorer.asLockableScore()).asRouter()
83+
if let netGraph = networkGraph, let scorer = self.scorer, let scoreParams = self.scoreParams {
84+
return DefaultRouter(networkGraph: netGraph, logger: self.logger, randomSeedBytes: self.entropySource.getSecureRandomBytes(), scorer: scorer.asLockableScore(), scoreParams: scoreParams).asRouter()
7985
}
8086
return CMCRouter()
8187
}
@@ -180,17 +186,21 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
180186
let random_data = params.entropySource.getSecureRandomBytes();
181187

182188

183-
let noCustomMessages = IgnoringMessageHandler()
189+
let channelMessageHandler = channelManager.asChannelMessageHandler()
190+
let noCustomMessages = IgnoringMessageHandler().asCustomMessageHandler()
191+
let noOnionMessages = IgnoringMessageHandler().asOnionMessageHandler()
192+
let noRoutingMessages = IgnoringMessageHandler().asRoutingMessageHandler()
193+
184194
var messageHandler: MessageHandler!
185195
if let netGraph = self.netGraph, params.enableP2PGossip {
186196
let p2pGossipSync = P2PGossipSync(networkGraph: netGraph, utxoLookup: nil, logger: params.logger)
187197
self.graphMessageHandler = GossipSync.initWithP2P(a: p2pGossipSync)
188-
messageHandler = MessageHandler(chanHandlerArg: channelManager.asChannelMessageHandler(), routeHandlerArg: p2pGossipSync.asRoutingMessageHandler(), onionMessageHandlerArg: noCustomMessages.asOnionMessageHandler())
198+
messageHandler = MessageHandler(chanHandlerArg: channelMessageHandler, routeHandlerArg: p2pGossipSync.asRoutingMessageHandler(), onionMessageHandlerArg: noOnionMessages, customMessageHandlerArg: noCustomMessages)
189199
} else {
190-
messageHandler = MessageHandler(chanHandlerArg: channelManager.asChannelMessageHandler(), routeHandlerArg: noCustomMessages.asRoutingMessageHandler(), onionMessageHandlerArg: noCustomMessages.asOnionMessageHandler())
200+
messageHandler = MessageHandler(chanHandlerArg: channelMessageHandler, routeHandlerArg: noRoutingMessages, onionMessageHandlerArg: noOnionMessages, customMessageHandlerArg: noCustomMessages)
191201
}
192202
let timestampSeconds = UInt32(NSDate().timeIntervalSince1970)
193-
self.peerManager = PeerManager(messageHandler: messageHandler, currentTime: timestampSeconds, ephemeralRandomData: random_data, logger: params.logger, customMessageHandler: IgnoringMessageHandler().asCustomMessageHandler(), nodeSigner: params.nodeSigner)
203+
self.peerManager = PeerManager(messageHandler: messageHandler, currentTime: timestampSeconds, ephemeralRandomData: random_data, logger: params.logger, nodeSigner: params.nodeSigner)
194204

195205
if let filter = filter {
196206
for (currentMonitor, _) in self.channel_monitors {
@@ -220,22 +230,26 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
220230

221231
self.netGraph = netGraph
222232
let router = params.router(networkGraph: self.netGraph)
223-
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)
233+
let timestampSeconds = UInt32(NSDate().timeIntervalSince1970)
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)
224235

225-
let noCustomMessages = IgnoringMessageHandler()
236+
let channelMessageHandler = channelManager.asChannelMessageHandler()
237+
let noCustomMessages = IgnoringMessageHandler().asCustomMessageHandler()
238+
let noOnionMessages = IgnoringMessageHandler().asOnionMessageHandler()
239+
let noRoutingMessages = IgnoringMessageHandler().asRoutingMessageHandler()
240+
226241
var messageHandler: MessageHandler!
227242
if let netGraph = netGraph, params.enableP2PGossip {
228243
let p2pGossipSync = P2PGossipSync(networkGraph: netGraph, utxoLookup: nil, logger: params.logger)
229244
self.graphMessageHandler = GossipSync.initWithP2P(a: p2pGossipSync)
230-
messageHandler = MessageHandler(chanHandlerArg: channelManager.asChannelMessageHandler(), routeHandlerArg: p2pGossipSync.asRoutingMessageHandler(), onionMessageHandlerArg: noCustomMessages.asOnionMessageHandler())
245+
messageHandler = MessageHandler(chanHandlerArg: channelMessageHandler, routeHandlerArg: p2pGossipSync.asRoutingMessageHandler(), onionMessageHandlerArg: noOnionMessages, customMessageHandlerArg: noCustomMessages)
231246
} else {
232-
messageHandler = MessageHandler(chanHandlerArg: channelManager.asChannelMessageHandler(), routeHandlerArg: noCustomMessages.asRoutingMessageHandler(), onionMessageHandlerArg: noCustomMessages.asOnionMessageHandler())
247+
messageHandler = MessageHandler(chanHandlerArg: channelMessageHandler, routeHandlerArg: noRoutingMessages, onionMessageHandlerArg: noOnionMessages, customMessageHandlerArg: noCustomMessages)
233248
}
234249

235250
let random_data = params.entropySource.getSecureRandomBytes();
236251

237-
let timestampSeconds = UInt32(NSDate().timeIntervalSince1970)
238-
self.peerManager = PeerManager(messageHandler: messageHandler, currentTime: timestampSeconds, ephemeralRandomData: random_data, logger: params.logger, customMessageHandler: noCustomMessages.asCustomMessageHandler(), nodeSigner: params.nodeSigner)
252+
self.peerManager = PeerManager(messageHandler: messageHandler, currentTime: timestampSeconds, ephemeralRandomData: random_data, logger: params.logger, nodeSigner: params.nodeSigner)
239253

240254
super.init(conflictAvoidingVariableName: 0, instantiationContext: "ChannelManagerConstructor.swift::\(#function):\(#line)")
241255
// try! self.peerManager.addAnchor(anchor: self)

ci/LDKSwift/Tests/LDKSwiftTests/HumanObjectPeerTestInstance.swift

Lines changed: 12 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -173,9 +173,11 @@ public class HumanObjectPeerTestInstance {
173173
super.init()
174174
}
175175

176-
override func broadcastTransaction(tx: [UInt8]) {
177-
Task {
178-
await self.master.pendingBroadcastTracker.addTransaction(tx: tx)
176+
override func broadcastTransactions(txs: [[UInt8]]) {
177+
for tx in txs {
178+
Task {
179+
await self.master.pendingBroadcastTracker.addTransaction(tx: tx)
180+
}
179181
}
180182
}
181183
}
@@ -314,11 +316,11 @@ public class HumanObjectPeerTestInstance {
314316
scorerGraph = NetworkGraph(network: .Regtest, logger: self.logger)
315317
}
316318

317-
let scoringParams = ProbabilisticScoringParameters.initWithDefault()
318-
var probabalisticScorer = ProbabilisticScorer(params: scoringParams, networkGraph: scorerGraph, logger: self.logger)
319+
let decayParams = ProbabilisticScoringDecayParameters.initWithDefault()
320+
var probabalisticScorer = ProbabilisticScorer(decayParams: decayParams, networkGraph: scorerGraph, logger: self.logger)
319321
if master.configuration.reserializedProbabilisticScorer {
320322
let serializedScorer = probabalisticScorer.write()
321-
let probabalisticScorerResult = ProbabilisticScorer.read(ser: serializedScorer, argA: scoringParams, argB: scorerGraph, argC: self.logger)
323+
let probabalisticScorerResult = ProbabilisticScorer.read(ser: serializedScorer, argA: decayParams, argB: scorerGraph, argC: self.logger)
322324
probabalisticScorer = probabalisticScorerResult.getValue()!
323325
}
324326
let score = probabalisticScorer.asScore()
@@ -672,7 +674,7 @@ public class HumanObjectPeerTestInstance {
672674
let invoice = invoiceResult.getValue()!
673675
print("Invoice: \(invoice.toStr())")
674676

675-
let recreatedInvoice = Invoice.fromStr(s: invoice.toStr())
677+
let recreatedInvoice = Bolt11Invoice.fromStr(s: invoice.toStr())
676678
XCTAssertTrue(recreatedInvoice.isOk())
677679

678680
let channelManagerConstructor = peer1.constructor!
@@ -705,7 +707,7 @@ public class HumanObjectPeerTestInstance {
705707
return XCTAssert(false, "Expected .InvoicePayment, got \(paymentPurpose.getValueType())")
706708
}
707709
let invoicePayment = paymentPurpose.getValueAsInvoicePayment()!
708-
let preimage = invoicePayment.getPaymentPreimage()
710+
let preimage = invoicePayment.getPaymentPreimage()!
709711
let secret = invoicePayment.getPaymentSecret()
710712
if self.configuration.shouldRecipientRejectPayment {
711713
print("about to fail payment because shouldRecipientRejectPayment flag is set")
@@ -790,7 +792,7 @@ public class HumanObjectPeerTestInstance {
790792
print("Implicit amount invoice: \(invoice.toStr())")
791793

792794
let invoiceString = invoice.toStr()
793-
let recreatedInvoice = Invoice.fromStr(s: invoiceString)
795+
let recreatedInvoice = Bolt11Invoice.fromStr(s: invoiceString)
794796
XCTAssertTrue(recreatedInvoice.isOk())
795797

796798
let invoicePaymentResult = Bindings.payZeroValueInvoice(invoice: invoice, amountMsats: SEND_MSAT_AMOUNT_B_TO_A, retryStrategy: Retry.initWithAttempts(a: 3), channelmanager: peer2.channelManager)
@@ -828,7 +830,7 @@ public class HumanObjectPeerTestInstance {
828830
return XCTAssert(false, "Expected .InvoicePayment, got \(paymentPurpose.getValueType())")
829831
}
830832
let invoicePayment = paymentPurpose.getValueAsInvoicePayment()!
831-
let preimage = invoicePayment.getPaymentPreimage()
833+
let preimage = invoicePayment.getPaymentPreimage()!
832834
let secret = invoicePayment.getPaymentSecret()
833835
peer1.channelManager.claimFunds(paymentPreimage: preimage)
834836
print("claimed payment with secret \(secret) using preimage \(preimage)")

0 commit comments

Comments
 (0)