Skip to content

Commit 1f52fcb

Browse files
committed
expose net_graph from CMC and fix CStr clone behavior
1 parent 14c18db commit 1f52fcb

File tree

7 files changed

+43
-20
lines changed

7 files changed

+43
-20
lines changed

bindings/batteries/ChannelManagerConstructor.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,11 +31,11 @@ public class ChannelManagerConstructor: NativeTypeWrapper {
3131
let logger: Logger
3232
fileprivate var customPersister: CustomChannelManagerPersister?
3333
fileprivate var customEventHandler: EventHandler?
34-
fileprivate var net_graph: NetworkGraph?
34+
public private(set) var net_graph: NetworkGraph?
3535
fileprivate var graph_msg_handler: NetGraphMsgHandler?
3636
fileprivate var scorer: MultiThreadedLockableScore?
3737
fileprivate let keysInterface: KeysInterface!
38-
public var payer: InvoicePayer?
38+
public private(set) var payer: InvoicePayer?
3939
public let peerManager: PeerManager
4040

4141

@@ -287,7 +287,7 @@ fileprivate class CustomEventHandler: EventHandler {
287287
}
288288

289289
override func handle_event(event: Event) {
290-
self.handler.handle_event(event: event)
290+
self.handler.handle_event(event: event.clone())
291291
}
292292

293293
}

xcode/DirectBindingsApp/DirectBindingsApp.xcodeproj/project.pbxproj

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,7 @@
730730
07C753E126D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift in Sources */ = {isa = PBXBuildFile; fileRef = 07C753DF26D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift */; };
731731
07C753F326D9560200081BF8 /* PromiseKit in Frameworks */ = {isa = PBXBuildFile; productRef = 07C753F226D9560200081BF8 /* PromiseKit */; };
732732
2DD11C86114C6827D6E338A2 /* BlockchainObserver.swift in Sources */ = {isa = PBXBuildFile; fileRef = 076D2A6D28039ACB00970AFC /* BlockchainObserver.swift */; };
733+
2DD11F1338488839D8955B7A /* PolarIntegrationTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DD1172C8DF0B244CF69B0FA /* PolarIntegrationTest.swift */; };
733734
2DD11F99CF6E547FA7FB9225 /* RegtestBlockchainManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = 076D2A6B280399F500970AFC /* RegtestBlockchainManager.swift */; };
734735
/* End PBXBuildFile section */
735736

@@ -1136,6 +1137,7 @@
11361137
07BBCE6726D03B49000D96C4 /* TestBroadcasterInterface.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = TestBroadcasterInterface.swift; sourceTree = "<group>"; };
11371138
07C753DF26D6BE4E00081BF8 /* HumanObjectPeerTestInstance.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = HumanObjectPeerTestInstance.swift; sourceTree = "<group>"; };
11381139
07C753E826D954B100081BF8 /* PolarConnectionExperiment.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PolarConnectionExperiment.swift; sourceTree = "<group>"; };
1140+
2DD1172C8DF0B244CF69B0FA /* PolarIntegrationTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = PolarIntegrationTest.swift; sourceTree = "<group>"; };
11391141
/* End PBXFileReference section */
11401142

11411143
/* Begin PBXFrameworksBuildPhase section */
@@ -1174,6 +1176,7 @@
11741176
076D1D2227F3828E00970AFC /* BTCVarInt.swift */,
11751177
076D1D2527F38FDD00970AFC /* BitcoinTests.swift */,
11761178
076D1D2727F397E600970AFC /* BTCHashing.swift */,
1179+
2DD1172C8DF0B244CF69B0FA /* PolarIntegrationTest.swift */,
11771180
);
11781181
path = bitcoin;
11791182
sourceTree = "<group>";
@@ -2559,6 +2562,7 @@
25592562
076D237227FC219100970AFC /* Result_NoneAPIErrorZ.swift in Sources */,
25602563
2DD11F99CF6E547FA7FB9225 /* RegtestBlockchainManager.swift in Sources */,
25612564
2DD11C86114C6827D6E338A2 /* BlockchainObserver.swift in Sources */,
2565+
2DD11F1338488839D8955B7A /* PolarIntegrationTest.swift in Sources */,
25622566
);
25632567
runOnlyForDeploymentPostprocessing = 0;
25642568
};

xcode/DirectBindingsApp/DirectBindingsAppTests/HumanObjectPeerTestInstance.swift

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -205,11 +205,11 @@ public class HumanObjectPeerTestInstance {
205205
}
206206

207207
func handle_event(event: Event) {
208-
let eventClone = event.clone()
209-
print("peer \(self.master.seed) received event: \(eventClone.getValueType())")
208+
// let eventClone = event.clone()
209+
print("peer \(self.master.seed) received event: \(event.getValueType())")
210210
Task {
211211
// clone to avoid deallocation-related issues
212-
await master.pendingEventTracker.addEvent(event: eventClone)
212+
await master.pendingEventTracker.addEvent(event: event)
213213
}
214214
}
215215

xcode/DirectBindingsApp/DirectBindingsAppTests/test-batteries/bitcoin/PolarIntegrationTest.swift

