From c3e8a80c3e9b321e7925d8df47ba7939ba749fac Mon Sep 17 00:00:00 2001 From: Luca Vaccaro Date: Fri, 10 Jan 2025 03:03:18 +0100 Subject: [PATCH] fix: add PSET creation Signed-off-by: Luca Vaccaro --- android/src/main/java/io/lwkrn/LwkRnModule.kt | 11 +++++++++++ ios/LwkRnModule.mm | 5 +++++ ios/LwkRnModule.swift | 14 ++++++++++++++ src/classes/NativeLoader.ts | 1 + src/classes/Pset.ts | 5 +++++ 5 files changed, 36 insertions(+) diff --git a/android/src/main/java/io/lwkrn/LwkRnModule.kt b/android/src/main/java/io/lwkrn/LwkRnModule.kt index c210038..cdb1933 100644 --- a/android/src/main/java/io/lwkrn/LwkRnModule.kt +++ b/android/src/main/java/io/lwkrn/LwkRnModule.kt @@ -451,6 +451,17 @@ class LwkRnModule(reactContext: ReactApplicationContext) : /* Pset */ + @ReactMethod + fun createPset(base64: String, result: Promise) { + try { + val id = randomId() + _psets[id] = Pset(base64) + result.resolve(id) + } catch (error: Throwable) { + result.reject("Pset createPset error", error.localizedMessage, error) + } + } + @ReactMethod fun psetAsString(psetId: String, result: Promise) { try { diff --git a/ios/LwkRnModule.mm b/ios/LwkRnModule.mm index 70d166d..b69c234 100644 --- a/ios/LwkRnModule.mm +++ b/ios/LwkRnModule.mm @@ -172,6 +172,11 @@ @interface RCT_EXTERN_MODULE(LwkRnModule, NSObject) ) /** Pset Methods */ + RCT_EXTERN_METHOD( + createPset: (nonnull NSString)base64 + resolve: (RCTPromiseResolveBlock)resolve + reject:(RCTPromiseRejectBlock)reject + ) RCT_EXTERN_METHOD( psetAsString: (nonnull NSString)psetId resolve: (RCTPromiseResolveBlock)resolve diff --git a/ios/LwkRnModule.swift b/ios/LwkRnModule.swift index bdd5bf2..6be2a70 100644 --- a/ios/LwkRnModule.swift +++ b/ios/LwkRnModule.swift @@ -457,6 +457,20 @@ class LwkRnModule: NSObject { /* Pset */ @objc + func createPset(_ + base64: String, + resolve: RCTPromiseResolveBlock, + reject: RCTPromiseRejectBlock + ) -> Void { + do { + let id = randomId() + _psets[id] = try Pset(base64: base64) + resolve(id) + } catch { + reject("Pset createPset error", error.localizedDescription, error) + } + } + @objc func psetAsString(_ psetId: String, resolve: RCTPromiseResolveBlock, diff --git a/src/classes/NativeLoader.ts b/src/classes/NativeLoader.ts index d869ff4..7926dba 100644 --- a/src/classes/NativeLoader.ts +++ b/src/classes/NativeLoader.ts @@ -52,6 +52,7 @@ export interface NativeLwk { txAsString(txId: string): string; // Pset + createPset(base64: string): string; psetAsString(psetId: string): string; psetExtractTx(psetId: string): string; psetIssuanceAsset(id: string, index: number): string; diff --git a/src/classes/Pset.ts b/src/classes/Pset.ts index 35c8eb7..7f029f0 100644 --- a/src/classes/Pset.ts +++ b/src/classes/Pset.ts @@ -9,6 +9,11 @@ export class Pset extends NativeLoader { return this; } + async create(base64: string): Promise { + this.id = await this._lwk.createPset(base64); + return this; + } + async extractTx(): Promise { let id = await this._lwk.psetExtractTx(this.id); return new Transaction().from(id);