diff --git a/README.md b/README.md
index 5acdea5..fc2aa73 100644
--- a/README.md
+++ b/README.md
@@ -14,6 +14,8 @@ npm install @synonymdev/react-native-pubky
- [x] [parseAuthUrl](#parseAuthUrl): Method to decode an authUrl.
- [x] [publish](#publish): Functionality to publish content.
- [x] [resolve](#resolve): Functionality to resolve content.
+- [x] [publishHttps](#publishHttps): Publish HTTPS records.
+- [x] [resolveHttps](#resolveHttps): Resolve HTTPS records.
### Methods to be Implemented
- [ ] signIn: Sign-in to a homeserver.
- [ ] signUp: Sign-up to a homeserver and update Pkarr accordingly.
@@ -78,6 +80,36 @@ if (resolveRes.isErr()) {
console.log(resolveRes.value);
```
+### publishHttps
+```js
+import { publishHttps } from '@synonymdev/react-native-pubky';
+
+const publishHttpsRes = await publishHttps(
+ 'example.com', // Record Name
+ 'target.example.com', // Target
+ 'e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855' // Secret Key
+);
+if (publishHttpsRes.isErr()) {
+ console.log(publishHttpsRes.error.message);
+ return;
+}
+console.log(publishHttpsRes.value);
+```
+
+### resolveHttps
+```js
+import { resolveHttps } from '@synonymdev/react-native-pubky';
+
+const resolveHttpsRes = await resolveHttps(
+ 'z4e8s17cou9qmuwen8p1556jzhf1wktmzo6ijsfnri9c4hnrdfty' // Public key
+);
+if (resolveHttpsRes.isErr()) {
+ console.log(resolveHttpsRes.error.message);
+ return;
+}
+console.log(resolveHttpsRes.value);
+```
+
## Local Installation
1. Clone & npm install:
diff --git a/android/src/main/java/com/pubky/PubkyModule.kt b/android/src/main/java/com/pubky/PubkyModule.kt
index 05247d5..e872188 100644
--- a/android/src/main/java/com/pubky/PubkyModule.kt
+++ b/android/src/main/java/com/pubky/PubkyModule.kt
@@ -18,6 +18,8 @@ import uniffi.pubkymobile.signIn
import uniffi.pubkymobile.signOut
import uniffi.pubkymobile.put
import uniffi.pubkymobile.get
+import uniffi.pubkymobile.publishHttps
+import uniffi.pubkymobile.resolveHttps
class PubkyModule(reactContext: ReactApplicationContext) :
ReactContextBaseJavaModule(reactContext) {
@@ -191,6 +193,44 @@ class PubkyModule(reactContext: ReactApplicationContext) :
}
}
+ @ReactMethod
+ fun publishHttps(recordName: String, target: String, secretKey: String, promise: Promise) {
+ CoroutineScope(Dispatchers.IO).launch {
+ try {
+ val result = publishHttps(recordName, target, secretKey)
+ val array = Arguments.createArray().apply {
+ result.forEach { pushString(it) }
+ }
+ withContext(Dispatchers.Main) {
+ promise.resolve(array)
+ }
+ } catch (e: Exception) {
+ withContext(Dispatchers.Main) {
+ promise.reject("Error", e.message)
+ }
+ }
+ }
+ }
+
+ @ReactMethod
+ fun resolveHttps(publicKey: String, promise: Promise) {
+ CoroutineScope(Dispatchers.IO).launch {
+ try {
+ val result = resolveHttps(publicKey)
+ val array = Arguments.createArray().apply {
+ result.forEach { pushString(it) }
+ }
+ withContext(Dispatchers.Main) {
+ promise.resolve(array)
+ }
+ } catch (e: Exception) {
+ withContext(Dispatchers.Main) {
+ promise.reject("Error", e.message)
+ }
+ }
+ }
+ }
+
companion object {
const val NAME = "Pubky"
}
diff --git a/android/src/main/java/uniffi/pubkymobile/pubkymobile.kt b/android/src/main/java/uniffi/pubkymobile/pubkymobile.kt
index 5cc31ef..b5382fc 100644
--- a/android/src/main/java/uniffi/pubkymobile/pubkymobile.kt
+++ b/android/src/main/java/uniffi/pubkymobile/pubkymobile.kt
@@ -393,10 +393,14 @@ internal interface _UniFFILib : Library {
): RustBuffer.ByValue
fun uniffi_pubkymobile_fn_func_publish(`recordName`: RustBuffer.ByValue,`recordContent`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
+ fun uniffi_pubkymobile_fn_func_publish_https(`recordName`: RustBuffer.ByValue,`target`: RustBuffer.ByValue,`secretKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
fun uniffi_pubkymobile_fn_func_put(`url`: RustBuffer.ByValue,`content`: RustBuffer.ByValue,
): Pointer
fun uniffi_pubkymobile_fn_func_resolve(`publicKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
): RustBuffer.ByValue
+ fun uniffi_pubkymobile_fn_func_resolve_https(`publicKey`: RustBuffer.ByValue,_uniffi_out_err: RustCallStatus,
+ ): RustBuffer.ByValue
fun uniffi_pubkymobile_fn_func_sign_in(`secretKey`: RustBuffer.ByValue,
): Pointer
fun uniffi_pubkymobile_fn_func_sign_out(`secretKey`: RustBuffer.ByValue,
@@ -525,10 +529,14 @@ internal interface _UniFFILib : Library {
): Short
fun uniffi_pubkymobile_checksum_func_publish(
): Short
+ fun uniffi_pubkymobile_checksum_func_publish_https(
+ ): Short
fun uniffi_pubkymobile_checksum_func_put(
): Short
fun uniffi_pubkymobile_checksum_func_resolve(
): Short
+ fun uniffi_pubkymobile_checksum_func_resolve_https(
+ ): Short
fun uniffi_pubkymobile_checksum_func_sign_in(
): Short
fun uniffi_pubkymobile_checksum_func_sign_out(
@@ -564,12 +572,18 @@ private fun uniffiCheckApiChecksums(lib: _UniFFILib) {
if (lib.uniffi_pubkymobile_checksum_func_publish() != 20156.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
+ if (lib.uniffi_pubkymobile_checksum_func_publish_https() != 14705.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
if (lib.uniffi_pubkymobile_checksum_func_put() != 47594.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
if (lib.uniffi_pubkymobile_checksum_func_resolve() != 18303.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
+ if (lib.uniffi_pubkymobile_checksum_func_resolve_https() != 34593.toShort()) {
+ throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
+ }
if (lib.uniffi_pubkymobile_checksum_func_sign_in() != 53969.toShort()) {
throw RuntimeException("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
}
@@ -751,6 +765,14 @@ fun `publish`(`recordName`: String, `recordContent`: String, `secretKey`: String
}
+fun `publishHttps`(`recordName`: String, `target`: String, `secretKey`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_publish_https(FfiConverterString.lower(`recordName`),FfiConverterString.lower(`target`),FfiConverterString.lower(`secretKey`),_status)
+})
+}
+
+
@Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
suspend fun `put`(`url`: String, `content`: String) : List {
return uniffiRustCallAsync(
@@ -773,6 +795,14 @@ fun `resolve`(`publicKey`: String): List {
}
+fun `resolveHttps`(`publicKey`: String): List {
+ return FfiConverterSequenceString.lift(
+ rustCall() { _status ->
+ _UniFFILib.INSTANCE.uniffi_pubkymobile_fn_func_resolve_https(FfiConverterString.lower(`publicKey`),_status)
+})
+}
+
+
@Suppress("ASSIGNED_BUT_NEVER_ACCESSED_VARIABLE")
suspend fun `signIn`(`secretKey`: String) : List {
return uniffiRustCallAsync(
diff --git a/android/src/main/jniLibs/arm64-v8a/libpubkymobile.so b/android/src/main/jniLibs/arm64-v8a/libpubkymobile.so
index 4f9e38d..4092437 100755
Binary files a/android/src/main/jniLibs/arm64-v8a/libpubkymobile.so and b/android/src/main/jniLibs/arm64-v8a/libpubkymobile.so differ
diff --git a/android/src/main/jniLibs/armeabi-v7a/libpubkymobile.so b/android/src/main/jniLibs/armeabi-v7a/libpubkymobile.so
index 8973192..8dc1d34 100755
Binary files a/android/src/main/jniLibs/armeabi-v7a/libpubkymobile.so and b/android/src/main/jniLibs/armeabi-v7a/libpubkymobile.so differ
diff --git a/android/src/main/jniLibs/x86/libpubkymobile.so b/android/src/main/jniLibs/x86/libpubkymobile.so
index 5138553..c87cd3f 100755
Binary files a/android/src/main/jniLibs/x86/libpubkymobile.so and b/android/src/main/jniLibs/x86/libpubkymobile.so differ
diff --git a/android/src/main/jniLibs/x86_64/libpubkymobile.so b/android/src/main/jniLibs/x86_64/libpubkymobile.so
index cefb145..769dce7 100755
Binary files a/android/src/main/jniLibs/x86_64/libpubkymobile.so and b/android/src/main/jniLibs/x86_64/libpubkymobile.so differ
diff --git a/example/ios/Podfile.lock b/example/ios/Podfile.lock
index 580b02e..3b49eea 100644
--- a/example/ios/Podfile.lock
+++ b/example/ios/Podfile.lock
@@ -1237,7 +1237,7 @@ PODS:
- ReactCommon/turbomodule/bridging
- ReactCommon/turbomodule/core
- Yoga
- - react-native-pubky (0.4.0):
+ - react-native-pubky (0.5.0):
- DoubleConversion
- glog
- hermes-engine
@@ -1757,7 +1757,7 @@ SPEC CHECKSUMS:
React-logger: 4072f39df335ca443932e0ccece41fbeb5ca8404
React-Mapbuffer: 714f2fae68edcabfc332b754e9fbaa8cfc68fdd4
React-microtasksnativemodule: 4943ad8f99be8ccf5a63329fa7d269816609df9e
- react-native-pubky: d9834542073d368f48e8f0bcce3d7d92317159fa
+ react-native-pubky: 6eb6e656a9c7bfc4310556c142db5861a2fe5b7f
React-nativeconfig: 4a9543185905fe41014c06776bf126083795aed9
React-NativeModulesApple: 0506da59fc40d2e1e6e12a233db5e81c46face27
React-perflogger: 3bbb82f18e9ac29a1a6931568e99d6305ef4403b
diff --git a/example/src/App.tsx b/example/src/App.tsx
index 395446c..633185e 100644
--- a/example/src/App.tsx
+++ b/example/src/App.tsx
@@ -9,6 +9,8 @@ import {
signOut,
put,
get,
+ resolveHttps,
+ publishHttps,
} from '@synonymdev/react-native-pubky';
export default function App() {
@@ -167,6 +169,44 @@ export default function App() {
}
}}
/>
+
+