From d13b40b951cf8ec84f00406614160af7cdf1f667 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Hampus=20Sj=C3=B6berg?= Date: Thu, 26 Feb 2026 21:47:50 +0400 Subject: [PATCH] Loadspeeder --- .../com/blixtwallet/BlixtToolsTurboModule.kt | 229 ++++++ ...boPackage.kt => BlixtToolsTurboPackage.kt} | 12 +- .../main/java/com/blixtwallet/LndMobile.java | 40 - .../com/blixtwallet/LndMobileService.java | 53 -- .../com/blixtwallet/LndMobileTurboModule.kt | 30 - .../java/com/blixtwallet/MainApplication.kt | 2 +- android/app/src/main/jni/CMakeLists.txt | 57 +- android/app/src/main/jni/OnLoad.cpp | 8 - ios/BlixtWallet.xcodeproj/project.pbxproj | 89 +- .../NativeSpeedloaderModuleProvider.h | 10 - .../NativeSpeedloaderModuleProvider.mm | 15 - ios/LndMobile/BlixtTools.h | 16 + ios/LndMobile/BlixtTools.swift | 401 +++++++++ ...dMobileToolsTurbo.h => BlixtToolsBridge.m} | 2 +- ios/LndMobile/BlixtToolsTurbo.mm | 52 ++ ios/LndMobile/Lnd.swift | 3 - ios/LndMobile/LndMobile.m | 7 - ios/LndMobile/LndMobile.swift | 14 - ios/LndMobile/LndMobileToolsTurbo.mm | 29 - macos/BlixtWallet.xcodeproj/project.pbxproj | 12 +- package.json | 5 - speedloader-turbomodule/NativeSpeedloader.cpp | 62 -- speedloader-turbomodule/NativeSpeedloader.h | 18 - .../liblnd/arm64-v8a/liblnd.h | 770 ------------------ .../liblnd/armeabi-v7a/liblnd.h | 770 ------------------ speedloader-turbomodule/liblnd/x86/liblnd.h | 770 ------------------ .../liblnd/x86_64/liblnd.h | 770 ------------------ src/lndmobile/LndMobile.d.ts | 1 - src/lndmobile/index.ts | 10 - src/state/LndMobileInjection.ts | 3 - src/state/index.ts | 33 +- ...eLndmobileTools.ts => NativeBlixtTools.ts} | 4 +- src/turbomodules/NativeSpeedloader.ts | 9 - src/windows/InitProcess/DEV_Commands.tsx | 47 +- 34 files changed, 793 insertions(+), 3560 deletions(-) create mode 100644 android/app/src/main/java/com/blixtwallet/BlixtToolsTurboModule.kt rename android/app/src/main/java/com/blixtwallet/{LndMobileTurboPackage.kt => BlixtToolsTurboPackage.kt} (69%) delete mode 100644 android/app/src/main/java/com/blixtwallet/LndMobileTurboModule.kt delete mode 100644 ios/BlixtWallet/NativeSpeedloaderModuleProvider.h delete mode 100644 ios/BlixtWallet/NativeSpeedloaderModuleProvider.mm create mode 100644 ios/LndMobile/BlixtTools.h create mode 100644 ios/LndMobile/BlixtTools.swift rename ios/LndMobile/{LndMobileToolsTurbo.h => BlixtToolsBridge.m} (59%) create mode 100644 ios/LndMobile/BlixtToolsTurbo.mm delete mode 100644 ios/LndMobile/LndMobileToolsTurbo.mm delete mode 100644 speedloader-turbomodule/NativeSpeedloader.cpp delete mode 100644 speedloader-turbomodule/NativeSpeedloader.h delete mode 100644 speedloader-turbomodule/liblnd/arm64-v8a/liblnd.h delete mode 100644 speedloader-turbomodule/liblnd/armeabi-v7a/liblnd.h delete mode 100644 speedloader-turbomodule/liblnd/x86/liblnd.h delete mode 100644 speedloader-turbomodule/liblnd/x86_64/liblnd.h rename src/turbomodules/{NativeLndmobileTools.ts => NativeBlixtTools.ts} (64%) delete mode 100644 src/turbomodules/NativeSpeedloader.ts diff --git a/android/app/src/main/java/com/blixtwallet/BlixtToolsTurboModule.kt b/android/app/src/main/java/com/blixtwallet/BlixtToolsTurboModule.kt new file mode 100644 index 000000000..5f77425d2 --- /dev/null +++ b/android/app/src/main/java/com/blixtwallet/BlixtToolsTurboModule.kt @@ -0,0 +1,229 @@ +package com.blixtwallet + +import com.facebook.react.bridge.Promise +import com.facebook.react.bridge.ReactApplicationContext +import java.io.File +import java.io.FileOutputStream +import java.io.IOException +import java.net.HttpURLConnection +import java.net.URL +import java.text.SimpleDateFormat +import java.util.Date +import java.util.Locale +import java.util.TimeZone + +class BlixtToolsTurboModule(private val appContext: ReactApplicationContext) : + NativeBlixtToolsSpec(appContext) { + override fun getName() = NAME + + @Volatile private var gossipSyncCancelled = false + @Volatile private var activeConnection: HttpURLConnection? = null + @Volatile private var gossipSyncInProgress = false + private val gossipSyncLock = Any() + private val logLock = Any() + + override fun startSyncWorker() {} + + override fun scheduleSyncWorker() {} + + override fun stopScheduleSyncWorker() {} + + override fun getStatus(): Double { + return 0.0 + // val lnd = LndNative() + // return lnd.getStatus().toDouble() + } + + override fun gossipSync(serviceUrl: String, promise: Promise) { + synchronized(gossipSyncLock) { + if (gossipSyncInProgress) { + promise.reject("GOSSIP_SYNC_IN_PROGRESS", "Gossip sync is already in progress") + return + } + gossipSyncInProgress = true + } + gossipSyncCancelled = false + + Thread { + var tempGraphDbFile: File? = null + val lastRunFile = File(appContext.cacheDir, LAST_RUN_FILE_NAME) + try { + logLine("gossipSync started with serviceUrl=$serviceUrl") + + if (shouldSkipGossipSync(lastRunFile)) { + logLine("gossipSync skipped due to 24h time constraint") + promise.resolve(null) + return@Thread + } + + val graphDir = File(appContext.filesDir, "data/graph/${BuildConfig.CHAIN}") + if (!graphDir.exists() && !graphDir.mkdirs()) { + throw IOException("Failed to create graph directory: ${graphDir.absolutePath}") + } + + val graphDbFile = File(graphDir, "graph.db") + val backupGraphDbFile = File(graphDir, "graph.db.bak") + tempGraphDbFile = File(graphDir, "graph.db.download") + + if (tempGraphDbFile.exists() && !tempGraphDbFile.delete()) { + throw IOException("Failed to clear previous temporary graph.db file") + } + + val graphDbUrl = resolveGraphDbUrl(serviceUrl) + logLine("Downloading graph database from $graphDbUrl") + val connection = (URL(graphDbUrl).openConnection() as HttpURLConnection).apply { + requestMethod = "GET" + connectTimeout = 15000 + readTimeout = 120000 + doInput = true + instanceFollowRedirects = true + } + activeConnection = connection + + connection.connect() + val statusCode = connection.responseCode + if (statusCode !in 200..299) { + throw IOException("Failed to download graph.db, HTTP $statusCode") + } + + connection.inputStream.use { input -> + FileOutputStream(tempGraphDbFile).use { output -> + val buffer = ByteArray(DEFAULT_BUFFER_SIZE) + while (true) { + ensureNotCancelled() + val read = input.read(buffer) + if (read == -1) { + break + } + output.write(buffer, 0, read) + } + output.fd.sync() + } + } + ensureNotCancelled() + + if (!tempGraphDbFile.exists() || tempGraphDbFile.length() == 0L) { + throw IOException("Downloaded graph.db is empty") + } + logLine("Downloaded graph database (${tempGraphDbFile.length()} bytes)") + + if (backupGraphDbFile.exists() && !backupGraphDbFile.delete()) { + throw IOException("Failed to remove previous graph.db backup") + } + if (graphDbFile.exists() && !graphDbFile.renameTo(backupGraphDbFile)) { + throw IOException("Failed to create graph.db backup") + } + + if (!tempGraphDbFile.renameTo(graphDbFile)) { + if (backupGraphDbFile.exists()) { + backupGraphDbFile.renameTo(graphDbFile) + } + throw IOException("Failed to replace graph.db") + } + + if (backupGraphDbFile.exists()) { + backupGraphDbFile.delete() + } + touchLastRun(lastRunFile) + logLine("gossipSync completed successfully") + promise.resolve(null) + } catch (e: Exception) { + if (tempGraphDbFile?.exists() == true) { + tempGraphDbFile.delete() + } + if (gossipSyncCancelled || e.message == CANCELLATION_MESSAGE) { + logLine("gossipSync cancelled by user") + promise.reject("GOSSIP_SYNC_CANCELLED", CANCELLATION_MESSAGE, e) + } else { + logLine("gossipSync failed: ${e.message ?: "unknown error"}") + promise.reject("GOSSIP_SYNC_FAILED", e.message ?: "Unknown gossip sync failure", e) + } + } finally { + activeConnection?.disconnect() + activeConnection = null + gossipSyncCancelled = false + synchronized(gossipSyncLock) { + gossipSyncInProgress = false + } + } + }.start() + } + + override fun cancelGossipSync() { + gossipSyncCancelled = true + activeConnection?.disconnect() + } + + private fun ensureNotCancelled() { + if (gossipSyncCancelled) { + throw IOException(CANCELLATION_MESSAGE) + } + } + + private fun shouldSkipGossipSync(lastRunFile: File): Boolean { + if (!lastRunFile.exists()) { + lastRunFile.parentFile?.mkdirs() + if (!lastRunFile.createNewFile()) { + throw IOException("Failed to create last-run marker file") + } + return false + } + + val elapsedMillis = System.currentTimeMillis() - lastRunFile.lastModified() + return elapsedMillis <= LAST_RUN_INTERVAL_MS + } + + private fun touchLastRun(lastRunFile: File) { + if (!lastRunFile.exists()) { + lastRunFile.parentFile?.mkdirs() + if (!lastRunFile.createNewFile()) { + throw IOException("Failed to create last-run marker file") + } + } + if (!lastRunFile.setLastModified(System.currentTimeMillis())) { + throw IOException("Failed to update last-run marker file") + } + } + + // Accept either a base service URL (append //graph/graph-001d.db) + // or a direct .db URL passed from settings/debug tooling. + private fun resolveGraphDbUrl(serviceUrl: String): String { + val trimmedServiceUrl = serviceUrl.trim().trimEnd('/') + if (trimmedServiceUrl.substringBefore('?').endsWith(".db")) { + return trimmedServiceUrl + } + val networkType = BuildConfig.CHAIN.lowercase() + return "$trimmedServiceUrl/$networkType/graph/graph-001d.db" + } + + private fun logLine(message: String) { + synchronized(logLock) { + try { + val logDir = File(appContext.cacheDir, LOG_DIR_NAME) + if (!logDir.exists()) { + logDir.mkdirs() + } + val logFile = File(logDir, LOG_FILE_NAME) + val timestamp = + SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSXXX", Locale.US).apply { + timeZone = TimeZone.getTimeZone("UTC") + }.format(Date()) + FileOutputStream(logFile, true).bufferedWriter(Charsets.UTF_8).use { writer -> + writer.append(timestamp) + writer.append(" ") + writer.append(message) + writer.newLine() + } + } catch (_: IOException) {} + } + } + + companion object { + const val NAME = "BlixtTools" + private const val CANCELLATION_MESSAGE = "Gossip sync cancelled by user" + private const val LOG_DIR_NAME = "log" + private const val LOG_FILE_NAME = "speedloader.log" + private const val LAST_RUN_FILE_NAME = "lastrun" + private const val LAST_RUN_INTERVAL_MS = 24L * 60L * 60L * 1000L + } +} diff --git a/android/app/src/main/java/com/blixtwallet/LndMobileTurboPackage.kt b/android/app/src/main/java/com/blixtwallet/BlixtToolsTurboPackage.kt similarity index 69% rename from android/app/src/main/java/com/blixtwallet/LndMobileTurboPackage.kt rename to android/app/src/main/java/com/blixtwallet/BlixtToolsTurboPackage.kt index 7e40b992f..c9c61156e 100644 --- a/android/app/src/main/java/com/blixtwallet/LndMobileTurboPackage.kt +++ b/android/app/src/main/java/com/blixtwallet/BlixtToolsTurboPackage.kt @@ -6,19 +6,19 @@ import com.facebook.react.bridge.ReactApplicationContext import com.facebook.react.module.model.ReactModuleInfo import com.facebook.react.module.model.ReactModuleInfoProvider -class LndMobileToolsTurboPackage : BaseReactPackage() { +class BlixtToolsTurboPackage : BaseReactPackage() { override fun getModule(name: String, reactContext: ReactApplicationContext): NativeModule? = - if (name == LndMobileToolsTurboModule.NAME) { - LndMobileToolsTurboModule(reactContext) + if (name == BlixtToolsTurboModule.NAME) { + BlixtToolsTurboModule(reactContext) } else { null } override fun getReactModuleInfoProvider() = ReactModuleInfoProvider { mapOf( - LndMobileToolsTurboModule.NAME to ReactModuleInfo( - LndMobileToolsTurboModule.NAME, - LndMobileToolsTurboModule.NAME, + BlixtToolsTurboModule.NAME to ReactModuleInfo( + BlixtToolsTurboModule.NAME, + BlixtToolsTurboModule.NAME, false, // canOverrideExistingModule false, // needsEagerInit false, // isCxxModule diff --git a/android/app/src/main/java/com/blixtwallet/LndMobile.java b/android/app/src/main/java/com/blixtwallet/LndMobile.java index d9fd1dfd4..1dec10569 100644 --- a/android/app/src/main/java/com/blixtwallet/LndMobile.java +++ b/android/app/src/main/java/com/blixtwallet/LndMobile.java @@ -42,7 +42,6 @@ import java.io.OutputStream; import java.io.FileInputStream; import java.io.FileOutputStream; -import java.nio.charset.StandardCharsets; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Date; @@ -134,20 +133,6 @@ public void handleMessage(Message msg) { break; } - case LndMobileService.MSG_GOSSIP_SYNC_RESULT: { - final int request = msg.arg1; - final Promise promise = requests.remove(request); - if (bundle.containsKey("response")) { - final byte[] bytes = (byte[]) bundle.get("response"); - promise.resolve("response=" + new String(bytes, StandardCharsets.UTF_8)); - } else if (bundle.containsKey("error_code")) { - HyperLog.e(TAG, "ERROR" + msg); - promise.reject(bundle.getString("error_code"), bundle.getString("error_desc")); - } else { - promise.reject("noresponse"); - } - break; - } case LndMobileService.MSG_GRPC_STREAM_RESULT: { // TODO EOF Stream error final String method = (String) bundle.get("method"); @@ -400,31 +385,6 @@ public void stopLnd(Promise promise) { } } - @ReactMethod - public void gossipSync(String serviceUrl, String networkType, Promise promise) { - int req = new Random().nextInt(); - requests.put(req, promise); - - Message message = Message.obtain(null, LndMobileService.MSG_GOSSIP_SYNC, req, 0); - message.replyTo = messenger; - Bundle bundle = new Bundle(); - bundle.putString( - "serviceUrl", - serviceUrl - ); - bundle.putString( - "networkType", - networkType - ); - message.setData(bundle); - - try { - lndMobileServiceMessenger.send(message); - } catch (RemoteException e) { - promise.reject(TAG, "Could not Send MSG_GOSSIP_SYNC to LndMobileService", e); - } - } - @ReactMethod public void sendCommand(String method, String payloadStr, final Promise promise) { HyperLog.d(TAG, "sendCommand() " + method); diff --git a/android/app/src/main/java/com/blixtwallet/LndMobileService.java b/android/app/src/main/java/com/blixtwallet/LndMobileService.java index bc48fb8c8..e3cf5f6ba 100644 --- a/android/app/src/main/java/com/blixtwallet/LndMobileService.java +++ b/android/app/src/main/java/com/blixtwallet/LndMobileService.java @@ -73,8 +73,6 @@ public class LndMobileService extends Service { static final int MSG_PONG = 20; static final int MSG_GRPC_BIDI_STREAM_COMMAND = 21; static final int MSG_GRPC_STREAM_WRITE_RESULT = 22; - static final int MSG_GOSSIP_SYNC = 23; - static final int MSG_GOSSIP_SYNC_RESULT = 24; // private Map syncMethods = new HashMap<>(); // private Map streamMethods = new HashMap<>(); @@ -263,13 +261,6 @@ public void handleMessage(Message msg) { stopLnd(msg.replyTo, request); break; - case MSG_GOSSIP_SYNC: - HyperLog.i(TAG, "Got MSG_GOSSIP_SYNC"); - final String serviceUrl = bundle.getString("serviceUrl", ""); - final String networkType = bundle.getString("networkType", ""); - gossipSync(msg.replyTo, serviceUrl, networkType, request); - break; - case MSG_PING: HyperLog.d(TAG, "Got MSG_PING"); sendToClient(msg.replyTo, Message.obtain(null, MSG_PONG, request, 0)); @@ -415,50 +406,6 @@ public void handleMessage(Message msg) { // } // } - void gossipSync(Messenger recipient, String serviceUrl, String networkType, int request) { - HyperLog.i(TAG, "gossipSync()"); - // Runnable gossipSync = new Runnable() { - // public void run() { - // Lndmobile.gossipSync( - // serviceUrl, - // getApplicationContext().getCacheDir().getAbsolutePath(), - // getApplicationContext().getFilesDir().getAbsolutePath(), - // networkType, - // new lndmobile.Callback() { - - // @Override - // public void onError(Exception e) { - // HyperLog.e(TAG, "Could not invoke Lndmobile.gossipSync()", e); - - // Message msg = Message.obtain(null, MSG_GOSSIP_SYNC_RESULT, request, 0); - - // Bundle bundle = new Bundle(); - // bundle.putString("error_code", "Gossip Error"); - // bundle.putString("error_desc", e.toString()); - // msg.setData(bundle); - - // sendToClient(recipient, msg); - // // sendToClients(msg); - // } - - // @Override - // public void onResponse(byte[] bytes) { - // Message msg = Message.obtain(null, MSG_GOSSIP_SYNC_RESULT, request, 0); - - // Bundle bundle = new Bundle(); - // bundle.putByteArray("response", bytes); - // msg.setData(bundle); - - // sendToClient(recipient, msg); - // // sendToClients(msg); - // } - // }); - // } - // }; - - // new Thread(gossipSync).start(); - } - void startLnd(Messenger recipient, String args, int request) { HyperLog.d(TAG, "startLnd(): Starting lnd"); diff --git a/android/app/src/main/java/com/blixtwallet/LndMobileTurboModule.kt b/android/app/src/main/java/com/blixtwallet/LndMobileTurboModule.kt deleted file mode 100644 index c72522937..000000000 --- a/android/app/src/main/java/com/blixtwallet/LndMobileTurboModule.kt +++ /dev/null @@ -1,30 +0,0 @@ -package com.blixtwallet - -import androidx.work.Constraints -import androidx.work.ExistingPeriodicWorkPolicy -import androidx.work.NetworkType -import androidx.work.OneTimeWorkRequestBuilder -import androidx.work.PeriodicWorkRequestBuilder -import androidx.work.WorkManager -import com.facebook.react.bridge.ReactApplicationContext -import java.util.concurrent.TimeUnit - -class LndMobileToolsTurboModule(reactContext: ReactApplicationContext) : - NativeLndmobileToolsSpec(reactContext) { - override fun getName() = NAME - - override fun startSyncWorker() {} - - override fun scheduleSyncWorker() {} - - override fun stopScheduleSyncWorker() {} - - override fun getStatus(): Double { - val lnd = LndNative() - return lnd.getStatus().toDouble() - } - - companion object { - const val NAME = "LndMobileToolsTurbo" - } -} diff --git a/android/app/src/main/java/com/blixtwallet/MainApplication.kt b/android/app/src/main/java/com/blixtwallet/MainApplication.kt index 3961edd63..d5a0113c6 100644 --- a/android/app/src/main/java/com/blixtwallet/MainApplication.kt +++ b/android/app/src/main/java/com/blixtwallet/MainApplication.kt @@ -26,7 +26,7 @@ override val reactHost: ReactHost by lazy { add(LndMobileScheduledSyncPackage()) // TurboModules - add(LndMobileToolsTurboPackage()) + add(BlixtToolsTurboPackage()) }, ) } diff --git a/android/app/src/main/jni/CMakeLists.txt b/android/app/src/main/jni/CMakeLists.txt index b14e36c2e..6769560a0 100644 --- a/android/app/src/main/jni/CMakeLists.txt +++ b/android/app/src/main/jni/CMakeLists.txt @@ -8,27 +8,44 @@ set(CMAKE_CXX_STANDARD 20) # This file includes all the necessary to let you build your React Native application include(${REACT_ANDROID_DIR}/cmake-utils/ReactNative-application.cmake) -# This for the Speedloader TurboModule -target_sources(${CMAKE_PROJECT_NAME} PRIVATE ../../../../../speedloader-turbomodule/NativeSpeedloader.cpp) - # This is JNI bindings for the LndMobileScheduledSyncWorker target_sources(${CMAKE_PROJECT_NAME} PRIVATE ./LndJNI.cpp) -# Define where CMake can find the additional header files. We need to crawl back the jni, main, src, app, android folders -target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ../../../../../speedloader-turbomodule) - -# We need to make usage of the liblnd.so library for the `gossipSync` function -set(SPEEDLOADER_JNILIBS_PATH "${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs") -set(SPEEDLOADER_LIBRARY_PATH "${SPEEDLOADER_JNILIBS_PATH}/${CMAKE_ANDROID_ARCH_ABI}/liblnd.so") -if(NOT EXISTS ${SPEEDLOADER_LIBRARY_PATH}) - message(FATAL_ERROR "liblnd.so not found at ${SPEEDLOADER_LIBRARY_PATH}") +# LndJNI.cpp depends on liblnd headers from react-native-turbo-lnd and liblnd.so from jniLibs. +set( + LND_HEADERS_DIR + "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules/react-native-turbo-lnd/cpp/liblnd/${CMAKE_ANDROID_ARCH_ABI}" +) +set( + LND_CPP_DIR + "${CMAKE_CURRENT_SOURCE_DIR}/../../../../../node_modules/react-native-turbo-lnd/cpp" +) +set(LND_SO_DIR "${CMAKE_CURRENT_SOURCE_DIR}/../jniLibs/${CMAKE_ANDROID_ARCH_ABI}") + +if(NOT EXISTS "${LND_HEADERS_DIR}/liblnd.h") + message(FATAL_ERROR "Missing liblnd.h in ${LND_HEADERS_DIR}") endif() -add_library(lib_speedloader SHARED IMPORTED) -set_property(TARGET lib_speedloader PROPERTY IMPORTED_NO_SONAME 1) -set_target_properties(lib_speedloader PROPERTIES IMPORTED_LOCATION ${SPEEDLOADER_LIBRARY_PATH}) - -# Include the arch-specific liblnd.h header file -target_include_directories(${CMAKE_PROJECT_NAME} PUBLIC ../../../../../speedloader-turbomodule/liblnd/${CMAKE_ANDROID_ARCH_ABI}) - -# link_libraries(lib_speedloader) -target_link_libraries(${CMAKE_PROJECT_NAME} lib_speedloader) +if(NOT EXISTS "${LND_CPP_DIR}/utils/log.h") + message(FATAL_ERROR "Missing utils/log.h in ${LND_CPP_DIR}") +endif() +if(NOT EXISTS "${LND_SO_DIR}/liblnd.so") + message(FATAL_ERROR "Missing liblnd.so in ${LND_SO_DIR}") +endif() +target_include_directories( + ${CMAKE_PROJECT_NAME} + PRIVATE + "${LND_HEADERS_DIR}" + "${LND_CPP_DIR}" +) + +add_library(liblnd SHARED IMPORTED) +set_target_properties( + liblnd + PROPERTIES + IMPORTED_NO_SONAME 1 + IMPORTED_LOCATION "${LND_SO_DIR}/liblnd.so" +) +target_link_libraries(${CMAKE_PROJECT_NAME} liblnd) + +find_library(LOG_LIB log) +target_link_libraries(${CMAKE_PROJECT_NAME} ${LOG_LIB}) diff --git a/android/app/src/main/jni/OnLoad.cpp b/android/app/src/main/jni/OnLoad.cpp index 62967f6a3..2a677171f 100644 --- a/android/app/src/main/jni/OnLoad.cpp +++ b/android/app/src/main/jni/OnLoad.cpp @@ -34,9 +34,6 @@ #include #include - -#include - #ifdef REACT_NATIVE_APP_CODEGEN_HEADER #include REACT_NATIVE_APP_CODEGEN_HEADER #endif @@ -76,11 +73,6 @@ std::shared_ptr cxxModuleProvider( // return std::make_shared(jsInvoker); // } - if (name == NativeSpeedloaderModule::kModuleName) { - return std::make_shared(jsInvoker); - } - - // And we fallback to the CXX module providers autolinked return autolinking_cxxModuleProvider(name, jsInvoker); } diff --git a/ios/BlixtWallet.xcodeproj/project.pbxproj b/ios/BlixtWallet.xcodeproj/project.pbxproj index 3fd4d92f7..7f11049e2 100644 --- a/ios/BlixtWallet.xcodeproj/project.pbxproj +++ b/ios/BlixtWallet.xcodeproj/project.pbxproj @@ -15,7 +15,6 @@ CC173A032D5274C700FA4A3E /* liblnd.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CC4D35242CB491D4002081FE /* liblnd.a */; }; CC7C276B2A61A62C0050762A /* IBMPlexSans-Medium.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CC7C27692A61A62C0050762A /* IBMPlexSans-Medium.ttf */; }; CC7C276C2A61A62C0050762A /* IBMPlexSans-Regular.ttf in Resources */ = {isa = PBXBuildFile; fileRef = CC7C276A2A61A62C0050762A /* IBMPlexSans-Regular.ttf */; }; - CC96DB512DFB59F5009A4BA1 /* NativeSpeedloaderModuleProvider.mm in Sources */ = {isa = PBXBuildFile; fileRef = CC96DB502DFB59F5009A4BA1 /* NativeSpeedloaderModuleProvider.mm */; }; CC9860E02A5F344800047BB1 /* LndMobileTools.m in Sources */ = {isa = PBXBuildFile; fileRef = CC9860D62A5F344600047BB1 /* LndMobileTools.m */; }; CC9860E12A5F344900047BB1 /* LndMobileTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC9860D72A5F344700047BB1 /* LndMobileTools.swift */; }; CC9860E22A5F344900047BB1 /* lightning.pb.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC9860D92A5F344700047BB1 /* lightning.pb.swift */; }; @@ -25,10 +24,10 @@ CC9860E62A5F344900047BB1 /* Lnd.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC9860DD2A5F344800047BB1 /* Lnd.swift */; }; CC9860E72A5F344900047BB1 /* LndMobileScheduledSync.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC9860DE2A5F344800047BB1 /* LndMobileScheduledSync.swift */; }; CC9860E82A5F344900047BB1 /* LndMobileScheduledSync.m in Sources */ = {isa = PBXBuildFile; fileRef = CC9860DF2A5F344800047BB1 /* LndMobileScheduledSync.m */; }; + CDA1B2C72E5A111100ABCDEF /* BlixtTools.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDA1B2C62E5A111100ABCDEF /* BlixtTools.swift */; }; CC9861062A5F5AA900047BB1 /* Lndmobile.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC9861052A5F5AA800047BB1 /* Lndmobile.xcframework */; }; CC98610A2A5F5AF400047BB1 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CC9861092A5F5AE500047BB1 /* libresolv.tbd */; }; - CCB1E6E82D5268C6000B0C98 /* NativeSpeedloader.cpp in Sources */ = {isa = PBXBuildFile; fileRef = CCB1E6E62D5268C6000B0C98 /* NativeSpeedloader.cpp */; }; - CCC73A6D2CB5B07E0066575C /* LndMobileToolsTurbo.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCC73A6C2CB5B07E0066575C /* LndMobileToolsTurbo.mm */; }; + CCC73A6D2CB5B07E0066575C /* BlixtToolsTurbo.mm in Sources */ = {isa = PBXBuildFile; fileRef = CCC73A6C2CB5B07E0066575C /* BlixtToolsTurbo.mm */; }; CCCC227B2DF8F3D800AA97B7 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCCC227A2DF8F3D800AA97B7 /* AppDelegate.swift */; }; /* End PBXBuildFile section */ @@ -63,8 +62,6 @@ CC4D35242CB491D4002081FE /* liblnd.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblnd.a; sourceTree = ""; }; CC7C27692A61A62C0050762A /* IBMPlexSans-Medium.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "IBMPlexSans-Medium.ttf"; path = "../assets/fonts/IBMPlexSans-Medium.ttf"; sourceTree = ""; }; CC7C276A2A61A62C0050762A /* IBMPlexSans-Regular.ttf */ = {isa = PBXFileReference; lastKnownFileType = file; name = "IBMPlexSans-Regular.ttf"; path = "../assets/fonts/IBMPlexSans-Regular.ttf"; sourceTree = ""; }; - CC96DB4D2DFB59B2009A4BA1 /* NativeSpeedloaderModuleProvider.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = NativeSpeedloaderModuleProvider.h; path = BlixtWallet/NativeSpeedloaderModuleProvider.h; sourceTree = ""; }; - CC96DB502DFB59F5009A4BA1 /* NativeSpeedloaderModuleProvider.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = NativeSpeedloaderModuleProvider.mm; path = BlixtWallet/NativeSpeedloaderModuleProvider.mm; sourceTree = ""; }; CC9860D62A5F344600047BB1 /* LndMobileTools.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LndMobileTools.m; sourceTree = ""; }; CC9860D72A5F344700047BB1 /* LndMobileTools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LndMobileTools.swift; sourceTree = ""; }; CC9860D82A5F344700047BB1 /* BlixtWallet-Bridging-Header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "BlixtWallet-Bridging-Header.h"; sourceTree = ""; }; @@ -75,18 +72,13 @@ CC9860DD2A5F344800047BB1 /* Lnd.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Lnd.swift; sourceTree = ""; }; CC9860DE2A5F344800047BB1 /* LndMobileScheduledSync.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = LndMobileScheduledSync.swift; sourceTree = ""; }; CC9860DF2A5F344800047BB1 /* LndMobileScheduledSync.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LndMobileScheduledSync.m; sourceTree = ""; }; + CDA1B2C52E5A111100ABCDEF /* BlixtTools.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BlixtTools.h; sourceTree = ""; }; + CDA1B2C62E5A111100ABCDEF /* BlixtTools.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BlixtTools.swift; sourceTree = ""; }; CC9861042A5F513300047BB1 /* BlixtWallet.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; name = BlixtWallet.entitlements; path = BlixtWallet/BlixtWallet.entitlements; sourceTree = ""; }; CC9861052A5F5AA800047BB1 /* Lndmobile.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = Lndmobile.xcframework; sourceTree = ""; }; CC9861092A5F5AE500047BB1 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = usr/lib/libresolv.tbd; sourceTree = SDKROOT; }; - CCB1E6DB2D5268C6000B0C98 /* liblnd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = liblnd.h; sourceTree = ""; }; - CCB1E6DD2D5268C6000B0C98 /* liblnd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = liblnd.h; sourceTree = ""; }; - CCB1E6DF2D5268C6000B0C98 /* liblnd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = liblnd.h; sourceTree = ""; }; - CCB1E6E12D5268C6000B0C98 /* liblnd.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = liblnd.h; sourceTree = ""; }; - CCB1E6E42D5268C6000B0C98 /* blixtlog.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = blixtlog.h; sourceTree = ""; }; - CCB1E6E52D5268C6000B0C98 /* NativeSpeedloader.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = NativeSpeedloader.h; sourceTree = ""; }; - CCB1E6E62D5268C6000B0C98 /* NativeSpeedloader.cpp */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.cpp; path = NativeSpeedloader.cpp; sourceTree = ""; }; - CCC73A6B2CB5B0310066575C /* LndMobileToolsTurbo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = LndMobileToolsTurbo.h; sourceTree = ""; }; - CCC73A6C2CB5B07E0066575C /* LndMobileToolsTurbo.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = LndMobileToolsTurbo.mm; sourceTree = ""; }; + CCC73A6B2CB5B0310066575C /* BlixtToolsBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BlixtToolsBridge.m; sourceTree = ""; }; + CCC73A6C2CB5B07E0066575C /* BlixtToolsTurbo.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; path = BlixtToolsTurbo.mm; sourceTree = ""; }; CCCC227A2DF8F3D800AA97B7 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppDelegate.swift; path = BlixtWallet/AppDelegate.swift; sourceTree = ""; }; ED297162215061F000B7C4FE /* JavaScriptCore.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = JavaScriptCore.framework; path = System/Library/Frameworks/JavaScriptCore.framework; sourceTree = SDKROOT; }; F3AFA76AFE297D21C419D70F /* Pods-BlixtWallet.debugtestnet.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BlixtWallet.debugtestnet.xcconfig"; path = "Target Support Files/Pods-BlixtWallet/Pods-BlixtWallet.debugtestnet.xcconfig"; sourceTree = ""; }; @@ -141,8 +133,6 @@ 13B07FB61A68108700A75B9A /* Info.plist */, 81AB9BB72411601600AC10FF /* LaunchScreen.storyboard */, 7D9A028A2AECDD1817ED76D5 /* PrivacyInfo.xcprivacy */, - CC96DB4D2DFB59B2009A4BA1 /* NativeSpeedloaderModuleProvider.h */, - CC96DB502DFB59F5009A4BA1 /* NativeSpeedloaderModuleProvider.mm */, ); name = BlixtWallet; sourceTree = ""; @@ -168,7 +158,6 @@ 83CBB9F61A601CBA00E9B192 = { isa = PBXGroup; children = ( - CCB1E6E72D5268C6000B0C98 /* speedloader-turbomodule */, CC4D35242CB491D4002081FE /* liblnd.a */, CC7C27692A61A62C0050762A /* IBMPlexSans-Medium.ttf */, CC7C276A2A61A62C0050762A /* IBMPlexSans-Regular.ttf */, @@ -223,68 +212,15 @@ CC9860DE2A5F344800047BB1 /* LndMobileScheduledSync.swift */, CC9860D62A5F344600047BB1 /* LndMobileTools.m */, CC9860D72A5F344700047BB1 /* LndMobileTools.swift */, + CDA1B2C52E5A111100ABCDEF /* BlixtTools.h */, + CDA1B2C62E5A111100ABCDEF /* BlixtTools.swift */, CC9860DA2A5F344700047BB1 /* walletunlocker.pb.swift */, - CCC73A6B2CB5B0310066575C /* LndMobileToolsTurbo.h */, - CCC73A6C2CB5B07E0066575C /* LndMobileToolsTurbo.mm */, + CCC73A6B2CB5B0310066575C /* BlixtToolsBridge.m */, + CCC73A6C2CB5B07E0066575C /* BlixtToolsTurbo.mm */, ); path = LndMobile; sourceTree = ""; }; - CCB1E6DC2D5268C6000B0C98 /* arm64-v8a */ = { - isa = PBXGroup; - children = ( - CCB1E6DB2D5268C6000B0C98 /* liblnd.h */, - ); - path = "arm64-v8a"; - sourceTree = ""; - }; - CCB1E6DE2D5268C6000B0C98 /* armeabi-v7a */ = { - isa = PBXGroup; - children = ( - CCB1E6DD2D5268C6000B0C98 /* liblnd.h */, - ); - path = "armeabi-v7a"; - sourceTree = ""; - }; - CCB1E6E02D5268C6000B0C98 /* x86 */ = { - isa = PBXGroup; - children = ( - CCB1E6DF2D5268C6000B0C98 /* liblnd.h */, - ); - path = x86; - sourceTree = ""; - }; - CCB1E6E22D5268C6000B0C98 /* x86_64 */ = { - isa = PBXGroup; - children = ( - CCB1E6E12D5268C6000B0C98 /* liblnd.h */, - ); - path = x86_64; - sourceTree = ""; - }; - CCB1E6E32D5268C6000B0C98 /* liblnd */ = { - isa = PBXGroup; - children = ( - CCB1E6DC2D5268C6000B0C98 /* arm64-v8a */, - CCB1E6DE2D5268C6000B0C98 /* armeabi-v7a */, - CCB1E6E02D5268C6000B0C98 /* x86 */, - CCB1E6E22D5268C6000B0C98 /* x86_64 */, - ); - path = liblnd; - sourceTree = ""; - }; - CCB1E6E72D5268C6000B0C98 /* speedloader-turbomodule */ = { - isa = PBXGroup; - children = ( - CCB1E6E32D5268C6000B0C98 /* liblnd */, - CCB1E6E42D5268C6000B0C98 /* blixtlog.h */, - CCB1E6E52D5268C6000B0C98 /* NativeSpeedloader.h */, - CCB1E6E62D5268C6000B0C98 /* NativeSpeedloader.cpp */, - ); - name = "speedloader-turbomodule"; - path = "../speedloader-turbomodule"; - sourceTree = SOURCE_ROOT; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -507,13 +443,12 @@ CCCC227B2DF8F3D800AA97B7 /* AppDelegate.swift in Sources */, CC9860E02A5F344800047BB1 /* LndMobileTools.m in Sources */, CC9860E12A5F344900047BB1 /* LndMobileTools.swift in Sources */, - CC96DB512DFB59F5009A4BA1 /* NativeSpeedloaderModuleProvider.mm in Sources */, - CCB1E6E82D5268C6000B0C98 /* NativeSpeedloader.cpp in Sources */, CC9860E72A5F344900047BB1 /* LndMobileScheduledSync.swift in Sources */, CC9860E52A5F344900047BB1 /* LndMobile.m in Sources */, CC9860E42A5F344900047BB1 /* LndMobile.swift in Sources */, CC9860E32A5F344900047BB1 /* walletunlocker.pb.swift in Sources */, - CCC73A6D2CB5B07E0066575C /* LndMobileToolsTurbo.mm in Sources */, + CCC73A6D2CB5B07E0066575C /* BlixtToolsTurbo.mm in Sources */, + CDA1B2C72E5A111100ABCDEF /* BlixtTools.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/ios/BlixtWallet/NativeSpeedloaderModuleProvider.h b/ios/BlixtWallet/NativeSpeedloaderModuleProvider.h deleted file mode 100644 index 81ca0bfda..000000000 --- a/ios/BlixtWallet/NativeSpeedloaderModuleProvider.h +++ /dev/null @@ -1,10 +0,0 @@ -#import -#import - -NS_ASSUME_NONNULL_BEGIN - -@interface NativeSpeedloaderModuleProvider : NSObject - -@end - -NS_ASSUME_NONNULL_END diff --git a/ios/BlixtWallet/NativeSpeedloaderModuleProvider.mm b/ios/BlixtWallet/NativeSpeedloaderModuleProvider.mm deleted file mode 100644 index dba7d368e..000000000 --- a/ios/BlixtWallet/NativeSpeedloaderModuleProvider.mm +++ /dev/null @@ -1,15 +0,0 @@ -#import "NativeSpeedloaderModuleProvider.h" -#import -#import -#import "NativeSpeedloader.h" - -@implementation NativeSpeedloaderModuleProvider - -- (std::shared_ptr)getTurboModule: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - NSLog(@"Trying to get module Speedloader"); - return std::make_shared(params.jsInvoker); -} - -@end diff --git a/ios/LndMobile/BlixtTools.h b/ios/LndMobile/BlixtTools.h new file mode 100644 index 000000000..d062f7514 --- /dev/null +++ b/ios/LndMobile/BlixtTools.h @@ -0,0 +1,16 @@ +#import +#import + +NS_ASSUME_NONNULL_BEGIN + +@interface BlixtTools : NSObject + +- (void)gossipSync:(NSString *)serviceUrl + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject; + +- (void)cancelGossipSync; + +@end + +NS_ASSUME_NONNULL_END diff --git a/ios/LndMobile/BlixtTools.swift b/ios/LndMobile/BlixtTools.swift new file mode 100644 index 000000000..81368082f --- /dev/null +++ b/ios/LndMobile/BlixtTools.swift @@ -0,0 +1,401 @@ +import Foundation +import React + +@objc(BlixtTools) +class BlixtTools: NSObject { + private let workerQueue = DispatchQueue(label: "com.blixtwallet.gossipsync.turbo.ios") + private let session = URLSession(configuration: .default) + + private var activeTask: URLSessionDataTask? + private var gossipSyncInProgress = false + private var gossipSyncCancelled = false + + private let isoDateFormatter: ISO8601DateFormatter = { + let formatter = ISO8601DateFormatter() + formatter.formatOptions = [.withInternetDateTime, .withFractionalSeconds] + formatter.timeZone = TimeZone(secondsFromGMT: 0) + return formatter + }() + + @objc(gossipSync:resolve:reject:) + func gossipSync( + _ serviceUrl: String, + resolve: @escaping RCTPromiseResolveBlock, + reject: @escaping RCTPromiseRejectBlock + ) { + workerQueue.async { + if self.gossipSyncInProgress { + self.rejectPromise( + reject, + code: "GOSSIP_SYNC_IN_PROGRESS", + message: "Gossip sync is already in progress", + error: nil + ) + return + } + + self.gossipSyncInProgress = true + self.gossipSyncCancelled = false + self.logLine("gossipSync started with serviceUrl=\(serviceUrl)") + + do { + let lastRunURL = try self.lastRunURL() + if try self.shouldSkipGossipSync(lastRunURL: lastRunURL) { + self.logLine("gossipSync skipped due to 24h time constraint") + self.finish { + self.resolvePromise(resolve, value: nil) + } + return + } + + let graphFiles = try self.graphFiles() + try self.removeIfExists(at: graphFiles.temp) + + let graphDbURL = try self.resolveGraphDbURL(serviceUrl: serviceUrl) + self.logLine("Downloading graph database from \(graphDbURL.absoluteString)") + + var request = URLRequest(url: graphDbURL) + request.httpMethod = "GET" + request.timeoutInterval = 120 + + let task = self.session.dataTask(with: request) { data, response, error in + self.workerQueue.async { + self.handleDownloadCompletion( + data: data, + response: response, + error: error, + graphFiles: graphFiles, + lastRunURL: lastRunURL, + resolve: resolve, + reject: reject + ) + } + } + + self.activeTask = task + task.resume() + } catch { + self.logLine("gossipSync failed: \(error.localizedDescription)") + self.finish { + self.rejectPromise( + reject, + code: "GOSSIP_SYNC_FAILED", + message: error.localizedDescription, + error: error as NSError + ) + } + } + } + } + + @objc(cancelGossipSync) + func cancelGossipSync() { + workerQueue.async { + self.gossipSyncCancelled = true + self.activeTask?.cancel() + } + } + + private func handleDownloadCompletion( + data: Data?, + response: URLResponse?, + error: Error?, + graphFiles: GraphFiles, + lastRunURL: URL, + resolve: @escaping RCTPromiseResolveBlock, + reject: @escaping RCTPromiseRejectBlock + ) { + defer { + activeTask = nil + } + + if isCancellation(error: error) { + logLine("gossipSync cancelled by user") + finish { + rejectPromise( + reject, + code: "GOSSIP_SYNC_CANCELLED", + message: Self.cancellationMessage, + error: error as NSError? + ) + } + return + } + + do { + try throwIfCancelled() + + guard let httpResponse = response as? HTTPURLResponse else { + throw NSError( + domain: Self.errorDomain, + code: 1, + userInfo: [NSLocalizedDescriptionKey: "Missing HTTP response"] + ) + } + guard (200...299).contains(httpResponse.statusCode) else { + throw NSError( + domain: Self.errorDomain, + code: 2, + userInfo: [NSLocalizedDescriptionKey: "Failed to download graph.db, HTTP \(httpResponse.statusCode)"] + ) + } + guard let payload = data, !payload.isEmpty else { + throw NSError( + domain: Self.errorDomain, + code: 3, + userInfo: [NSLocalizedDescriptionKey: "Downloaded graph.db is empty"] + ) + } + + try payload.write(to: graphFiles.temp, options: .atomic) + try throwIfCancelled() + logLine("Downloaded graph database (\(payload.count) bytes)") + + try removeIfExists(at: graphFiles.backup) + if FileManager.default.fileExists(atPath: graphFiles.graph.path) { + try FileManager.default.moveItem(at: graphFiles.graph, to: graphFiles.backup) + } + + do { + try FileManager.default.moveItem(at: graphFiles.temp, to: graphFiles.graph) + } catch { + if FileManager.default.fileExists(atPath: graphFiles.backup.path) { + try? FileManager.default.moveItem(at: graphFiles.backup, to: graphFiles.graph) + } + throw NSError( + domain: Self.errorDomain, + code: 4, + userInfo: [NSLocalizedDescriptionKey: "Failed to replace graph.db"] + ) + } + + try removeIfExists(at: graphFiles.backup) + try touchLastRun(lastRunURL: lastRunURL) + logLine("gossipSync completed successfully") + finish { + resolvePromise(resolve, value: nil) + } + } catch { + try? removeIfExists(at: graphFiles.temp) + if isCancellation(error: error) { + logLine("gossipSync cancelled by user") + finish { + rejectPromise( + reject, + code: "GOSSIP_SYNC_CANCELLED", + message: Self.cancellationMessage, + error: error as NSError + ) + } + return + } + + logLine("gossipSync failed: \(error.localizedDescription)") + finish { + rejectPromise( + reject, + code: "GOSSIP_SYNC_FAILED", + message: error.localizedDescription, + error: error as NSError + ) + } + } + } + + private func finish(_ completion: @escaping () -> Void) { + gossipSyncInProgress = false + gossipSyncCancelled = false + completion() + } + + private func resolvePromise(_ resolve: @escaping RCTPromiseResolveBlock, value: Any?) { + DispatchQueue.main.async { + resolve(value) + } + } + + private func rejectPromise( + _ reject: @escaping RCTPromiseRejectBlock, + code: String, + message: String, + error: NSError? + ) { + DispatchQueue.main.async { + reject(code, message, error) + } + } + + private func isCancellation(error: Error?) -> Bool { + if gossipSyncCancelled { + return true + } + guard let nsError = error as NSError? else { + return false + } + return nsError.domain == NSURLErrorDomain && nsError.code == NSURLErrorCancelled + } + + private func throwIfCancelled() throws { + if gossipSyncCancelled { + throw NSError( + domain: NSURLErrorDomain, + code: NSURLErrorCancelled, + userInfo: [NSLocalizedDescriptionKey: Self.cancellationMessage] + ) + } + } + + private func resolveGraphDbURL(serviceUrl: String) throws -> URL { + let trimmedServiceUrl = trimTrailingSlash(serviceUrl.trimmingCharacters(in: .whitespacesAndNewlines)) + if trimmedServiceUrl.isEmpty { + throw NSError( + domain: Self.errorDomain, + code: 5, + userInfo: [NSLocalizedDescriptionKey: "Service URL is empty"] + ) + } + + guard var urlComponents = URLComponents(string: trimmedServiceUrl) else { + throw NSError( + domain: Self.errorDomain, + code: 6, + userInfo: [NSLocalizedDescriptionKey: "Invalid service URL"] + ) + } + + // Accept either a base service URL (append //graph/graph-001d.db) + // or a direct .db URL passed from settings/debug tooling. + if urlComponents.path.lowercased().hasSuffix(".db"), let url = urlComponents.url { + return url + } + + let chain = currentChain() + let basePath = trimTrailingSlash(urlComponents.path) + urlComponents.path = "\(basePath)/\(chain)/graph/graph-001d.db" + + guard let url = urlComponents.url else { + throw NSError( + domain: Self.errorDomain, + code: 7, + userInfo: [NSLocalizedDescriptionKey: "Invalid graph.db URL"] + ) + } + + return url + } + + private func graphFiles() throws -> GraphFiles { + let appSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] + let lndDir = appSupport.appendingPathComponent("lnd", isDirectory: true) + let graphDir = lndDir + .appendingPathComponent("data", isDirectory: true) + .appendingPathComponent("graph", isDirectory: true) + .appendingPathComponent(currentChain(), isDirectory: true) + + try FileManager.default.createDirectory( + at: graphDir, + withIntermediateDirectories: true, + attributes: nil + ) + + return GraphFiles( + graph: graphDir.appendingPathComponent("graph.db", isDirectory: false), + backup: graphDir.appendingPathComponent("graph.db.bak", isDirectory: false), + temp: graphDir.appendingPathComponent("graph.db.download", isDirectory: false) + ) + } + + private func shouldSkipGossipSync(lastRunURL: URL) throws -> Bool { + let fileManager = FileManager.default + if !fileManager.fileExists(atPath: lastRunURL.path) { + fileManager.createFile(atPath: lastRunURL.path, contents: nil) + return false + } + + let attrs = try fileManager.attributesOfItem(atPath: lastRunURL.path) + guard let modifiedDate = attrs[.modificationDate] as? Date else { + return false + } + + let age = Date().timeIntervalSince(modifiedDate) + return age <= Self.lastRunIntervalSeconds + } + + private func touchLastRun(lastRunURL: URL) throws { + let fileManager = FileManager.default + if !fileManager.fileExists(atPath: lastRunURL.path) { + fileManager.createFile(atPath: lastRunURL.path, contents: nil) + } + try fileManager.setAttributes([.modificationDate: Date()], ofItemAtPath: lastRunURL.path) + } + + private func lastRunURL() throws -> URL { + let cacheDir = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0] + try FileManager.default.createDirectory( + at: cacheDir, + withIntermediateDirectories: true, + attributes: nil + ) + return cacheDir.appendingPathComponent("lastrun", isDirectory: false) + } + + private func speedloaderLogURL() throws -> URL { + let cacheDir = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0] + let logDir = cacheDir.appendingPathComponent("log", isDirectory: true) + try FileManager.default.createDirectory( + at: logDir, + withIntermediateDirectories: true, + attributes: nil + ) + return logDir.appendingPathComponent("speedloader.log", isDirectory: false) + } + + private func logLine(_ message: String) { + do { + let logURL = try speedloaderLogURL() + if !FileManager.default.fileExists(atPath: logURL.path) { + FileManager.default.createFile(atPath: logURL.path, contents: nil) + } + + let timestamp = isoDateFormatter.string(from: Date()) + guard let lineData = "\(timestamp) \(message)\n".data(using: .utf8) else { + return + } + + let handle = try FileHandle(forWritingTo: logURL) + defer { handle.closeFile() } + handle.seekToEndOfFile() + handle.write(lineData) + } catch { + // Ignore logging errors to avoid blocking sync flow. + } + } + + private func removeIfExists(at url: URL) throws { + if FileManager.default.fileExists(atPath: url.path) { + try FileManager.default.removeItem(at: url) + } + } + + private func trimTrailingSlash(_ value: String) -> String { + var output = value + while output.hasSuffix("/") { + output.removeLast() + } + return output + } + + private func currentChain() -> String { + return (Bundle.main.object(forInfoDictionaryKey: "CHAIN") as? String ?? "mainnet").lowercased() + } + + private struct GraphFiles { + let graph: URL + let backup: URL + let temp: URL + } + + private static let errorDomain = "BlixtTools" + private static let cancellationMessage = "Gossip sync cancelled by user" + private static let lastRunIntervalSeconds: TimeInterval = 24 * 60 * 60 +} diff --git a/ios/LndMobile/LndMobileToolsTurbo.h b/ios/LndMobile/BlixtToolsBridge.m similarity index 59% rename from ios/LndMobile/LndMobileToolsTurbo.h rename to ios/LndMobile/BlixtToolsBridge.m index 89e1e1d9e..62a25783b 100644 --- a/ios/LndMobile/LndMobileToolsTurbo.h +++ b/ios/LndMobile/BlixtToolsBridge.m @@ -2,7 +2,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface LndMobileToolsTurbo : NSObject +@interface BlixtToolsTurbo : NSObject @end diff --git a/ios/LndMobile/BlixtToolsTurbo.mm b/ios/LndMobile/BlixtToolsTurbo.mm new file mode 100644 index 000000000..9ba6d773e --- /dev/null +++ b/ios/LndMobile/BlixtToolsTurbo.mm @@ -0,0 +1,52 @@ +#import "BlixtToolsBridge.m" +#import "BlixtTools.h" + +@interface BlixtToolsTurbo () +@property(nonatomic, strong) BlixtTools *gossipSyncBridge; +@end + +@implementation BlixtToolsTurbo + +RCT_EXPORT_MODULE(BlixtTools) + +- (instancetype)init { + self = [super init]; + if (self) { + _gossipSyncBridge = [[BlixtTools alloc] init]; + } + return self; +} + +- (void)startSyncWorker { + return; +} + +- (void)scheduleSyncWorker { + return; +} + +- (void)stopScheduleSyncWorker { + return; +} + +- (NSNumber *)getStatus { + return @0; +} + +- (void)gossipSync:(NSString *)serviceUrl + resolve:(RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject { + [self.gossipSyncBridge gossipSync:serviceUrl resolve:resolve reject:reject]; +} + +- (void)cancelGossipSync { + [self.gossipSyncBridge cancelGossipSync]; +} + +- (std::shared_ptr)getTurboModule: + (const facebook::react::ObjCTurboModule::InitParams &)params +{ + return std::make_shared(params); +} + +@end diff --git a/ios/LndMobile/Lnd.swift b/ios/LndMobile/Lnd.swift index f9f749278..273026cb8 100644 --- a/ios/LndMobile/Lnd.swift +++ b/ios/LndMobile/Lnd.swift @@ -301,7 +301,4 @@ open class Lnd { } } - func gossipSync(_ serviceUrl: String, cacheDir: String, dataDir: String, networkType: String, callback: @escaping Callback) { - LndmobileGossipSync(serviceUrl, cacheDir, dataDir, networkType, LndmobileCallback(method: "blixt_gossipSync", callback: callback)) - } } diff --git a/ios/LndMobile/LndMobile.m b/ios/LndMobile/LndMobile.m index 809988936..d47a34719 100644 --- a/ios/LndMobile/LndMobile.m +++ b/ios/LndMobile/LndMobile.m @@ -69,11 +69,4 @@ @interface RCT_EXTERN_MODULE(LndMobile, RCTEventEmitter) rejecter: (RCTPromiseRejectBlock)reject ) -RCT_EXTERN_METHOD( - gossipSync: (NSString *)serviceUrl - networkType: (NSString *)networkType - resolver: (RCTPromiseResolveBlock)resolve - rejecter: (RCTPromiseRejectBlock)reject -) - @end diff --git a/ios/LndMobile/LndMobile.swift b/ios/LndMobile/LndMobile.swift index d992e4b41..ccb091139 100644 --- a/ios/LndMobile/LndMobile.swift +++ b/ios/LndMobile/LndMobile.swift @@ -275,18 +275,4 @@ class LndMobile: RCTEventEmitter { } } - @objc(gossipSync:networkType:resolver:rejecter:) - func gossipSync(serviceUrl: String, networkType: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) { - let applicationSupport = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask)[0] - let lndPath = applicationSupport.appendingPathComponent("lnd", isDirectory: true) - let cachePath = FileManager.default.urls(for: .cachesDirectory, in: .userDomainMask)[0] - - Lnd.shared.gossipSync(serviceUrl, cacheDir: cachePath.path, dataDir: lndPath.path, networkType: networkType, callback: { (data, error) in - if let e = error { - reject("error", e.localizedDescription, e) - return - } - resolve(String(data: data ?? Data(), encoding: .utf8)) - }) - } } diff --git a/ios/LndMobile/LndMobileToolsTurbo.mm b/ios/LndMobile/LndMobileToolsTurbo.mm deleted file mode 100644 index 939fb805d..000000000 --- a/ios/LndMobile/LndMobileToolsTurbo.mm +++ /dev/null @@ -1,29 +0,0 @@ -#import "LndMobileToolsTurbo.h" - -@implementation LndMobileToolsTurbo - -RCT_EXPORT_MODULE() - -- (void)startSyncWorker { - return; -} - -- (void)scheduleSyncWorker { - return; -} - -- (void)stopScheduleSyncWorker { - return; -} - -- (NSNumber *)getStatus { - return @0; -} - -- (std::shared_ptr)getTurboModule: - (const facebook::react::ObjCTurboModule::InitParams &)params -{ - return std::make_shared(params); -} - -@end diff --git a/macos/BlixtWallet.xcodeproj/project.pbxproj b/macos/BlixtWallet.xcodeproj/project.pbxproj index 5952172ab..baabbdca9 100644 --- a/macos/BlixtWallet.xcodeproj/project.pbxproj +++ b/macos/BlixtWallet.xcodeproj/project.pbxproj @@ -14,7 +14,7 @@ 514201582437B4B40078DB4F /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = 514201572437B4B40078DB4F /* main.m */; }; CC3585152A5F1AB5006924C2 /* Fonts in Resources */ = {isa = PBXBuildFile; fileRef = CC3585142A5F1AB5006924C2 /* Fonts */; }; CC855CF12CB68B7B00C74CC4 /* liblnd.a in Frameworks */ = {isa = PBXBuildFile; fileRef = CC855CF02CB68B7B00C74CC4 /* liblnd.a */; }; - CC855CF72CB68FD000C74CC4 /* LndMobileToolsTurbo.mm in Sources */ = {isa = PBXBuildFile; fileRef = CC855CF62CB68FD000C74CC4 /* LndMobileToolsTurbo.mm */; }; + CC855CF72CB68FD000C74CC4 /* BlixtToolsTurbo.mm in Sources */ = {isa = PBXBuildFile; fileRef = CC855CF62CB68FD000C74CC4 /* BlixtToolsTurbo.mm */; }; CC9860B52A5F2E9100047BB1 /* Lndmobile.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = CC9860B42A5F2E9100047BB1 /* Lndmobile.xcframework */; }; CC9860EE2A5F393500047BB1 /* libresolv.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = CC9860ED2A5F391D00047BB1 /* libresolv.tbd */; }; CC9860FA2A5F3A3A00047BB1 /* LndMobileScheduledSync.swift in Sources */ = {isa = PBXBuildFile; fileRef = CC9860F02A5F3A3A00047BB1 /* LndMobileScheduledSync.swift */; }; @@ -48,8 +48,8 @@ CC26772C2A50A80E005E96BE /* BlixtWallet-macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "BlixtWallet-macOS.entitlements"; sourceTree = ""; }; CC3585142A5F1AB5006924C2 /* Fonts */ = {isa = PBXFileReference; lastKnownFileType = folder; name = Fonts; path = ../assets/fonts; sourceTree = ""; }; CC855CF02CB68B7B00C74CC4 /* liblnd.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = liblnd.a; sourceTree = ""; }; - CC855CF52CB68FD000C74CC4 /* LndMobileToolsTurbo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = LndMobileToolsTurbo.h; path = ../ios/LndMobile/LndMobileToolsTurbo.h; sourceTree = SOURCE_ROOT; }; - CC855CF62CB68FD000C74CC4 /* LndMobileToolsTurbo.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = LndMobileToolsTurbo.mm; path = ../ios/LndMobile/LndMobileToolsTurbo.mm; sourceTree = SOURCE_ROOT; }; + CC855CF52CB68FD000C74CC4 /* BlixtToolsBridge.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = BlixtToolsBridge.m; path = ../ios/LndMobile/BlixtToolsBridge.m; sourceTree = SOURCE_ROOT; }; + CC855CF62CB68FD000C74CC4 /* BlixtToolsTurbo.mm */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.cpp.objcpp; name = BlixtToolsTurbo.mm; path = ../ios/LndMobile/BlixtToolsTurbo.mm; sourceTree = SOURCE_ROOT; }; CC9860B42A5F2E9100047BB1 /* Lndmobile.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; name = Lndmobile.xcframework; path = ../ios/Lndmobile.xcframework; sourceTree = ""; }; CC9860ED2A5F391D00047BB1 /* libresolv.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libresolv.tbd; path = Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.3.sdk/usr/lib/libresolv.tbd; sourceTree = DEVELOPER_DIR; }; CC9860F02A5F3A3A00047BB1 /* LndMobileScheduledSync.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; name = LndMobileScheduledSync.swift; path = ../ios/LndMobile/LndMobileScheduledSync.swift; sourceTree = ""; }; @@ -144,8 +144,8 @@ CC9860EF2A5F3A2400047BB1 /* LndMobile */ = { isa = PBXGroup; children = ( - CC855CF52CB68FD000C74CC4 /* LndMobileToolsTurbo.h */, - CC855CF62CB68FD000C74CC4 /* LndMobileToolsTurbo.mm */, + CC855CF52CB68FD000C74CC4 /* BlixtToolsBridge.m */, + CC855CF62CB68FD000C74CC4 /* BlixtToolsTurbo.mm */, CC9860F42A5F3A3A00047BB1 /* lightning.pb.swift */, CC9860F82A5F3A3A00047BB1 /* Lnd.swift */, CC9860F22A5F3A3A00047BB1 /* LndMobile.m */, @@ -357,7 +357,7 @@ buildActionMask = 2147483647; files = ( 514201582437B4B40078DB4F /* main.m in Sources */, - CC855CF72CB68FD000C74CC4 /* LndMobileToolsTurbo.mm in Sources */, + CC855CF72CB68FD000C74CC4 /* BlixtToolsTurbo.mm in Sources */, CC9861002A5F3A3A00047BB1 /* walletunlocker.pb.swift in Sources */, CC9861012A5F3A3A00047BB1 /* Lnd.swift in Sources */, CC9861022A5F3A3A00047BB1 /* LndMobileTools.m in Sources */, diff --git a/package.json b/package.json index 243362d41..20ffc5c16 100644 --- a/package.json +++ b/package.json @@ -223,11 +223,6 @@ "jsSrcsDir": "src/turbomodules", "android": { "javaPackageName": "com.blixtwallet" - }, - "ios": { - "modulesProvider": { - "NativeSpeedloader": "NativeSpeedloaderModuleProvider" - } } } } diff --git a/speedloader-turbomodule/NativeSpeedloader.cpp b/speedloader-turbomodule/NativeSpeedloader.cpp deleted file mode 100644 index a287ef45d..000000000 --- a/speedloader-turbomodule/NativeSpeedloader.cpp +++ /dev/null @@ -1,62 +0,0 @@ -#include "NativeSpeedloader.h" - -#include "liblnd.h" -#include "blixtlog.h" - -// Store global ref to the promise so that we can use it later in the callbacks from speedloader -facebook::react::AsyncPromise* promise = nullptr; -bool isCancelled = false; - -void onResponse(void* context, const char* data, int length) { - BLIXT_LOG_DEBUG("onResponse"); - if (promise != nullptr && !isCancelled) { - promise->resolve(std::string(data, length)); - promise = nullptr; - } -} - -void onError(void* context, const char* message) { - BLIXT_LOG_DEBUG("onError " << message); - if (promise != nullptr && !isCancelled) { - promise->reject(facebook::react::Error(message)); - promise = nullptr; - } -} - -namespace facebook::react { - -NativeSpeedloaderModule::NativeSpeedloaderModule(std::shared_ptr jsInvoker) - : NativeSpeedloaderCxxSpec(std::move(jsInvoker)) {} - -facebook::react::AsyncPromise NativeSpeedloaderModule::gossipSync(jsi::Runtime& rt, std::string serviceUrl, std::string cacheDir, std::string filesDir) { - BLIXT_LOG_DEBUG("gossipSync"); - AsyncPromise* p = new AsyncPromise(rt, jsInvoker_); - - // Store the promise globally and reset cancelled state - promise = p; - isCancelled = false; - - CCallback callback = { - .onResponse = &onResponse, - .onError = &onError, - .responseContext = nullptr, - .errorContext = nullptr - }; - const char* networkType = "wifi"; - - ::gossipSync((char*)serviceUrl.c_str(), (char*)cacheDir.c_str(), (char*)filesDir.c_str(), (char*)networkType, callback); - - return *p; -} - -void NativeSpeedloaderModule::cancelGossipSync(jsi::Runtime& rt) { - BLIXT_LOG_DEBUG("cancelGossipSync"); - isCancelled = true; - ::cancelGossipSync(); - if (promise != nullptr) { - promise->reject(facebook::react::Error("Gossip sync cancelled by user")); - promise = nullptr; - } -} - -} // namespace facebook::react \ No newline at end of file diff --git a/speedloader-turbomodule/NativeSpeedloader.h b/speedloader-turbomodule/NativeSpeedloader.h deleted file mode 100644 index 77375de8c..000000000 --- a/speedloader-turbomodule/NativeSpeedloader.h +++ /dev/null @@ -1,18 +0,0 @@ -#pragma once - -#include - -#include -#include - -namespace facebook::react { - -class NativeSpeedloaderModule : public NativeSpeedloaderCxxSpec { -public: - NativeSpeedloaderModule(std::shared_ptr jsInvoker); - - facebook::react::AsyncPromise gossipSync(jsi::Runtime& rt, std::string serviceUrl, std::string cacheDir, std::string filesDir); - void cancelGossipSync(jsi::Runtime& rt); -}; - -} // namespace facebook::react diff --git a/speedloader-turbomodule/liblnd/arm64-v8a/liblnd.h b/speedloader-turbomodule/liblnd/arm64-v8a/liblnd.h deleted file mode 100644 index cd7320151..000000000 --- a/speedloader-turbomodule/liblnd/arm64-v8a/liblnd.h +++ /dev/null @@ -1,770 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package github.com/lightningnetwork/lnd/mobile */ - - -#line 1 "cgo-builtin-export-prolog" - -#include - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 20 "autopilot_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 4 "cgo_utils_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -static inline void bridgeResponseFunc(ResponseFunc f, void* context, const char* data, int length) { - if (f) f(context, data, length); -} - -static inline void bridgeErrorFunc(ErrorFunc f, void* context, const char* error) { - if (f) f(context, error); -} - -// Callback -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -// RecvStream -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -// SendStream -typedef void (*SendFunc)(uintptr_t streamPtr, const char* data, int length); -typedef void (*StopFunc)(uintptr_t streamPtr); - -typedef struct CSendStream { - SendFunc send; - StopFunc stop; - uintptr_t streamPtr; -} CSendStream; - -static inline CSendStream* allocCSendStream() { - return (CSendStream*)malloc(sizeof(CSendStream)); -} - -static inline void freeCSendStream(CSendStream* stream) { - if (stream != NULL) { - free(stream); - } -} - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainnotifier_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 6 "cshared.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "invoices_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "lightning_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "neutrinokit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "peers_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "router_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "signer_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 3 "speedloader_cgo.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "state_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "versioner_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 21 "walletkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "walletunlocker_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtower_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtowerclient_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt64 GoInt; -typedef GoUint64 GoUint; -typedef size_t GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -#ifdef _MSC_VER -#include -typedef _Fcomplex GoComplex64; -typedef _Dcomplex GoComplex128; -#else -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; -#endif - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern void autopilotStatus(char* data, int length, CCallback callback); -extern void autopilotModifyStatus(char* data, int length, CCallback callback); -extern void autopilotQueryScores(char* data, int length, CCallback callback); -extern void autopilotSetScores(char* data, int length, CCallback callback); -extern int SendStreamC(uintptr_t streamPtr, char* data, int length); -extern int StopStreamC(uintptr_t streamPtr); -extern void chainKitGetBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHeader(char* data, int length, CCallback callback); -extern void chainKitGetBestBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHash(char* data, int length, CCallback callback); -extern void chainNotifierRegisterConfirmationsNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterSpendNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterBlockEpochNtfn(char* data, int length, CRecvStream rStream); -extern void start(char* extraArgs, CCallback callback); -extern GoInt32 getStatus(); -extern void invoicesSubscribeSingleInvoice(char* data, int length, CRecvStream rStream); -extern void invoicesCancelInvoice(char* data, int length, CCallback callback); -extern void invoicesAddHoldInvoice(char* data, int length, CCallback callback); -extern void invoicesSettleInvoice(char* data, int length, CCallback callback); -extern void invoicesLookupInvoiceV2(char* data, int length, CCallback callback); -extern void walletBalance(char* data, int length, CCallback callback); -extern void channelBalance(char* data, int length, CCallback callback); -extern void getTransactions(char* data, int length, CCallback callback); -extern void estimateFee(char* data, int length, CCallback callback); -extern void sendCoins(char* data, int length, CCallback callback); -extern void listUnspent(char* data, int length, CCallback callback); -extern void subscribeTransactions(char* data, int length, CRecvStream rStream); -extern void sendMany(char* data, int length, CCallback callback); -extern void newAddress(char* data, int length, CCallback callback); -extern void signMessage(char* data, int length, CCallback callback); -extern void verifyMessage(char* data, int length, CCallback callback); -extern void connectPeer(char* data, int length, CCallback callback); -extern void disconnectPeer(char* data, int length, CCallback callback); -extern void listPeers(char* data, int length, CCallback callback); -extern void subscribePeerEvents(char* data, int length, CRecvStream rStream); -extern void getInfo(char* data, int length, CCallback callback); -extern void getDebugInfo(char* data, int length, CCallback callback); -extern void getRecoveryInfo(char* data, int length, CCallback callback); -extern void pendingChannels(char* data, int length, CCallback callback); -extern void listChannels(char* data, int length, CCallback callback); -extern void subscribeChannelEvents(char* data, int length, CRecvStream rStream); -extern void closedChannels(char* data, int length, CCallback callback); -extern void openChannelSync(char* data, int length, CCallback callback); -extern void openChannel(char* data, int length, CRecvStream rStream); -extern void batchOpenChannel(char* data, int length, CCallback callback); -extern void fundingStateStep(char* data, int length, CCallback callback); -extern uintptr_t channelAcceptor(CRecvStream rStream); -extern void closeChannel(char* data, int length, CRecvStream rStream); -extern void abandonChannel(char* data, int length, CCallback callback); -extern uintptr_t sendPayment(CRecvStream rStream); -extern void sendPaymentSync(char* data, int length, CCallback callback); -extern uintptr_t sendToRoute(CRecvStream rStream); -extern void sendToRouteSync(char* data, int length, CCallback callback); -extern void addInvoice(char* data, int length, CCallback callback); -extern void listInvoices(char* data, int length, CCallback callback); -extern void lookupInvoice(char* data, int length, CCallback callback); -extern void subscribeInvoices(char* data, int length, CRecvStream rStream); -extern void decodePayReq(char* data, int length, CCallback callback); -extern void listPayments(char* data, int length, CCallback callback); -extern void deletePayment(char* data, int length, CCallback callback); -extern void deleteAllPayments(char* data, int length, CCallback callback); -extern void describeGraph(char* data, int length, CCallback callback); -extern void getNodeMetrics(char* data, int length, CCallback callback); -extern void getChanInfo(char* data, int length, CCallback callback); -extern void getNodeInfo(char* data, int length, CCallback callback); -extern void queryRoutes(char* data, int length, CCallback callback); -extern void getNetworkInfo(char* data, int length, CCallback callback); -extern void stopDaemon(char* data, int length, CCallback callback); -extern void subscribeChannelGraph(char* data, int length, CRecvStream rStream); -extern void debugLevel(char* data, int length, CCallback callback); -extern void feeReport(char* data, int length, CCallback callback); -extern void updateChannelPolicy(char* data, int length, CCallback callback); -extern void forwardingHistory(char* data, int length, CCallback callback); -extern void exportChannelBackup(char* data, int length, CCallback callback); -extern void exportAllChannelBackups(char* data, int length, CCallback callback); -extern void verifyChanBackup(char* data, int length, CCallback callback); -extern void restoreChannelBackups(char* data, int length, CCallback callback); -extern void subscribeChannelBackups(char* data, int length, CRecvStream rStream); -extern void bakeMacaroon(char* data, int length, CCallback callback); -extern void listMacaroonIDs(char* data, int length, CCallback callback); -extern void deleteMacaroonID(char* data, int length, CCallback callback); -extern void listPermissions(char* data, int length, CCallback callback); -extern void checkMacaroonPermissions(char* data, int length, CCallback callback); -extern uintptr_t registerRPCMiddleware(CRecvStream rStream); -extern void sendCustomMessage(char* data, int length, CCallback callback); -extern void subscribeCustomMessages(char* data, int length, CRecvStream rStream); -extern void listAliases(char* data, int length, CCallback callback); -extern void lookupHtlcResolution(char* data, int length, CCallback callback); -extern void neutrinoKitStatus(char* data, int length, CCallback callback); -extern void neutrinoKitAddPeer(char* data, int length, CCallback callback); -extern void neutrinoKitDisconnectPeer(char* data, int length, CCallback callback); -extern void neutrinoKitIsBanned(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHeader(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlock(char* data, int length, CCallback callback); -extern void neutrinoKitGetCFilter(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHash(char* data, int length, CCallback callback); -extern void peersUpdateNodeAnnouncement(char* data, int length, CCallback callback); -extern void routerSendPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPayments(char* data, int length, CRecvStream rStream); -extern void routerEstimateRouteFee(char* data, int length, CCallback callback); -extern void routerSendToRoute(char* data, int length, CCallback callback); -extern void routerSendToRouteV2(char* data, int length, CCallback callback); -extern void routerResetMissionControl(char* data, int length, CCallback callback); -extern void routerQueryMissionControl(char* data, int length, CCallback callback); -extern void routerXImportMissionControl(char* data, int length, CCallback callback); -extern void routerGetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerSetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerQueryProbability(char* data, int length, CCallback callback); -extern void routerBuildRoute(char* data, int length, CCallback callback); -extern void routerSubscribeHtlcEvents(char* data, int length, CRecvStream rStream); -extern void routerSendPayment(char* data, int length, CRecvStream rStream); -extern void routerTrackPayment(char* data, int length, CRecvStream rStream); -extern uintptr_t routerHtlcInterceptor(CRecvStream rStream); -extern void routerUpdateChanStatus(char* data, int length, CCallback callback); -extern void signerSignOutputRaw(char* data, int length, CCallback callback); -extern void signerComputeInputScript(char* data, int length, CCallback callback); -extern void signerSignMessage(char* data, int length, CCallback callback); -extern void signerVerifyMessage(char* data, int length, CCallback callback); -extern void signerDeriveSharedKey(char* data, int length, CCallback callback); -extern void signerMuSig2CombineKeys(char* data, int length, CCallback callback); -extern void signerMuSig2CreateSession(char* data, int length, CCallback callback); -extern void signerMuSig2RegisterNonces(char* data, int length, CCallback callback); -extern void signerMuSig2Sign(char* data, int length, CCallback callback); -extern void signerMuSig2CombineSig(char* data, int length, CCallback callback); -extern void signerMuSig2Cleanup(char* data, int length, CCallback callback); -extern void gossipSync(char* serviceUrl, char* cacheDir, char* dataDir, char* networkType, CCallback callback); -extern void cancelGossipSync(); -extern void subscribeState(char* data, int length, CRecvStream rStream); -extern void getState(char* data, int length, CCallback callback); -extern void versionerGetVersion(char* data, int length, CCallback callback); -extern void walletKitListUnspent(char* data, int length, CCallback callback); -extern void walletKitLeaseOutput(char* data, int length, CCallback callback); -extern void walletKitReleaseOutput(char* data, int length, CCallback callback); -extern void walletKitListLeases(char* data, int length, CCallback callback); -extern void walletKitDeriveNextKey(char* data, int length, CCallback callback); -extern void walletKitDeriveKey(char* data, int length, CCallback callback); -extern void walletKitNextAddr(char* data, int length, CCallback callback); -extern void walletKitGetTransaction(char* data, int length, CCallback callback); -extern void walletKitListAccounts(char* data, int length, CCallback callback); -extern void walletKitRequiredReserve(char* data, int length, CCallback callback); -extern void walletKitListAddresses(char* data, int length, CCallback callback); -extern void walletKitSignMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitVerifyMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitImportAccount(char* data, int length, CCallback callback); -extern void walletKitImportPublicKey(char* data, int length, CCallback callback); -extern void walletKitImportTapscript(char* data, int length, CCallback callback); -extern void walletKitPublishTransaction(char* data, int length, CCallback callback); -extern void walletKitRemoveTransaction(char* data, int length, CCallback callback); -extern void walletKitSendOutputs(char* data, int length, CCallback callback); -extern void walletKitEstimateFee(char* data, int length, CCallback callback); -extern void walletKitPendingSweeps(char* data, int length, CCallback callback); -extern void walletKitBumpFee(char* data, int length, CCallback callback); -extern void walletKitListSweeps(char* data, int length, CCallback callback); -extern void walletKitLabelTransaction(char* data, int length, CCallback callback); -extern void walletKitFundPsbt(char* data, int length, CCallback callback); -extern void walletKitSignPsbt(char* data, int length, CCallback callback); -extern void walletKitFinalizePsbt(char* data, int length, CCallback callback); -extern void genSeed(char* data, int length, CCallback callback); -extern void initWallet(char* data, int length, CCallback callback); -extern void unlockWallet(char* data, int length, CCallback callback); -extern void changePassword(char* data, int length, CCallback callback); -extern void watchtowerGetInfo(char* data, int length, CCallback callback); -extern void watchtowerClientAddTower(char* data, int length, CCallback callback); -extern void watchtowerClientRemoveTower(char* data, int length, CCallback callback); -extern void watchtowerClientDeactivateTower(char* data, int length, CCallback callback); -extern void watchtowerClientTerminateSession(char* data, int length, CCallback callback); -extern void watchtowerClientListTowers(char* data, int length, CCallback callback); -extern void watchtowerClientGetTowerInfo(char* data, int length, CCallback callback); -extern void watchtowerClientStats(char* data, int length, CCallback callback); -extern void watchtowerClientPolicy(char* data, int length, CCallback callback); - -#ifdef __cplusplus -} -#endif diff --git a/speedloader-turbomodule/liblnd/armeabi-v7a/liblnd.h b/speedloader-turbomodule/liblnd/armeabi-v7a/liblnd.h deleted file mode 100644 index 9ee347300..000000000 --- a/speedloader-turbomodule/liblnd/armeabi-v7a/liblnd.h +++ /dev/null @@ -1,770 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package github.com/lightningnetwork/lnd/mobile */ - - -#line 1 "cgo-builtin-export-prolog" - -#include - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 20 "autopilot_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 4 "cgo_utils_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -static inline void bridgeResponseFunc(ResponseFunc f, void* context, const char* data, int length) { - if (f) f(context, data, length); -} - -static inline void bridgeErrorFunc(ErrorFunc f, void* context, const char* error) { - if (f) f(context, error); -} - -// Callback -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -// RecvStream -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -// SendStream -typedef void (*SendFunc)(uintptr_t streamPtr, const char* data, int length); -typedef void (*StopFunc)(uintptr_t streamPtr); - -typedef struct CSendStream { - SendFunc send; - StopFunc stop; - uintptr_t streamPtr; -} CSendStream; - -static inline CSendStream* allocCSendStream() { - return (CSendStream*)malloc(sizeof(CSendStream)); -} - -static inline void freeCSendStream(CSendStream* stream) { - if (stream != NULL) { - free(stream); - } -} - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainnotifier_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 6 "cshared.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "invoices_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "lightning_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "neutrinokit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "peers_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "router_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "signer_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 3 "speedloader_cgo.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "state_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "versioner_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 21 "walletkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "walletunlocker_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtower_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtowerclient_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt32 GoInt; -typedef GoUint32 GoUint; -typedef size_t GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -#ifdef _MSC_VER -#include -typedef _Fcomplex GoComplex64; -typedef _Dcomplex GoComplex128; -#else -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; -#endif - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_32_bit_pointer_matching_GoInt[sizeof(void*)==32/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern void autopilotStatus(char* data, int length, CCallback callback); -extern void autopilotModifyStatus(char* data, int length, CCallback callback); -extern void autopilotQueryScores(char* data, int length, CCallback callback); -extern void autopilotSetScores(char* data, int length, CCallback callback); -extern int SendStreamC(uintptr_t streamPtr, char* data, int length); -extern int StopStreamC(uintptr_t streamPtr); -extern void chainKitGetBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHeader(char* data, int length, CCallback callback); -extern void chainKitGetBestBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHash(char* data, int length, CCallback callback); -extern void chainNotifierRegisterConfirmationsNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterSpendNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterBlockEpochNtfn(char* data, int length, CRecvStream rStream); -extern void start(char* extraArgs, CCallback callback); -extern GoInt32 getStatus(); -extern void invoicesSubscribeSingleInvoice(char* data, int length, CRecvStream rStream); -extern void invoicesCancelInvoice(char* data, int length, CCallback callback); -extern void invoicesAddHoldInvoice(char* data, int length, CCallback callback); -extern void invoicesSettleInvoice(char* data, int length, CCallback callback); -extern void invoicesLookupInvoiceV2(char* data, int length, CCallback callback); -extern void walletBalance(char* data, int length, CCallback callback); -extern void channelBalance(char* data, int length, CCallback callback); -extern void getTransactions(char* data, int length, CCallback callback); -extern void estimateFee(char* data, int length, CCallback callback); -extern void sendCoins(char* data, int length, CCallback callback); -extern void listUnspent(char* data, int length, CCallback callback); -extern void subscribeTransactions(char* data, int length, CRecvStream rStream); -extern void sendMany(char* data, int length, CCallback callback); -extern void newAddress(char* data, int length, CCallback callback); -extern void signMessage(char* data, int length, CCallback callback); -extern void verifyMessage(char* data, int length, CCallback callback); -extern void connectPeer(char* data, int length, CCallback callback); -extern void disconnectPeer(char* data, int length, CCallback callback); -extern void listPeers(char* data, int length, CCallback callback); -extern void subscribePeerEvents(char* data, int length, CRecvStream rStream); -extern void getInfo(char* data, int length, CCallback callback); -extern void getDebugInfo(char* data, int length, CCallback callback); -extern void getRecoveryInfo(char* data, int length, CCallback callback); -extern void pendingChannels(char* data, int length, CCallback callback); -extern void listChannels(char* data, int length, CCallback callback); -extern void subscribeChannelEvents(char* data, int length, CRecvStream rStream); -extern void closedChannels(char* data, int length, CCallback callback); -extern void openChannelSync(char* data, int length, CCallback callback); -extern void openChannel(char* data, int length, CRecvStream rStream); -extern void batchOpenChannel(char* data, int length, CCallback callback); -extern void fundingStateStep(char* data, int length, CCallback callback); -extern uintptr_t channelAcceptor(CRecvStream rStream); -extern void closeChannel(char* data, int length, CRecvStream rStream); -extern void abandonChannel(char* data, int length, CCallback callback); -extern uintptr_t sendPayment(CRecvStream rStream); -extern void sendPaymentSync(char* data, int length, CCallback callback); -extern uintptr_t sendToRoute(CRecvStream rStream); -extern void sendToRouteSync(char* data, int length, CCallback callback); -extern void addInvoice(char* data, int length, CCallback callback); -extern void listInvoices(char* data, int length, CCallback callback); -extern void lookupInvoice(char* data, int length, CCallback callback); -extern void subscribeInvoices(char* data, int length, CRecvStream rStream); -extern void decodePayReq(char* data, int length, CCallback callback); -extern void listPayments(char* data, int length, CCallback callback); -extern void deletePayment(char* data, int length, CCallback callback); -extern void deleteAllPayments(char* data, int length, CCallback callback); -extern void describeGraph(char* data, int length, CCallback callback); -extern void getNodeMetrics(char* data, int length, CCallback callback); -extern void getChanInfo(char* data, int length, CCallback callback); -extern void getNodeInfo(char* data, int length, CCallback callback); -extern void queryRoutes(char* data, int length, CCallback callback); -extern void getNetworkInfo(char* data, int length, CCallback callback); -extern void stopDaemon(char* data, int length, CCallback callback); -extern void subscribeChannelGraph(char* data, int length, CRecvStream rStream); -extern void debugLevel(char* data, int length, CCallback callback); -extern void feeReport(char* data, int length, CCallback callback); -extern void updateChannelPolicy(char* data, int length, CCallback callback); -extern void forwardingHistory(char* data, int length, CCallback callback); -extern void exportChannelBackup(char* data, int length, CCallback callback); -extern void exportAllChannelBackups(char* data, int length, CCallback callback); -extern void verifyChanBackup(char* data, int length, CCallback callback); -extern void restoreChannelBackups(char* data, int length, CCallback callback); -extern void subscribeChannelBackups(char* data, int length, CRecvStream rStream); -extern void bakeMacaroon(char* data, int length, CCallback callback); -extern void listMacaroonIDs(char* data, int length, CCallback callback); -extern void deleteMacaroonID(char* data, int length, CCallback callback); -extern void listPermissions(char* data, int length, CCallback callback); -extern void checkMacaroonPermissions(char* data, int length, CCallback callback); -extern uintptr_t registerRPCMiddleware(CRecvStream rStream); -extern void sendCustomMessage(char* data, int length, CCallback callback); -extern void subscribeCustomMessages(char* data, int length, CRecvStream rStream); -extern void listAliases(char* data, int length, CCallback callback); -extern void lookupHtlcResolution(char* data, int length, CCallback callback); -extern void neutrinoKitStatus(char* data, int length, CCallback callback); -extern void neutrinoKitAddPeer(char* data, int length, CCallback callback); -extern void neutrinoKitDisconnectPeer(char* data, int length, CCallback callback); -extern void neutrinoKitIsBanned(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHeader(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlock(char* data, int length, CCallback callback); -extern void neutrinoKitGetCFilter(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHash(char* data, int length, CCallback callback); -extern void peersUpdateNodeAnnouncement(char* data, int length, CCallback callback); -extern void routerSendPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPayments(char* data, int length, CRecvStream rStream); -extern void routerEstimateRouteFee(char* data, int length, CCallback callback); -extern void routerSendToRoute(char* data, int length, CCallback callback); -extern void routerSendToRouteV2(char* data, int length, CCallback callback); -extern void routerResetMissionControl(char* data, int length, CCallback callback); -extern void routerQueryMissionControl(char* data, int length, CCallback callback); -extern void routerXImportMissionControl(char* data, int length, CCallback callback); -extern void routerGetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerSetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerQueryProbability(char* data, int length, CCallback callback); -extern void routerBuildRoute(char* data, int length, CCallback callback); -extern void routerSubscribeHtlcEvents(char* data, int length, CRecvStream rStream); -extern void routerSendPayment(char* data, int length, CRecvStream rStream); -extern void routerTrackPayment(char* data, int length, CRecvStream rStream); -extern uintptr_t routerHtlcInterceptor(CRecvStream rStream); -extern void routerUpdateChanStatus(char* data, int length, CCallback callback); -extern void signerSignOutputRaw(char* data, int length, CCallback callback); -extern void signerComputeInputScript(char* data, int length, CCallback callback); -extern void signerSignMessage(char* data, int length, CCallback callback); -extern void signerVerifyMessage(char* data, int length, CCallback callback); -extern void signerDeriveSharedKey(char* data, int length, CCallback callback); -extern void signerMuSig2CombineKeys(char* data, int length, CCallback callback); -extern void signerMuSig2CreateSession(char* data, int length, CCallback callback); -extern void signerMuSig2RegisterNonces(char* data, int length, CCallback callback); -extern void signerMuSig2Sign(char* data, int length, CCallback callback); -extern void signerMuSig2CombineSig(char* data, int length, CCallback callback); -extern void signerMuSig2Cleanup(char* data, int length, CCallback callback); -extern void gossipSync(char* serviceUrl, char* cacheDir, char* dataDir, char* networkType, CCallback callback); -extern void cancelGossipSync(); -extern void subscribeState(char* data, int length, CRecvStream rStream); -extern void getState(char* data, int length, CCallback callback); -extern void versionerGetVersion(char* data, int length, CCallback callback); -extern void walletKitListUnspent(char* data, int length, CCallback callback); -extern void walletKitLeaseOutput(char* data, int length, CCallback callback); -extern void walletKitReleaseOutput(char* data, int length, CCallback callback); -extern void walletKitListLeases(char* data, int length, CCallback callback); -extern void walletKitDeriveNextKey(char* data, int length, CCallback callback); -extern void walletKitDeriveKey(char* data, int length, CCallback callback); -extern void walletKitNextAddr(char* data, int length, CCallback callback); -extern void walletKitGetTransaction(char* data, int length, CCallback callback); -extern void walletKitListAccounts(char* data, int length, CCallback callback); -extern void walletKitRequiredReserve(char* data, int length, CCallback callback); -extern void walletKitListAddresses(char* data, int length, CCallback callback); -extern void walletKitSignMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitVerifyMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitImportAccount(char* data, int length, CCallback callback); -extern void walletKitImportPublicKey(char* data, int length, CCallback callback); -extern void walletKitImportTapscript(char* data, int length, CCallback callback); -extern void walletKitPublishTransaction(char* data, int length, CCallback callback); -extern void walletKitRemoveTransaction(char* data, int length, CCallback callback); -extern void walletKitSendOutputs(char* data, int length, CCallback callback); -extern void walletKitEstimateFee(char* data, int length, CCallback callback); -extern void walletKitPendingSweeps(char* data, int length, CCallback callback); -extern void walletKitBumpFee(char* data, int length, CCallback callback); -extern void walletKitListSweeps(char* data, int length, CCallback callback); -extern void walletKitLabelTransaction(char* data, int length, CCallback callback); -extern void walletKitFundPsbt(char* data, int length, CCallback callback); -extern void walletKitSignPsbt(char* data, int length, CCallback callback); -extern void walletKitFinalizePsbt(char* data, int length, CCallback callback); -extern void genSeed(char* data, int length, CCallback callback); -extern void initWallet(char* data, int length, CCallback callback); -extern void unlockWallet(char* data, int length, CCallback callback); -extern void changePassword(char* data, int length, CCallback callback); -extern void watchtowerGetInfo(char* data, int length, CCallback callback); -extern void watchtowerClientAddTower(char* data, int length, CCallback callback); -extern void watchtowerClientRemoveTower(char* data, int length, CCallback callback); -extern void watchtowerClientDeactivateTower(char* data, int length, CCallback callback); -extern void watchtowerClientTerminateSession(char* data, int length, CCallback callback); -extern void watchtowerClientListTowers(char* data, int length, CCallback callback); -extern void watchtowerClientGetTowerInfo(char* data, int length, CCallback callback); -extern void watchtowerClientStats(char* data, int length, CCallback callback); -extern void watchtowerClientPolicy(char* data, int length, CCallback callback); - -#ifdef __cplusplus -} -#endif diff --git a/speedloader-turbomodule/liblnd/x86/liblnd.h b/speedloader-turbomodule/liblnd/x86/liblnd.h deleted file mode 100644 index 9ee347300..000000000 --- a/speedloader-turbomodule/liblnd/x86/liblnd.h +++ /dev/null @@ -1,770 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package github.com/lightningnetwork/lnd/mobile */ - - -#line 1 "cgo-builtin-export-prolog" - -#include - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 20 "autopilot_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 4 "cgo_utils_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -static inline void bridgeResponseFunc(ResponseFunc f, void* context, const char* data, int length) { - if (f) f(context, data, length); -} - -static inline void bridgeErrorFunc(ErrorFunc f, void* context, const char* error) { - if (f) f(context, error); -} - -// Callback -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -// RecvStream -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -// SendStream -typedef void (*SendFunc)(uintptr_t streamPtr, const char* data, int length); -typedef void (*StopFunc)(uintptr_t streamPtr); - -typedef struct CSendStream { - SendFunc send; - StopFunc stop; - uintptr_t streamPtr; -} CSendStream; - -static inline CSendStream* allocCSendStream() { - return (CSendStream*)malloc(sizeof(CSendStream)); -} - -static inline void freeCSendStream(CSendStream* stream) { - if (stream != NULL) { - free(stream); - } -} - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainnotifier_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 6 "cshared.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "invoices_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "lightning_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "neutrinokit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "peers_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "router_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "signer_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 3 "speedloader_cgo.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "state_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "versioner_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 21 "walletkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "walletunlocker_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtower_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtowerclient_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt32 GoInt; -typedef GoUint32 GoUint; -typedef size_t GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -#ifdef _MSC_VER -#include -typedef _Fcomplex GoComplex64; -typedef _Dcomplex GoComplex128; -#else -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; -#endif - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_32_bit_pointer_matching_GoInt[sizeof(void*)==32/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern void autopilotStatus(char* data, int length, CCallback callback); -extern void autopilotModifyStatus(char* data, int length, CCallback callback); -extern void autopilotQueryScores(char* data, int length, CCallback callback); -extern void autopilotSetScores(char* data, int length, CCallback callback); -extern int SendStreamC(uintptr_t streamPtr, char* data, int length); -extern int StopStreamC(uintptr_t streamPtr); -extern void chainKitGetBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHeader(char* data, int length, CCallback callback); -extern void chainKitGetBestBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHash(char* data, int length, CCallback callback); -extern void chainNotifierRegisterConfirmationsNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterSpendNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterBlockEpochNtfn(char* data, int length, CRecvStream rStream); -extern void start(char* extraArgs, CCallback callback); -extern GoInt32 getStatus(); -extern void invoicesSubscribeSingleInvoice(char* data, int length, CRecvStream rStream); -extern void invoicesCancelInvoice(char* data, int length, CCallback callback); -extern void invoicesAddHoldInvoice(char* data, int length, CCallback callback); -extern void invoicesSettleInvoice(char* data, int length, CCallback callback); -extern void invoicesLookupInvoiceV2(char* data, int length, CCallback callback); -extern void walletBalance(char* data, int length, CCallback callback); -extern void channelBalance(char* data, int length, CCallback callback); -extern void getTransactions(char* data, int length, CCallback callback); -extern void estimateFee(char* data, int length, CCallback callback); -extern void sendCoins(char* data, int length, CCallback callback); -extern void listUnspent(char* data, int length, CCallback callback); -extern void subscribeTransactions(char* data, int length, CRecvStream rStream); -extern void sendMany(char* data, int length, CCallback callback); -extern void newAddress(char* data, int length, CCallback callback); -extern void signMessage(char* data, int length, CCallback callback); -extern void verifyMessage(char* data, int length, CCallback callback); -extern void connectPeer(char* data, int length, CCallback callback); -extern void disconnectPeer(char* data, int length, CCallback callback); -extern void listPeers(char* data, int length, CCallback callback); -extern void subscribePeerEvents(char* data, int length, CRecvStream rStream); -extern void getInfo(char* data, int length, CCallback callback); -extern void getDebugInfo(char* data, int length, CCallback callback); -extern void getRecoveryInfo(char* data, int length, CCallback callback); -extern void pendingChannels(char* data, int length, CCallback callback); -extern void listChannels(char* data, int length, CCallback callback); -extern void subscribeChannelEvents(char* data, int length, CRecvStream rStream); -extern void closedChannels(char* data, int length, CCallback callback); -extern void openChannelSync(char* data, int length, CCallback callback); -extern void openChannel(char* data, int length, CRecvStream rStream); -extern void batchOpenChannel(char* data, int length, CCallback callback); -extern void fundingStateStep(char* data, int length, CCallback callback); -extern uintptr_t channelAcceptor(CRecvStream rStream); -extern void closeChannel(char* data, int length, CRecvStream rStream); -extern void abandonChannel(char* data, int length, CCallback callback); -extern uintptr_t sendPayment(CRecvStream rStream); -extern void sendPaymentSync(char* data, int length, CCallback callback); -extern uintptr_t sendToRoute(CRecvStream rStream); -extern void sendToRouteSync(char* data, int length, CCallback callback); -extern void addInvoice(char* data, int length, CCallback callback); -extern void listInvoices(char* data, int length, CCallback callback); -extern void lookupInvoice(char* data, int length, CCallback callback); -extern void subscribeInvoices(char* data, int length, CRecvStream rStream); -extern void decodePayReq(char* data, int length, CCallback callback); -extern void listPayments(char* data, int length, CCallback callback); -extern void deletePayment(char* data, int length, CCallback callback); -extern void deleteAllPayments(char* data, int length, CCallback callback); -extern void describeGraph(char* data, int length, CCallback callback); -extern void getNodeMetrics(char* data, int length, CCallback callback); -extern void getChanInfo(char* data, int length, CCallback callback); -extern void getNodeInfo(char* data, int length, CCallback callback); -extern void queryRoutes(char* data, int length, CCallback callback); -extern void getNetworkInfo(char* data, int length, CCallback callback); -extern void stopDaemon(char* data, int length, CCallback callback); -extern void subscribeChannelGraph(char* data, int length, CRecvStream rStream); -extern void debugLevel(char* data, int length, CCallback callback); -extern void feeReport(char* data, int length, CCallback callback); -extern void updateChannelPolicy(char* data, int length, CCallback callback); -extern void forwardingHistory(char* data, int length, CCallback callback); -extern void exportChannelBackup(char* data, int length, CCallback callback); -extern void exportAllChannelBackups(char* data, int length, CCallback callback); -extern void verifyChanBackup(char* data, int length, CCallback callback); -extern void restoreChannelBackups(char* data, int length, CCallback callback); -extern void subscribeChannelBackups(char* data, int length, CRecvStream rStream); -extern void bakeMacaroon(char* data, int length, CCallback callback); -extern void listMacaroonIDs(char* data, int length, CCallback callback); -extern void deleteMacaroonID(char* data, int length, CCallback callback); -extern void listPermissions(char* data, int length, CCallback callback); -extern void checkMacaroonPermissions(char* data, int length, CCallback callback); -extern uintptr_t registerRPCMiddleware(CRecvStream rStream); -extern void sendCustomMessage(char* data, int length, CCallback callback); -extern void subscribeCustomMessages(char* data, int length, CRecvStream rStream); -extern void listAliases(char* data, int length, CCallback callback); -extern void lookupHtlcResolution(char* data, int length, CCallback callback); -extern void neutrinoKitStatus(char* data, int length, CCallback callback); -extern void neutrinoKitAddPeer(char* data, int length, CCallback callback); -extern void neutrinoKitDisconnectPeer(char* data, int length, CCallback callback); -extern void neutrinoKitIsBanned(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHeader(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlock(char* data, int length, CCallback callback); -extern void neutrinoKitGetCFilter(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHash(char* data, int length, CCallback callback); -extern void peersUpdateNodeAnnouncement(char* data, int length, CCallback callback); -extern void routerSendPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPayments(char* data, int length, CRecvStream rStream); -extern void routerEstimateRouteFee(char* data, int length, CCallback callback); -extern void routerSendToRoute(char* data, int length, CCallback callback); -extern void routerSendToRouteV2(char* data, int length, CCallback callback); -extern void routerResetMissionControl(char* data, int length, CCallback callback); -extern void routerQueryMissionControl(char* data, int length, CCallback callback); -extern void routerXImportMissionControl(char* data, int length, CCallback callback); -extern void routerGetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerSetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerQueryProbability(char* data, int length, CCallback callback); -extern void routerBuildRoute(char* data, int length, CCallback callback); -extern void routerSubscribeHtlcEvents(char* data, int length, CRecvStream rStream); -extern void routerSendPayment(char* data, int length, CRecvStream rStream); -extern void routerTrackPayment(char* data, int length, CRecvStream rStream); -extern uintptr_t routerHtlcInterceptor(CRecvStream rStream); -extern void routerUpdateChanStatus(char* data, int length, CCallback callback); -extern void signerSignOutputRaw(char* data, int length, CCallback callback); -extern void signerComputeInputScript(char* data, int length, CCallback callback); -extern void signerSignMessage(char* data, int length, CCallback callback); -extern void signerVerifyMessage(char* data, int length, CCallback callback); -extern void signerDeriveSharedKey(char* data, int length, CCallback callback); -extern void signerMuSig2CombineKeys(char* data, int length, CCallback callback); -extern void signerMuSig2CreateSession(char* data, int length, CCallback callback); -extern void signerMuSig2RegisterNonces(char* data, int length, CCallback callback); -extern void signerMuSig2Sign(char* data, int length, CCallback callback); -extern void signerMuSig2CombineSig(char* data, int length, CCallback callback); -extern void signerMuSig2Cleanup(char* data, int length, CCallback callback); -extern void gossipSync(char* serviceUrl, char* cacheDir, char* dataDir, char* networkType, CCallback callback); -extern void cancelGossipSync(); -extern void subscribeState(char* data, int length, CRecvStream rStream); -extern void getState(char* data, int length, CCallback callback); -extern void versionerGetVersion(char* data, int length, CCallback callback); -extern void walletKitListUnspent(char* data, int length, CCallback callback); -extern void walletKitLeaseOutput(char* data, int length, CCallback callback); -extern void walletKitReleaseOutput(char* data, int length, CCallback callback); -extern void walletKitListLeases(char* data, int length, CCallback callback); -extern void walletKitDeriveNextKey(char* data, int length, CCallback callback); -extern void walletKitDeriveKey(char* data, int length, CCallback callback); -extern void walletKitNextAddr(char* data, int length, CCallback callback); -extern void walletKitGetTransaction(char* data, int length, CCallback callback); -extern void walletKitListAccounts(char* data, int length, CCallback callback); -extern void walletKitRequiredReserve(char* data, int length, CCallback callback); -extern void walletKitListAddresses(char* data, int length, CCallback callback); -extern void walletKitSignMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitVerifyMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitImportAccount(char* data, int length, CCallback callback); -extern void walletKitImportPublicKey(char* data, int length, CCallback callback); -extern void walletKitImportTapscript(char* data, int length, CCallback callback); -extern void walletKitPublishTransaction(char* data, int length, CCallback callback); -extern void walletKitRemoveTransaction(char* data, int length, CCallback callback); -extern void walletKitSendOutputs(char* data, int length, CCallback callback); -extern void walletKitEstimateFee(char* data, int length, CCallback callback); -extern void walletKitPendingSweeps(char* data, int length, CCallback callback); -extern void walletKitBumpFee(char* data, int length, CCallback callback); -extern void walletKitListSweeps(char* data, int length, CCallback callback); -extern void walletKitLabelTransaction(char* data, int length, CCallback callback); -extern void walletKitFundPsbt(char* data, int length, CCallback callback); -extern void walletKitSignPsbt(char* data, int length, CCallback callback); -extern void walletKitFinalizePsbt(char* data, int length, CCallback callback); -extern void genSeed(char* data, int length, CCallback callback); -extern void initWallet(char* data, int length, CCallback callback); -extern void unlockWallet(char* data, int length, CCallback callback); -extern void changePassword(char* data, int length, CCallback callback); -extern void watchtowerGetInfo(char* data, int length, CCallback callback); -extern void watchtowerClientAddTower(char* data, int length, CCallback callback); -extern void watchtowerClientRemoveTower(char* data, int length, CCallback callback); -extern void watchtowerClientDeactivateTower(char* data, int length, CCallback callback); -extern void watchtowerClientTerminateSession(char* data, int length, CCallback callback); -extern void watchtowerClientListTowers(char* data, int length, CCallback callback); -extern void watchtowerClientGetTowerInfo(char* data, int length, CCallback callback); -extern void watchtowerClientStats(char* data, int length, CCallback callback); -extern void watchtowerClientPolicy(char* data, int length, CCallback callback); - -#ifdef __cplusplus -} -#endif diff --git a/speedloader-turbomodule/liblnd/x86_64/liblnd.h b/speedloader-turbomodule/liblnd/x86_64/liblnd.h deleted file mode 100644 index cd7320151..000000000 --- a/speedloader-turbomodule/liblnd/x86_64/liblnd.h +++ /dev/null @@ -1,770 +0,0 @@ -/* Code generated by cmd/cgo; DO NOT EDIT. */ - -/* package github.com/lightningnetwork/lnd/mobile */ - - -#line 1 "cgo-builtin-export-prolog" - -#include - -#ifndef GO_CGO_EXPORT_PROLOGUE_H -#define GO_CGO_EXPORT_PROLOGUE_H - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef struct { const char *p; ptrdiff_t n; } _GoString_; -#endif - -#endif - -/* Start of preamble from import "C" comments. */ - - -#line 20 "autopilot_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 4 "cgo_utils_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -static inline void bridgeResponseFunc(ResponseFunc f, void* context, const char* data, int length) { - if (f) f(context, data, length); -} - -static inline void bridgeErrorFunc(ErrorFunc f, void* context, const char* error) { - if (f) f(context, error); -} - -// Callback -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -// RecvStream -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -// SendStream -typedef void (*SendFunc)(uintptr_t streamPtr, const char* data, int length); -typedef void (*StopFunc)(uintptr_t streamPtr); - -typedef struct CSendStream { - SendFunc send; - StopFunc stop; - uintptr_t streamPtr; -} CSendStream; - -static inline CSendStream* allocCSendStream() { - return (CSendStream*)malloc(sizeof(CSendStream)); -} - -static inline void freeCSendStream(CSendStream* stream) { - if (stream != NULL) { - free(stream); - } -} - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "chainnotifier_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 6 "cshared.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "invoices_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "lightning_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "neutrinokit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "peers_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "router_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "signer_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 3 "speedloader_cgo.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "state_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "versioner_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 21 "walletkit_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 17 "walletunlocker_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtower_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - -#line 20 "watchtowerclient_api_generated.go" - -#ifndef CALLBACK_DEFS_H -#define CALLBACK_DEFS_H - -#include - -typedef void (*ResponseFunc)(void* context, const char* data, int length); -typedef void (*ErrorFunc)(void* context, const char* error); - -typedef struct CCallback { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CCallback; - -typedef struct CRecvStream { - ResponseFunc onResponse; - ErrorFunc onError; - void* responseContext; - void* errorContext; -} CRecvStream; - -#endif // CALLBACK_DEFS_H - -#line 1 "cgo-generated-wrapper" - - -/* End of preamble from import "C" comments. */ - - -/* Start of boilerplate cgo prologue. */ -#line 1 "cgo-gcc-export-header-prolog" - -#ifndef GO_CGO_PROLOGUE_H -#define GO_CGO_PROLOGUE_H - -typedef signed char GoInt8; -typedef unsigned char GoUint8; -typedef short GoInt16; -typedef unsigned short GoUint16; -typedef int GoInt32; -typedef unsigned int GoUint32; -typedef long long GoInt64; -typedef unsigned long long GoUint64; -typedef GoInt64 GoInt; -typedef GoUint64 GoUint; -typedef size_t GoUintptr; -typedef float GoFloat32; -typedef double GoFloat64; -#ifdef _MSC_VER -#include -typedef _Fcomplex GoComplex64; -typedef _Dcomplex GoComplex128; -#else -typedef float _Complex GoComplex64; -typedef double _Complex GoComplex128; -#endif - -/* - static assertion to make sure the file is being used on architecture - at least with matching size of GoInt. -*/ -typedef char _check_for_64_bit_pointer_matching_GoInt[sizeof(void*)==64/8 ? 1:-1]; - -#ifndef GO_CGO_GOSTRING_TYPEDEF -typedef _GoString_ GoString; -#endif -typedef void *GoMap; -typedef void *GoChan; -typedef struct { void *t; void *v; } GoInterface; -typedef struct { void *data; GoInt len; GoInt cap; } GoSlice; - -#endif - -/* End of boilerplate cgo prologue. */ - -#ifdef __cplusplus -extern "C" { -#endif - -extern void autopilotStatus(char* data, int length, CCallback callback); -extern void autopilotModifyStatus(char* data, int length, CCallback callback); -extern void autopilotQueryScores(char* data, int length, CCallback callback); -extern void autopilotSetScores(char* data, int length, CCallback callback); -extern int SendStreamC(uintptr_t streamPtr, char* data, int length); -extern int StopStreamC(uintptr_t streamPtr); -extern void chainKitGetBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHeader(char* data, int length, CCallback callback); -extern void chainKitGetBestBlock(char* data, int length, CCallback callback); -extern void chainKitGetBlockHash(char* data, int length, CCallback callback); -extern void chainNotifierRegisterConfirmationsNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterSpendNtfn(char* data, int length, CRecvStream rStream); -extern void chainNotifierRegisterBlockEpochNtfn(char* data, int length, CRecvStream rStream); -extern void start(char* extraArgs, CCallback callback); -extern GoInt32 getStatus(); -extern void invoicesSubscribeSingleInvoice(char* data, int length, CRecvStream rStream); -extern void invoicesCancelInvoice(char* data, int length, CCallback callback); -extern void invoicesAddHoldInvoice(char* data, int length, CCallback callback); -extern void invoicesSettleInvoice(char* data, int length, CCallback callback); -extern void invoicesLookupInvoiceV2(char* data, int length, CCallback callback); -extern void walletBalance(char* data, int length, CCallback callback); -extern void channelBalance(char* data, int length, CCallback callback); -extern void getTransactions(char* data, int length, CCallback callback); -extern void estimateFee(char* data, int length, CCallback callback); -extern void sendCoins(char* data, int length, CCallback callback); -extern void listUnspent(char* data, int length, CCallback callback); -extern void subscribeTransactions(char* data, int length, CRecvStream rStream); -extern void sendMany(char* data, int length, CCallback callback); -extern void newAddress(char* data, int length, CCallback callback); -extern void signMessage(char* data, int length, CCallback callback); -extern void verifyMessage(char* data, int length, CCallback callback); -extern void connectPeer(char* data, int length, CCallback callback); -extern void disconnectPeer(char* data, int length, CCallback callback); -extern void listPeers(char* data, int length, CCallback callback); -extern void subscribePeerEvents(char* data, int length, CRecvStream rStream); -extern void getInfo(char* data, int length, CCallback callback); -extern void getDebugInfo(char* data, int length, CCallback callback); -extern void getRecoveryInfo(char* data, int length, CCallback callback); -extern void pendingChannels(char* data, int length, CCallback callback); -extern void listChannels(char* data, int length, CCallback callback); -extern void subscribeChannelEvents(char* data, int length, CRecvStream rStream); -extern void closedChannels(char* data, int length, CCallback callback); -extern void openChannelSync(char* data, int length, CCallback callback); -extern void openChannel(char* data, int length, CRecvStream rStream); -extern void batchOpenChannel(char* data, int length, CCallback callback); -extern void fundingStateStep(char* data, int length, CCallback callback); -extern uintptr_t channelAcceptor(CRecvStream rStream); -extern void closeChannel(char* data, int length, CRecvStream rStream); -extern void abandonChannel(char* data, int length, CCallback callback); -extern uintptr_t sendPayment(CRecvStream rStream); -extern void sendPaymentSync(char* data, int length, CCallback callback); -extern uintptr_t sendToRoute(CRecvStream rStream); -extern void sendToRouteSync(char* data, int length, CCallback callback); -extern void addInvoice(char* data, int length, CCallback callback); -extern void listInvoices(char* data, int length, CCallback callback); -extern void lookupInvoice(char* data, int length, CCallback callback); -extern void subscribeInvoices(char* data, int length, CRecvStream rStream); -extern void decodePayReq(char* data, int length, CCallback callback); -extern void listPayments(char* data, int length, CCallback callback); -extern void deletePayment(char* data, int length, CCallback callback); -extern void deleteAllPayments(char* data, int length, CCallback callback); -extern void describeGraph(char* data, int length, CCallback callback); -extern void getNodeMetrics(char* data, int length, CCallback callback); -extern void getChanInfo(char* data, int length, CCallback callback); -extern void getNodeInfo(char* data, int length, CCallback callback); -extern void queryRoutes(char* data, int length, CCallback callback); -extern void getNetworkInfo(char* data, int length, CCallback callback); -extern void stopDaemon(char* data, int length, CCallback callback); -extern void subscribeChannelGraph(char* data, int length, CRecvStream rStream); -extern void debugLevel(char* data, int length, CCallback callback); -extern void feeReport(char* data, int length, CCallback callback); -extern void updateChannelPolicy(char* data, int length, CCallback callback); -extern void forwardingHistory(char* data, int length, CCallback callback); -extern void exportChannelBackup(char* data, int length, CCallback callback); -extern void exportAllChannelBackups(char* data, int length, CCallback callback); -extern void verifyChanBackup(char* data, int length, CCallback callback); -extern void restoreChannelBackups(char* data, int length, CCallback callback); -extern void subscribeChannelBackups(char* data, int length, CRecvStream rStream); -extern void bakeMacaroon(char* data, int length, CCallback callback); -extern void listMacaroonIDs(char* data, int length, CCallback callback); -extern void deleteMacaroonID(char* data, int length, CCallback callback); -extern void listPermissions(char* data, int length, CCallback callback); -extern void checkMacaroonPermissions(char* data, int length, CCallback callback); -extern uintptr_t registerRPCMiddleware(CRecvStream rStream); -extern void sendCustomMessage(char* data, int length, CCallback callback); -extern void subscribeCustomMessages(char* data, int length, CRecvStream rStream); -extern void listAliases(char* data, int length, CCallback callback); -extern void lookupHtlcResolution(char* data, int length, CCallback callback); -extern void neutrinoKitStatus(char* data, int length, CCallback callback); -extern void neutrinoKitAddPeer(char* data, int length, CCallback callback); -extern void neutrinoKitDisconnectPeer(char* data, int length, CCallback callback); -extern void neutrinoKitIsBanned(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHeader(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlock(char* data, int length, CCallback callback); -extern void neutrinoKitGetCFilter(char* data, int length, CCallback callback); -extern void neutrinoKitGetBlockHash(char* data, int length, CCallback callback); -extern void peersUpdateNodeAnnouncement(char* data, int length, CCallback callback); -extern void routerSendPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPaymentV2(char* data, int length, CRecvStream rStream); -extern void routerTrackPayments(char* data, int length, CRecvStream rStream); -extern void routerEstimateRouteFee(char* data, int length, CCallback callback); -extern void routerSendToRoute(char* data, int length, CCallback callback); -extern void routerSendToRouteV2(char* data, int length, CCallback callback); -extern void routerResetMissionControl(char* data, int length, CCallback callback); -extern void routerQueryMissionControl(char* data, int length, CCallback callback); -extern void routerXImportMissionControl(char* data, int length, CCallback callback); -extern void routerGetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerSetMissionControlConfig(char* data, int length, CCallback callback); -extern void routerQueryProbability(char* data, int length, CCallback callback); -extern void routerBuildRoute(char* data, int length, CCallback callback); -extern void routerSubscribeHtlcEvents(char* data, int length, CRecvStream rStream); -extern void routerSendPayment(char* data, int length, CRecvStream rStream); -extern void routerTrackPayment(char* data, int length, CRecvStream rStream); -extern uintptr_t routerHtlcInterceptor(CRecvStream rStream); -extern void routerUpdateChanStatus(char* data, int length, CCallback callback); -extern void signerSignOutputRaw(char* data, int length, CCallback callback); -extern void signerComputeInputScript(char* data, int length, CCallback callback); -extern void signerSignMessage(char* data, int length, CCallback callback); -extern void signerVerifyMessage(char* data, int length, CCallback callback); -extern void signerDeriveSharedKey(char* data, int length, CCallback callback); -extern void signerMuSig2CombineKeys(char* data, int length, CCallback callback); -extern void signerMuSig2CreateSession(char* data, int length, CCallback callback); -extern void signerMuSig2RegisterNonces(char* data, int length, CCallback callback); -extern void signerMuSig2Sign(char* data, int length, CCallback callback); -extern void signerMuSig2CombineSig(char* data, int length, CCallback callback); -extern void signerMuSig2Cleanup(char* data, int length, CCallback callback); -extern void gossipSync(char* serviceUrl, char* cacheDir, char* dataDir, char* networkType, CCallback callback); -extern void cancelGossipSync(); -extern void subscribeState(char* data, int length, CRecvStream rStream); -extern void getState(char* data, int length, CCallback callback); -extern void versionerGetVersion(char* data, int length, CCallback callback); -extern void walletKitListUnspent(char* data, int length, CCallback callback); -extern void walletKitLeaseOutput(char* data, int length, CCallback callback); -extern void walletKitReleaseOutput(char* data, int length, CCallback callback); -extern void walletKitListLeases(char* data, int length, CCallback callback); -extern void walletKitDeriveNextKey(char* data, int length, CCallback callback); -extern void walletKitDeriveKey(char* data, int length, CCallback callback); -extern void walletKitNextAddr(char* data, int length, CCallback callback); -extern void walletKitGetTransaction(char* data, int length, CCallback callback); -extern void walletKitListAccounts(char* data, int length, CCallback callback); -extern void walletKitRequiredReserve(char* data, int length, CCallback callback); -extern void walletKitListAddresses(char* data, int length, CCallback callback); -extern void walletKitSignMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitVerifyMessageWithAddr(char* data, int length, CCallback callback); -extern void walletKitImportAccount(char* data, int length, CCallback callback); -extern void walletKitImportPublicKey(char* data, int length, CCallback callback); -extern void walletKitImportTapscript(char* data, int length, CCallback callback); -extern void walletKitPublishTransaction(char* data, int length, CCallback callback); -extern void walletKitRemoveTransaction(char* data, int length, CCallback callback); -extern void walletKitSendOutputs(char* data, int length, CCallback callback); -extern void walletKitEstimateFee(char* data, int length, CCallback callback); -extern void walletKitPendingSweeps(char* data, int length, CCallback callback); -extern void walletKitBumpFee(char* data, int length, CCallback callback); -extern void walletKitListSweeps(char* data, int length, CCallback callback); -extern void walletKitLabelTransaction(char* data, int length, CCallback callback); -extern void walletKitFundPsbt(char* data, int length, CCallback callback); -extern void walletKitSignPsbt(char* data, int length, CCallback callback); -extern void walletKitFinalizePsbt(char* data, int length, CCallback callback); -extern void genSeed(char* data, int length, CCallback callback); -extern void initWallet(char* data, int length, CCallback callback); -extern void unlockWallet(char* data, int length, CCallback callback); -extern void changePassword(char* data, int length, CCallback callback); -extern void watchtowerGetInfo(char* data, int length, CCallback callback); -extern void watchtowerClientAddTower(char* data, int length, CCallback callback); -extern void watchtowerClientRemoveTower(char* data, int length, CCallback callback); -extern void watchtowerClientDeactivateTower(char* data, int length, CCallback callback); -extern void watchtowerClientTerminateSession(char* data, int length, CCallback callback); -extern void watchtowerClientListTowers(char* data, int length, CCallback callback); -extern void watchtowerClientGetTowerInfo(char* data, int length, CCallback callback); -extern void watchtowerClientStats(char* data, int length, CCallback callback); -extern void watchtowerClientPolicy(char* data, int length, CCallback callback); - -#ifdef __cplusplus -} -#endif diff --git a/src/lndmobile/LndMobile.d.ts b/src/lndmobile/LndMobile.d.ts index 7bb02a1ff..448a772d3 100644 --- a/src/lndmobile/LndMobile.d.ts +++ b/src/lndmobile/LndMobile.d.ts @@ -33,7 +33,6 @@ export interface ILndMobile { unbindLndMobileService(): Promise; // TODO(hsjoberg): function looks broken sendPongToLndMobileservice(): Promise<{ data: string }>; checkLndMobileServiceConnected(): Promise; - gossipSync(networkType: string): Promise<{ data: string }>; } export interface ILndMobileTools { diff --git a/src/lndmobile/index.ts b/src/lndmobile/index.ts index 574613760..eda839545 100644 --- a/src/lndmobile/index.ts +++ b/src/lndmobile/index.ts @@ -57,16 +57,6 @@ export const startLnd = async (torEnabled: boolean, args?: string): Promise<{ da return await LndMobile.startLnd(torEnabled, args); }; -/** - * @throws - */ -export const gossipSync = async ( - serviceUrl: string, - networkType: string, -): Promise<{ data: string }> => { - return await LndMobile.gossipSync(serviceUrl, networkType); -}; - export const checkICloudEnabled = async (): Promise => { return await LndMobileTools.checkICloudEnabled(); }; diff --git a/src/state/LndMobileInjection.ts b/src/state/LndMobileInjection.ts index 03495243a..0a29ca329 100644 --- a/src/state/LndMobileInjection.ts +++ b/src/state/LndMobileInjection.ts @@ -7,7 +7,6 @@ import { checkStatus, createIOSApplicationSupportAndLndDirectories, excludeLndICloudBackup, - gossipSync, initialize, startLnd, writeConfig, @@ -39,7 +38,6 @@ export interface ILndMobileInjections { decodeState: (data: string) => lnrpc.SubscribeStateResponse; checkStatus: () => Promise; startLnd: (torEnabled: boolean, args: string) => Promise; - gossipSync: (serviceUrl: string, networkType: string) => Promise<{ data: string }>; checkICloudEnabled: () => Promise; checkApplicationSupportExists: () => Promise; checkLndFolderExists: () => Promise; @@ -186,7 +184,6 @@ export default { generateSecureRandom, checkStatus, startLnd, - gossipSync, checkICloudEnabled, checkApplicationSupportExists, checkLndFolderExists, diff --git a/src/state/index.ts b/src/state/index.ts index 9a068e684..8a155c141 100644 --- a/src/state/index.ts +++ b/src/state/index.ts @@ -2,7 +2,7 @@ import * as base64 from "base64-js"; import { RnTor } from "react-native-nitro-tor"; import { Action, Thunk, action, thunk } from "easy-peasy"; -import { AlertButton, NativeModules, Platform } from "react-native"; +import { AlertButton, NativeModules } from "react-native"; import { DEFAULT_PATHFINDING_ALGORITHM, @@ -10,7 +10,7 @@ import { PLATFORM, TOR_SETTINGS, } from "../utils/constants"; -import { Chain, Debug, VersionCode } from "../utils/build"; +import { Chain, VersionCode } from "../utils/build"; import { IBlixtLsp, blixtLsp } from "./BlixtLsp"; import { IChannelModel, channel } from "./Channel"; import { @@ -71,11 +71,7 @@ import { import { getWalletPassword, setWalletPassword } from "../storage/keystore"; import { Alert } from "../utils/alert"; -import { - ELndMobileStatusCodes, - generateSecureRandomAsBase64, - writeConfig, -} from "../lndmobile/index"; +import { generateSecureRandomAsBase64, writeConfig } from "../lndmobile/index"; import { IStoreInjections } from "./store"; import { Database } from "react-native-turbo-sqlite"; import SetupBlixtDemo from "../utils/setup-demo"; @@ -94,8 +90,7 @@ import { } from "react-native-turbo-lnd"; import { WalletState } from "react-native-turbo-lnd/protos/lightning_pb"; -import Speedloader from "../turbomodules/NativeSpeedloader"; -import NativeLndmobileTools from "../turbomodules/NativeLndmobileTools"; +import NativeBlixtTools from "../turbomodules/NativeBlixtTools"; const log = logger("Store"); @@ -235,7 +230,7 @@ export const model: IStoreModel = { toast("Successfully imported channel.db"); } - const { initialize, checkStatus, startLnd, gossipSync } = injections.lndMobile.index; + const { initialize } = injections.lndMobile.index; const db = await actions.openDb(); const firstStartup = !(await getItemObjectAsyncStorage(StorageItem.app)); if (firstStartup) { @@ -385,12 +380,12 @@ export const model: IStoreModel = { (await getItemAsyncStorage(StorageItem.speedloaderServer)) ?? DEFAULT_SPEEDLOADER_SERVER; let gossipStatus: unknown = null; - let status = await NativeLndmobileTools.getStatus(); // await checkStatus(); + let status = await NativeBlixtTools.getStatus(); // await checkStatus(); log.i("status", [status]); if (status === 1) { log.i("status === 1, waiting for 9.6 seconds and check again"); await timeout(9600); - status = await NativeLndmobileTools.getStatus(); + status = await NativeBlixtTools.getStatus(); log.i("status", [status]); } @@ -419,19 +414,19 @@ export const model: IStoreModel = { log.e("Gossip files deletion failed", [error]); } } + try { - gossipStatus = await Speedloader.gossipSync( - speedloaderServer, - await NativeModules.LndMobileTools.getCacheDir(), - await NativeModules.LndMobileTools.getFilesDir(), - ); + gossipStatus = await NativeBlixtTools.gossipSync(speedloaderServer); debugShowStartupInfo && toast( "Gossip sync done " + (new Date().getTime() - start.getTime()) / 1000 + "s", 1000, ); } catch (e: any) { - if (e.message === "Gossip sync cancelled by user") { + if ( + typeof e.message === "string" && + e.message.includes("Gossip sync cancelled by user") + ) { log.i("Gossip sync cancelled by user"); } else { log.e("GossipSync exception!", [e]); @@ -577,7 +572,7 @@ export const model: IStoreModel = { cancelSpeedloader: thunk(async (actions) => { try { log.d("Cancelling speedloader gossipsync"); - await Speedloader.cancelGossipSync(); + await NativeBlixtTools.cancelGossipSync(); actions.setSpeedloaderLoading(false); actions.setSpeedloaderCancelVisible(false); } catch (e) { diff --git a/src/turbomodules/NativeLndmobileTools.ts b/src/turbomodules/NativeBlixtTools.ts similarity index 64% rename from src/turbomodules/NativeLndmobileTools.ts rename to src/turbomodules/NativeBlixtTools.ts index 3d5a43c1f..4c6809c36 100644 --- a/src/turbomodules/NativeLndmobileTools.ts +++ b/src/turbomodules/NativeBlixtTools.ts @@ -6,6 +6,8 @@ export interface Spec extends TurboModule { scheduleSyncWorker(): void; stopScheduleSyncWorker(): void; getStatus(): number; + gossipSync(serviceUrl: string): Promise; + cancelGossipSync(): void; } -export default TurboModuleRegistry.getEnforcing("LndMobileToolsTurbo"); +export default TurboModuleRegistry.getEnforcing("BlixtTools"); diff --git a/src/turbomodules/NativeSpeedloader.ts b/src/turbomodules/NativeSpeedloader.ts deleted file mode 100644 index e8c6c8e57..000000000 --- a/src/turbomodules/NativeSpeedloader.ts +++ /dev/null @@ -1,9 +0,0 @@ -import type { TurboModule } from "react-native"; -import { TurboModuleRegistry } from "react-native"; - -export interface Spec extends TurboModule { - gossipSync(serviceUrl: string, cacheDir: string, filesDir: string): Promise; - cancelGossipSync(): void; -} - -export default TurboModuleRegistry.getEnforcing("NativeSpeedloader"); diff --git a/src/windows/InitProcess/DEV_Commands.tsx b/src/windows/InitProcess/DEV_Commands.tsx index 8e57589b0..7da958f5d 100644 --- a/src/windows/InitProcess/DEV_Commands.tsx +++ b/src/windows/InitProcess/DEV_Commands.tsx @@ -67,9 +67,7 @@ import { import TurboSqlite from "react-native-turbo-sqlite"; -import LndMobileToolsTurbo from "../../turbomodules/NativeLndmobileTools"; - -import Speedloader from "../../turbomodules/NativeSpeedloader"; +import BlixtToolsTurbo from "../../turbomodules/NativeBlixtTools"; let iCloudStorage: any; console.log(PLATFORM); @@ -152,13 +150,10 @@ export default function DEV_Commands({ navigation, continueCallback }: IProps) { {/* * @@ -211,34 +206,34 @@ export default function DEV_Commands({ navigation, continueCallback }: IProps) { - {/* */} -