Lines changed: 27 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -34,9 +34,9 @@ public class PolarIntegrationTest: XCTestCase {
3434

3535
let config = UserConfig()
3636
let lightningNetwork = LDKNetwork_Regtest
37-
let genesisHash = try await rpcInterface.getBlockHash(height: 0)
37+
let genesisHash = try await rpcInterface.getBlockHash(height: 0)
3838
let reversedGenesisHash = [UInt8](genesisHash.reversed())
39-
let chaintipHash = try await rpcInterface.getChaintipHash()
39+
let chaintipHash = try await rpcInterface.getChaintipHash()
4040
let reversedChaintipHash = [UInt8](chaintipHash.reversed())
4141
let chaintipHeight = try await rpcInterface.getChaintipHeight()
4242
let networkGraph = NetworkGraph(genesis_hash: reversedGenesisHash)
@@ -105,6 +105,22 @@ public class PolarIntegrationTest: XCTestCase {
105105
let channelOpenResult = channelManager.create_channel(their_network_key: lndPubkey, channel_value_satoshis: channelValue, push_msat: reserveAmount, user_channel_id: 42, override_config: config)
106106
XCTAssertTrue(channelOpenResult.isOk())
107107

108+
if let channelOpenError = channelOpenResult.getError() {
109+
print("error type: \(channelOpenError.getValueType())")
110+
if let error = channelOpenError.getValueAsAPIMisuseError() {
111+
print("API misuse error: \(error.getErr())")
112+
} else if let error = channelOpenError.getValueAsChannelUnavailable() {
113+
print("channel unavailable error: \(error.getErr())")
114+
} else if let error = channelOpenError.getValueAsFeeRateTooHigh() {
115+
print("excessive fee rate error: \(error.getErr())")
116+
} else if let error = channelOpenError.getValueAsIncompatibleShutdownScript() {
117+
print("incompatible shutdown script: \(error.getScript())")
118+
} else if let error = channelOpenError.getValueAsRouteError() {
119+
print("route error: \(error.getErr())")
120+
}
121+
return
122+
}
123+
108124
let managerEvents = await channelManagerAndNetworkGraphPersisterAndEventHandler.getManagerEvents(expectedCount: 1)
109125
XCTAssertEqual(managerEvents.count, 1)
110126

@@ -280,9 +296,8 @@ public class PolarIntegrationTest: XCTestCase {
280296
}
281297

282298
func handle_event(event: Event) {
283-
let clonedEvent = event.dangle().clone()
284299
Task {
285-
await self.eventTracker.addEvent(event: clonedEvent)
300+
await self.eventTracker.addEvent(event: event)
286301
}
287302
}
288303

@@ -299,7 +314,7 @@ public class PolarIntegrationTest: XCTestCase {
299314
private(set) var pendingEvents: [Event] = []
300315
private(set) var continuations: [CheckedContinuation<Void, Never>] = []
301316

302-
private func triggerContinuations(){
317+
private func triggerContinuations() {
303318
let continuations = self.continuations
304319
self.continuations.removeAll()
305320
for currentContinuation in continuations {
@@ -325,7 +340,7 @@ public class PolarIntegrationTest: XCTestCase {
325340
return self.pendingEvents
326341
}
327342

328-
func getAndClearEvents() -> [Event]{
343+
func getAndClearEvents() -> [Event] {
329344
let events = self.pendingEvents
330345
self.pendingEvents.removeAll()
331346
return events
@@ -353,15 +368,19 @@ public class PolarIntegrationTest: XCTestCase {
353368
private class func hexStringToBytes(hexString: String) -> [UInt8]? {
354369
let hexStr = hexString.dropFirst(hexString.hasPrefix("0x") ? 2 : 0)
355370

356-
guard hexStr.count % 2 == 0 else { return nil }
371+
guard hexStr.count % 2 == 0 else {
372+
return nil
373+
}
357374

358375
var newData = [UInt8]()
359376

360377
var indexIsEven = true
361378
for i in hexStr.indices {
362379
if indexIsEven {
363380
let byteRange = i...hexStr.index(after: i)
364-
guard let byte = UInt8(hexStr[byteRange], radix: 16) else { return nil }
381+
guard let byte = UInt8(hexStr[byteRange], radix: 16) else {
382+
return nil
383+
}
365384
newData.append(byte)
366385
}
367386
indexIsEven.toggle()

xcode/DirectBindingsApp/ldk_ver.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ static inline int _ldk_strncmp(const char *s1, const char *s2, uint64_t n) {
88
return 0;
99
}
1010

11-
#define _LDK_HEADER_VER "v0.0.106-10-ga86d8b78fedd014a"
12-
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.1"
11+
#define _LDK_HEADER_VER "v0.0.106-10-ga86d8b78fedd014a-dirty"
12+
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.2-dirty"
1313
static inline const char* check_get_ldk_version() {
1414
LDKStr bin_ver = _ldk_get_compiled_version();
1515
if (_ldk_strncmp(_LDK_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {

xcode/LDKFramework/ldk_ver.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ static inline int _ldk_strncmp(const char *s1, const char *s2, uint64_t n) {
88
return 0;
99
}
1010

11-
#define _LDK_HEADER_VER "v0.0.106-10-ga86d8b78fedd014a"
12-
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.1"
11+
#define _LDK_HEADER_VER "v0.0.106-10-ga86d8b78fedd014a-dirty"
12+
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.2-dirty"
1313
static inline const char* check_get_ldk_version() {
1414
LDKStr bin_ver = _ldk_get_compiled_version();
1515
if (_ldk_strncmp(_LDK_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {

xcode/LDKFramework_Mac/ldk_ver.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,8 @@ static inline int _ldk_strncmp(const char *s1, const char *s2, uint64_t n) {
88
return 0;
99
}
1010

11-
#define _LDK_HEADER_VER "v0.0.106-10-ga86d8b78fedd014a"
12-
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.1"
11+
#define _LDK_HEADER_VER "v0.0.106-10-ga86d8b78fedd014a-dirty"
12+
#define _LDK_C_BINDINGS_HEADER_VER "v0.0.106.2-dirty"
1313
static inline const char* check_get_ldk_version() {
1414
LDKStr bin_ver = _ldk_get_compiled_version();
1515
if (_ldk_strncmp(_LDK_HEADER_VER, (const char*)bin_ver.chars, bin_ver.len) != 0) {

0 commit comments

Comments
 (0)