@@ -3,7 +3,7 @@ import LDKFramework
33
44@objc ( Ldk)
55class Ldk : NSObject {
6- var networkGraphPath = " "
6+ var feeEstimator : LdkFeeEstimator ?
77
88 lazy var ldkStorage : URL = {
99 let docsurl = try ! FileManager . default. url ( for: . documentDirectory, in: . userDomainMask, appropriateFor: nil , create: false )
@@ -26,14 +26,33 @@ class Ldk: NSObject {
2626 resolve ( String ( data: try ! JSONEncoder ( ) . encode ( res) , encoding: . utf8) !)
2727 }
2828
29+ @objc
30+ func initFeeEstimator( _ resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
31+ feeEstimator = LdkFeeEstimator ( )
32+ handleResolve ( resolve, . fee_estimator_initialised)
33+ }
34+
35+ @objc
36+ func updateFees( _ high: NSInteger , normal: NSInteger , low: NSInteger , resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
37+ guard let feeEstimator = feeEstimator else {
38+ return handleReject ( reject, . init_fee_estimator)
39+ }
40+
41+ feeEstimator. update ( high: UInt32 ( high) , normal: UInt32 ( normal) , low: UInt32 ( low) )
42+ handleResolve ( resolve, . fees_updated)
43+ }
2944
3045 @objc
3146 func startChainMonitor( _ resolve: @escaping RCTPromiseResolveBlock , reject: @escaping RCTPromiseRejectBlock ) {
47+ guard let feeEstimator = feeEstimator else {
48+ return handleReject ( reject, . init_fee_estimator)
49+ }
50+
3251 let filter = LdkFilter ( )
3352 let broadcaster = LdkBroadcaster ( )
3453 let logger = LdkLogger ( )
3554 //TODO set these fees from the JS code. They should be able to be updated live.
36- let feeEstimator = LdkFeeEstimator ( high : 1000 , normal : 500 , low : 100 )
55+
3756 let persister = LdkPersister ( )
3857
3958 let chainMonitor = ChainMonitor (
@@ -44,14 +63,25 @@ class Ldk: NSObject {
4463 persister: persister
4564 )
4665
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+
4777 let _ = ChannelManager (
4878 fee_est: feeEstimator,
4979 chain_monitor: Watch ( ) ,
5080 tx_broadcaster: broadcaster,
5181 logger: logger,
52- keys_manager: KeysInterface ( ) ,
82+ keys_manager: keysManager . as_KeysInterface ( ) ,
5383 config: UserConfig ( ) ,
54- params: ChainParameters ( network_arg: LDKNetwork_Bitcoin , best_block_arg: BestBlock ( block_hash: [ ] , height: 0 ) )
84+ params: ChainParameters ( network_arg: network , best_block_arg: BestBlock ( block_hash: [ ] , height: 0 ) )
5585 )
5686
5787 resolve ( " Chain monitor started " )
0 commit comments