@@ -4,6 +4,7 @@ import LDKFramework
44@objc ( Ldk)
55class Ldk : NSObject {
66 var feeEstimator : LdkFeeEstimator ?
7+ var logger : LdkLogger ?
78
89 lazy var ldkStorage : URL = {
910 let docsurl = try ! FileManager . default. url ( for: . documentDirectory, in: . userDomainMask, appropriateFor: nil , create: false )
@@ -19,19 +20,33 @@ class Ldk: NSObject {
1920 @objc
2021 func version( _ resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
2122 let res : [ String : String ] = [
22- " c_bindings_get_compiled_version " : Bindings . swift_ldk_c_bindings_get_compiled_version ( ) ,
23- " ldk_get_compiled_version " : Bindings . swift_ldk_get_compiled_version ( ) ,
23+ " c_bindings " : Bindings . swift_ldk_c_bindings_get_compiled_version ( ) ,
24+ " ldk " : Bindings . swift_ldk_get_compiled_version ( ) ,
2425 ]
2526
2627 resolve ( String ( data: try ! JSONEncoder ( ) . encode ( res) , encoding: . utf8) !)
2728 }
2829
2930 @objc
3031 func initFeeEstimator( _ resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
32+ guard feeEstimator == nil else {
33+ return handleReject ( reject, . already_initialised)
34+ }
35+
3136 feeEstimator = LdkFeeEstimator ( )
3237 handleResolve ( resolve, . fee_estimator_initialised)
3338 }
3439
40+ @objc
41+ func initLogger( _ resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
42+ guard logger == nil else {
43+ return handleReject ( reject, . already_initialised)
44+ }
45+
46+ logger = LdkLogger ( )
47+ handleResolve ( resolve, . logger_initialised)
48+ }
49+
3550 @objc
3651 func updateFees( _ high: NSInteger , normal: NSInteger , low: NSInteger , resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
3752 guard let feeEstimator = feeEstimator else {
@@ -42,15 +57,29 @@ class Ldk: NSObject {
4257 handleResolve ( resolve, . fees_updated)
4358 }
4459
60+ @objc
61+ func setLogLevel( _ level: NSInteger , active: Bool , resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
62+ guard let logger = logger else {
63+ return handleReject ( reject, . init_logger)
64+ }
65+
66+ logger. setLevel ( level: UInt32 ( level) , active: active)
67+ handleResolve ( resolve, . log_level_updated)
68+ }
69+
4570 @objc
4671 func startChainMonitor( _ resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
4772 guard let feeEstimator = feeEstimator else {
4873 return handleReject ( reject, . init_fee_estimator)
4974 }
5075
76+ guard let logger = logger else {
77+ return handleReject ( reject, . init_logger)
78+ }
79+
5180 let filter = LdkFilter ( )
5281 let broadcaster = LdkBroadcaster ( )
53- let logger = LdkLogger ( )
82+
5483 //TODO set these fees from the JS code. They should be able to be updated live.
5584
5685 let persister = LdkPersister ( )
@@ -63,26 +92,24 @@ class Ldk: NSObject {
6392 persister: persister
6493 )
6594
66-
67-
68- let seed : [ UInt8 ] = [ 0 ] //TODO
69-
70- let seconds = UInt64 ( NSDate ( ) . timeIntervalSince1970)
71- let nanoSeconds = UInt32 . init ( truncating: NSNumber ( value: seconds * 1000 * 1000 ) )
72-
73- let keysManager = KeysManager ( seed: seed, starting_time_secs: seconds, starting_time_nanos: nanoSeconds)
74-
75- let network = LDKNetwork_Bitcoin
76-
77- let _ = ChannelManager (
78- fee_est: feeEstimator,
79- chain_monitor: Watch ( ) ,
80- tx_broadcaster: broadcaster,
81- logger: logger,
82- keys_manager: keysManager. as_KeysInterface ( ) ,
83- config: UserConfig ( ) ,
84- params: ChainParameters ( network_arg: network, best_block_arg: BestBlock ( block_hash: [ ] , height: 0 ) )
85- )
95+ // let seed: [UInt8] = [0] //TODO
96+ //
97+ // let seconds = UInt64(NSDate().timeIntervalSince1970)
98+ // let nanoSeconds = UInt32.init(truncating: NSNumber(value: seconds * 1000 * 1000))
99+ //
100+ // let keysManager = KeysManager(seed: seed, starting_time_secs: seconds, starting_time_nanos: nanoSeconds)
101+ //
102+ // let network = LDKNetwork_Bitcoin
103+ //
104+ // let _ = ChannelManager(
105+ // fee_est: feeEstimator,
106+ // chain_monitor: Watch(),
107+ // tx_broadcaster: broadcaster,
108+ // logger: logger,
109+ // keys_manager: keysManager.as_KeysInterface(),
110+ // config: UserConfig(),
111+ // params: ChainParameters(network_arg: network, best_block_arg: BestBlock(block_hash: [], height: 0))
112+ // )
86113
87114 resolve ( " Chain monitor started " )
88115 }
0 commit comments