mirror of
https://github.com/cake-tech/cake_wallet.git
synced 2024-12-23 03:59:23 +00:00
380f7653b2
* version 4.20.0 * update build numbers * UI updates and script fix for ios bundle identifier * disable mweb for desktop * change hardcoded ltc server ip address electrum connection enhancement * MWEB enhancements 2.0 (#1735) * additional logging and minor fixes * additional logging and minor fixes * addresses pt.1 * Allow Wallet Group Names to be the same as Wallet Names (#1730) * fix: Issues with imaging * fix: Allow group names to be the same as wallet names * fix: Bug with wallet grouping when a wallet is minimized * fix: Bug with wallet grouping when a wallet is minimized * logs of fixes and experimental changes, close wallet before opening next * save * fix icon * fixes * [skip ci] updates * [skip ci] updates * updates * minor optimizations * fix for when switching between wallets * [skip ci] updates * [skip ci] updates * Update cw_bitcoin/lib/litecoin_wallet.dart Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * Update cw_bitcoin/lib/litecoin_wallet.dart Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * mobx * mostly logging * stream fix pt.1 [skip ci] * updates * some fixes and enhancements * [skip ci] minor * potential partial fix for streamsink closed * fix stream sink closed errors * fix mweb logo colors * save * minor enhancements [skip ci] * save * experimental * minor * minor [skip ci] --------- Co-authored-by: David Adegoke <64401859+Blazebrain@users.noreply.github.com> Co-authored-by: Omar Hatem <omarh.ismail1@gmail.com> * fix menu list removing from original list --------- Co-authored-by: Matthew Fosse <matt@fosse.co> Co-authored-by: David Adegoke <64401859+Blazebrain@users.noreply.github.com>
100 lines
4 KiB
Swift
100 lines
4 KiB
Swift
import Flutter
|
|
import UIKit
|
|
import Mwebd
|
|
|
|
public class CwMwebPlugin: NSObject, FlutterPlugin {
|
|
public static func register(with registrar: FlutterPluginRegistrar) {
|
|
let channel = FlutterMethodChannel(name: "cw_mweb", binaryMessenger: registrar.messenger())
|
|
let instance = CwMwebPlugin()
|
|
registrar.addMethodCallDelegate(instance, channel: channel)
|
|
}
|
|
|
|
private static var server: MwebdServer?
|
|
private static var port: Int = 0
|
|
private static var dataDir: String?
|
|
private static var nodeUri: String?
|
|
|
|
public func handle(_ call: FlutterMethodCall, result: @escaping FlutterResult) {
|
|
switch call.method {
|
|
case "getPlatformVersion":
|
|
result("iOS " + UIDevice.current.systemVersion)
|
|
break
|
|
case "start":
|
|
stopServer()
|
|
let args = call.arguments as? [String: String]
|
|
let dataDir = args?["dataDir"]
|
|
let nodeUri = args?["nodeUri"]
|
|
CwMwebPlugin.dataDir = dataDir
|
|
CwMwebPlugin.nodeUri = nodeUri
|
|
startServer(result: result)
|
|
break
|
|
case "stop":
|
|
stopServer()
|
|
result(nil)
|
|
break
|
|
// case "address":
|
|
// let args = call.arguments as! [String: Any]
|
|
// let scanSecret = args["scanSecret"] as! FlutterStandardTypedData
|
|
// let spendPub = args["spendPub"] as! FlutterStandardTypedData
|
|
// let index = args["index"] as! Int32
|
|
|
|
// let scanSecretData = scanSecret.data
|
|
// let spendPubData = spendPub.data
|
|
// result(MwebdAddress(scanSecretData, spendPubData, index))
|
|
// break
|
|
case "addresses":
|
|
let args = call.arguments as! [String: Any]
|
|
let scanSecret = args["scanSecret"] as! FlutterStandardTypedData
|
|
let spendPub = args["spendPub"] as! FlutterStandardTypedData
|
|
let fromIndex = args["fromIndex"] as! Int32
|
|
let toIndex = args["toIndex"] as! Int32
|
|
|
|
let scanSecretData = scanSecret.data
|
|
let spendPubData = spendPub.data
|
|
result(MwebdAddresses(scanSecretData, spendPubData, fromIndex, toIndex))
|
|
break
|
|
default:
|
|
result(FlutterMethodNotImplemented)
|
|
break
|
|
}
|
|
}
|
|
|
|
private func startServer(result: @escaping FlutterResult) {
|
|
if CwMwebPlugin.server == nil {
|
|
var error: NSError?
|
|
CwMwebPlugin.server = MwebdNewServer("", CwMwebPlugin.dataDir, CwMwebPlugin.nodeUri, &error)
|
|
|
|
if let server = CwMwebPlugin.server {
|
|
do {
|
|
print("Starting server...")
|
|
try server.start(0, ret0_: &CwMwebPlugin.port)
|
|
print("Server started successfully on port: \(CwMwebPlugin.port)")
|
|
result(CwMwebPlugin.port)
|
|
} catch let startError as NSError {
|
|
print("Server Start Error: \(startError.localizedDescription)")
|
|
result(FlutterError(code: "Server Start Error", message: startError.localizedDescription, details: nil))
|
|
}
|
|
} else if let error = error {
|
|
print("Server Creation Error: \(error.localizedDescription)")
|
|
result(FlutterError(code: "Server Creation Error", message: error.localizedDescription, details: nil))
|
|
} else {
|
|
print("Unknown Error: Failed to create server")
|
|
result(FlutterError(code: "Unknown Error", message: "Failed to create server", details: nil))
|
|
}
|
|
} else {
|
|
print("Server already running on port: \(CwMwebPlugin.port)")
|
|
result(CwMwebPlugin.port)
|
|
}
|
|
}
|
|
|
|
private func stopServer() {
|
|
print("Stopping server")
|
|
CwMwebPlugin.server?.stop()
|
|
CwMwebPlugin.server = nil
|
|
CwMwebPlugin.port = 0
|
|
}
|
|
|
|
deinit {
|
|
stopServer()
|
|
}
|
|
}
|