@keystonehq/react-native-keystone-wallet-core 0.1.0-alpha.1 → 0.1.0-alpha.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,13 +9,19 @@ import com.facebook.react.bridge.ReadableMap
9
9
  import uniffi.keystone_wallet_core.TransparentInput
10
10
  import uniffi.keystone_wallet_core.TransparentOutput
11
11
  import uniffi.keystone_wallet_core.createTransparentPczt
12
+ import uniffi.keystone_wallet_core.finalizeThenExtractPcztTransaction;
12
13
  import uniffi.keystone_wallet_core.derivePubkeyByPathAda
13
14
  import uniffi.keystone_wallet_core.deriveAddressByPathAda
14
15
  import uniffi.keystone_wallet_core.deriveEnterpriseAddressByPathAda
15
16
  import uniffi.keystone_wallet_core.deriveStakeAddressAda
16
17
  import uniffi.keystone_wallet_core.CardanoNetwork
18
+ import uniffi.keystone_wallet_core.CardanoTxInput
19
+ import uniffi.keystone_wallet_core.CardanoTxOutput
20
+ import uniffi.keystone_wallet_core.composeTransactionAda
17
21
  import com.facebook.react.bridge.WritableNativeMap
18
22
 
23
+ import uniffi.keystone_wallet_core.assembleTransactionAda
24
+
19
25
  class KeystoneWalletCoreModule(reactContext: ReactApplicationContext) : ReactContextBaseJavaModule(reactContext) {
20
26
 
21
27
  override fun getName(): String {
@@ -58,6 +64,16 @@ class KeystoneWalletCoreModule(reactContext: ReactApplicationContext) : ReactCon
58
64
  }
59
65
  }
60
66
 
67
+ @ReactMethod
68
+ fun finalizeThenExtractPcztTransaction(pczt: String) {
69
+ try {
70
+ val result = finalizeThenExtractPcztTransaction(pczt)
71
+ promise.resolve(result)
72
+ } catch (e: Exception) {
73
+ promise.reject("finalizeThenExtractPcztTransaction ERROR", e.message, e)
74
+ }
75
+ }
76
+
61
77
  private fun getCardanoNetwork(network: String): CardanoNetwork {
62
78
  return when (network) {
63
79
  "Mainnet" -> CardanoNetwork.MAINNET
@@ -111,4 +127,63 @@ class KeystoneWalletCoreModule(reactContext: ReactApplicationContext) : ReactCon
111
127
  promise.reject("CARDANO_ERROR", e.message, e)
112
128
  }
113
129
  }
130
+
131
+ @ReactMethod
132
+ fun composeTransactionAda(
133
+ inputs: ReadableArray,
134
+ outputs: ReadableArray,
135
+ changeAddress: String,
136
+ fee: Double,
137
+ ttl: Double,
138
+ network: String,
139
+ promise: Promise
140
+ ) {
141
+ try {
142
+ val kotlinInputs = mutableListOf<CardanoTxInput>()
143
+ for (i in 0 until inputs.size()) {
144
+ val input = inputs.getMap(i) ?: continue
145
+ kotlinInputs.add(CardanoTxInput(
146
+ txHash = input.getString("txHash") ?: "",
147
+ txIndex = input.getDouble("txIndex").toUInt(),
148
+ amount = input.getDouble("amount").toULong()
149
+ ))
150
+ }
151
+
152
+ val kotlinOutputs = mutableListOf<CardanoTxOutput>()
153
+ for (i in 0 until outputs.size()) {
154
+ val output = outputs.getMap(i) ?: continue
155
+ kotlinOutputs.add(CardanoTxOutput(
156
+ address = output.getString("address") ?: "",
157
+ amount = output.getDouble("amount").toULong(),
158
+ isChange = output.getBoolean("isChange")
159
+ ))
160
+ }
161
+
162
+ val adaNetwork = getCardanoNetwork(network)
163
+ val result = composeTransactionAda(
164
+ kotlinInputs,
165
+ kotlinOutputs,
166
+ changeAddress,
167
+ fee.toULong(),
168
+ ttl.toULong(),
169
+ adaNetwork
170
+ )
171
+ promise.resolve(result)
172
+ } catch (e: Exception) {
173
+ promise.reject("CARDANO_ERROR", e.message, e)
174
+ }
175
+ }
176
+
177
+ @ReactMethod
178
+ fun assembleTransactionAda(rawTxHex: String, witnessSetHex: String, promise: Promise) {
179
+ try {
180
+ val result = assembleTransactionAda(rawTxHex, witnessSetHex)
181
+ val map = WritableNativeMap()
182
+ map.putString("txId", result.txId)
183
+ map.putString("txHex", result.txHex)
184
+ promise.resolve(map)
185
+ } catch (e: Exception) {
186
+ promise.reject("CARDANO_ERROR", e.message, e)
187
+ }
188
+ }
114
189
  }
@@ -266,6 +266,16 @@ void uniffi_keystone_wallet_core_fn_free_pczt(void*_Nonnull ptr, RustCallStatus
266
266
  RustBuffer uniffi_keystone_wallet_core_fn_method_pczt_serialize(void*_Nonnull ptr, RustCallStatus *_Nonnull out_status
267
267
  );
268
268
  #endif
269
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_ASSEMBLE_TRANSACTION_ADA
270
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_ASSEMBLE_TRANSACTION_ADA
271
+ RustBuffer uniffi_keystone_wallet_core_fn_func_assemble_transaction_ada(RustBuffer raw_tx_hex, RustBuffer witness_set_hex, RustCallStatus *_Nonnull out_status
272
+ );
273
+ #endif
274
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_COMPOSE_TRANSACTION_ADA
275
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_COMPOSE_TRANSACTION_ADA
276
+ RustBuffer uniffi_keystone_wallet_core_fn_func_compose_transaction_ada(RustBuffer inputs, RustBuffer outputs, RustBuffer change_address, uint64_t fee, uint64_t ttl, RustBuffer network, RustCallStatus *_Nonnull out_status
277
+ );
278
+ #endif
269
279
  #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_CREATE_PCZT
270
280
  #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_CREATE_PCZT
271
281
  void*_Nonnull uniffi_keystone_wallet_core_fn_func_create_pczt(uint32_t consensus_branch_id, uint32_t expiry_height, uint32_t coin_type, RustCallStatus *_Nonnull out_status
@@ -296,14 +306,9 @@ RustBuffer uniffi_keystone_wallet_core_fn_func_derive_pubkey_by_path_ada(RustBuf
296
306
  RustBuffer uniffi_keystone_wallet_core_fn_func_derive_stake_address_ada(RustBuffer account_xpub_hex, RustBuffer network, RustCallStatus *_Nonnull out_status
297
307
  );
298
308
  #endif
299
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_AND_FINALIZE_PCZT
300
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_AND_FINALIZE_PCZT
301
- RustBuffer uniffi_keystone_wallet_core_fn_func_extract_and_finalize_pczt(RustBuffer pczt_hex, uint32_t expiry_height, RustBuffer private_key_hex, RustCallStatus *_Nonnull out_status
302
- );
303
- #endif
304
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_PCZT_TRANSACTION
305
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_PCZT_TRANSACTION
306
- RustBuffer uniffi_keystone_wallet_core_fn_func_extract_pczt_transaction(RustBuffer pczt_hex, RustCallStatus *_Nonnull out_status
309
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
310
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
311
+ RustBuffer uniffi_keystone_wallet_core_fn_func_finalize_then_extract_pczt_transaction(RustBuffer pczt_hex, RustCallStatus *_Nonnull out_status
307
312
  );
308
313
  #endif
309
314
  #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_HELLO
@@ -590,6 +595,18 @@ void ffi_keystone_wallet_core_rust_future_free_void(uint64_t handle
590
595
  #ifndef UNIFFI_FFIDEF_FFI_KEYSTONE_WALLET_CORE_RUST_FUTURE_COMPLETE_VOID
591
596
  #define UNIFFI_FFIDEF_FFI_KEYSTONE_WALLET_CORE_RUST_FUTURE_COMPLETE_VOID
592
597
  void ffi_keystone_wallet_core_rust_future_complete_void(uint64_t handle, RustCallStatus *_Nonnull out_status
598
+ );
599
+ #endif
600
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_ASSEMBLE_TRANSACTION_ADA
601
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_ASSEMBLE_TRANSACTION_ADA
602
+ uint16_t uniffi_keystone_wallet_core_checksum_func_assemble_transaction_ada(void
603
+
604
+ );
605
+ #endif
606
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_COMPOSE_TRANSACTION_ADA
607
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_COMPOSE_TRANSACTION_ADA
608
+ uint16_t uniffi_keystone_wallet_core_checksum_func_compose_transaction_ada(void
609
+
593
610
  );
594
611
  #endif
595
612
  #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_CREATE_PCZT
@@ -628,15 +645,9 @@ uint16_t uniffi_keystone_wallet_core_checksum_func_derive_stake_address_ada(void
628
645
 
629
646
  );
630
647
  #endif
631
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_AND_FINALIZE_PCZT
632
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_AND_FINALIZE_PCZT
633
- uint16_t uniffi_keystone_wallet_core_checksum_func_extract_and_finalize_pczt(void
634
-
635
- );
636
- #endif
637
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_PCZT_TRANSACTION
638
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_PCZT_TRANSACTION
639
- uint16_t uniffi_keystone_wallet_core_checksum_func_extract_pczt_transaction(void
648
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
649
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
650
+ uint16_t uniffi_keystone_wallet_core_checksum_func_finalize_then_extract_pczt_transaction(void
640
651
 
641
652
  );
642
653
  #endif
@@ -266,6 +266,16 @@ void uniffi_keystone_wallet_core_fn_free_pczt(void*_Nonnull ptr, RustCallStatus
266
266
  RustBuffer uniffi_keystone_wallet_core_fn_method_pczt_serialize(void*_Nonnull ptr, RustCallStatus *_Nonnull out_status
267
267
  );
268
268
  #endif
269
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_ASSEMBLE_TRANSACTION_ADA
270
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_ASSEMBLE_TRANSACTION_ADA
271
+ RustBuffer uniffi_keystone_wallet_core_fn_func_assemble_transaction_ada(RustBuffer raw_tx_hex, RustBuffer witness_set_hex, RustCallStatus *_Nonnull out_status
272
+ );
273
+ #endif
274
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_COMPOSE_TRANSACTION_ADA
275
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_COMPOSE_TRANSACTION_ADA
276
+ RustBuffer uniffi_keystone_wallet_core_fn_func_compose_transaction_ada(RustBuffer inputs, RustBuffer outputs, RustBuffer change_address, uint64_t fee, uint64_t ttl, RustBuffer network, RustCallStatus *_Nonnull out_status
277
+ );
278
+ #endif
269
279
  #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_CREATE_PCZT
270
280
  #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_CREATE_PCZT
271
281
  void*_Nonnull uniffi_keystone_wallet_core_fn_func_create_pczt(uint32_t consensus_branch_id, uint32_t expiry_height, uint32_t coin_type, RustCallStatus *_Nonnull out_status
@@ -296,14 +306,9 @@ RustBuffer uniffi_keystone_wallet_core_fn_func_derive_pubkey_by_path_ada(RustBuf
296
306
  RustBuffer uniffi_keystone_wallet_core_fn_func_derive_stake_address_ada(RustBuffer account_xpub_hex, RustBuffer network, RustCallStatus *_Nonnull out_status
297
307
  );
298
308
  #endif
299
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_AND_FINALIZE_PCZT
300
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_AND_FINALIZE_PCZT
301
- RustBuffer uniffi_keystone_wallet_core_fn_func_extract_and_finalize_pczt(RustBuffer pczt_hex, uint32_t expiry_height, RustBuffer private_key_hex, RustCallStatus *_Nonnull out_status
302
- );
303
- #endif
304
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_PCZT_TRANSACTION
305
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_EXTRACT_PCZT_TRANSACTION
306
- RustBuffer uniffi_keystone_wallet_core_fn_func_extract_pczt_transaction(RustBuffer pczt_hex, RustCallStatus *_Nonnull out_status
309
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
310
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
311
+ RustBuffer uniffi_keystone_wallet_core_fn_func_finalize_then_extract_pczt_transaction(RustBuffer pczt_hex, RustCallStatus *_Nonnull out_status
307
312
  );
308
313
  #endif
309
314
  #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_FN_FUNC_HELLO
@@ -590,6 +595,18 @@ void ffi_keystone_wallet_core_rust_future_free_void(uint64_t handle
590
595
  #ifndef UNIFFI_FFIDEF_FFI_KEYSTONE_WALLET_CORE_RUST_FUTURE_COMPLETE_VOID
591
596
  #define UNIFFI_FFIDEF_FFI_KEYSTONE_WALLET_CORE_RUST_FUTURE_COMPLETE_VOID
592
597
  void ffi_keystone_wallet_core_rust_future_complete_void(uint64_t handle, RustCallStatus *_Nonnull out_status
598
+ );
599
+ #endif
600
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_ASSEMBLE_TRANSACTION_ADA
601
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_ASSEMBLE_TRANSACTION_ADA
602
+ uint16_t uniffi_keystone_wallet_core_checksum_func_assemble_transaction_ada(void
603
+
604
+ );
605
+ #endif
606
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_COMPOSE_TRANSACTION_ADA
607
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_COMPOSE_TRANSACTION_ADA
608
+ uint16_t uniffi_keystone_wallet_core_checksum_func_compose_transaction_ada(void
609
+
593
610
  );
594
611
  #endif
595
612
  #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_CREATE_PCZT
@@ -628,15 +645,9 @@ uint16_t uniffi_keystone_wallet_core_checksum_func_derive_stake_address_ada(void
628
645
 
629
646
  );
630
647
  #endif
631
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_AND_FINALIZE_PCZT
632
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_AND_FINALIZE_PCZT
633
- uint16_t uniffi_keystone_wallet_core_checksum_func_extract_and_finalize_pczt(void
634
-
635
- );
636
- #endif
637
- #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_PCZT_TRANSACTION
638
- #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_EXTRACT_PCZT_TRANSACTION
639
- uint16_t uniffi_keystone_wallet_core_checksum_func_extract_pczt_transaction(void
648
+ #ifndef UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
649
+ #define UNIFFI_FFIDEF_UNIFFI_KEYSTONE_WALLET_CORE_CHECKSUM_FUNC_FINALIZE_THEN_EXTRACT_PCZT_TRANSACTION
650
+ uint16_t uniffi_keystone_wallet_core_checksum_func_finalize_then_extract_pczt_transaction(void
640
651
 
641
652
  );
642
653
  #endif
@@ -8,7 +8,7 @@ RCT_EXTERN_METHOD(createTransparentPczt:(NSArray *)inputs
8
8
  resolve:(RCTPromiseResolveBlock)resolve
9
9
  reject:(RCTPromiseRejectBlock)reject)
10
10
 
11
- RCT_EXTERN_METHOD(extractPcztTransaction:(NSString *)pcztHex
11
+ RCT_EXTERN_METHOD(finalizeThenExtractPcztTransaction:(NSString *)pcztHex
12
12
  resolve:(RCTPromiseResolveBlock)resolve
13
13
  reject:(RCTPromiseRejectBlock)reject)
14
14
 
@@ -34,4 +34,18 @@ RCT_EXTERN_METHOD(deriveStakeAddressAda:(NSString *)accountXpubHex
34
34
  resolve:(RCTPromiseResolveBlock)resolve
35
35
  reject:(RCTPromiseRejectBlock)reject)
36
36
 
37
+ RCT_EXTERN_METHOD(composeTransactionAda:(NSArray *)inputs
38
+ outputs:(NSArray *)outputs
39
+ changeAddress:(NSString *)changeAddress
40
+ fee:(double)fee
41
+ ttl:(double)ttl
42
+ network:(NSString *)network
43
+ resolve:(RCTPromiseResolveBlock)resolve
44
+ reject:(RCTPromiseRejectBlock)reject)
45
+
46
+ RCT_EXTERN_METHOD(assembleTransactionAda:(NSString *)rawTxHex
47
+ witnessSetHex:(NSString *)witnessSetHex
48
+ resolve:(RCTPromiseResolveBlock)resolve
49
+ reject:(RCTPromiseRejectBlock)reject)
50
+
37
51
  @end
@@ -43,10 +43,10 @@ public class KeystoneWalletCoreModule: NSObject {
43
43
  }
44
44
  }
45
45
 
46
- @objc(extractPcztTransaction:resolve:reject:)
47
- func extractPcztTransactionBridge(_ pcztHex: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
46
+ @objc(finalizeThenExtractPcztTransaction:resolve:reject:)
47
+ func finalizeThenExtractPcztTransactionBridge(_ pcztHex: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
48
48
  do {
49
- let result = try extractPcztTransaction(pcztHex: pcztHex)
49
+ let result = try finalizeThenExtractPcztTransaction(pcztHex: pcztHex)
50
50
  resolve(result)
51
51
  } catch {
52
52
  reject("PCZT_ERROR", error.localizedDescription, error)
@@ -109,4 +109,64 @@ public class KeystoneWalletCoreModule: NSObject {
109
109
  reject("CARDANO_ERROR", error.localizedDescription, error)
110
110
  }
111
111
  }
112
+
113
+ @objc(composeTransactionAda:outputs:changeAddress:fee:ttl:network:resolve:reject:)
114
+ func composeTransactionAdaBridge(
115
+ _ inputs: [NSDictionary],
116
+ outputs: [NSDictionary],
117
+ changeAddress: String,
118
+ fee: Double,
119
+ ttl: Double,
120
+ network: String,
121
+ resolve: @escaping RCTPromiseResolveBlock,
122
+ reject: @escaping RCTPromiseRejectBlock
123
+ ) {
124
+ do {
125
+ let swiftInputs = try inputs.map { dict -> CardanoTxInput in
126
+ guard let txHash = dict["txHash"] as? String,
127
+ let txIndex = (dict["txIndex"] as? NSNumber)?.uint32Value,
128
+ let amount = (dict["amount"] as? NSNumber)?.uint64Value
129
+ else {
130
+ throw NSError(domain: "CardanoModule", code: 1, userInfo: [NSLocalizedDescriptionKey: "Invalid input format"])
131
+ }
132
+ return CardanoTxInput(txHash: txHash, txIndex: txIndex, amount: amount)
133
+ }
134
+
135
+ let swiftOutputs = try outputs.map { dict -> CardanoTxOutput in
136
+ guard let address = dict["address"] as? String,
137
+ let amount = (dict["amount"] as? NSNumber)?.uint64Value,
138
+ let isChange = dict["isChange"] as? Bool
139
+ else {
140
+ throw NSError(domain: "CardanoModule", code: 1, userInfo: [NSLocalizedDescriptionKey: "Invalid output format"])
141
+ }
142
+ return CardanoTxOutput(address: address, amount: amount, isChange: isChange)
143
+ }
144
+
145
+ let adaNetwork = try getCardanoNetwork(network: network)
146
+ let result = try composeTransactionAda(
147
+ inputs: swiftInputs,
148
+ outputs: swiftOutputs,
149
+ changeAddress: changeAddress,
150
+ fee: UInt64(fee),
151
+ ttl: UInt64(ttl),
152
+ network: adaNetwork
153
+ )
154
+ resolve(result)
155
+ } catch {
156
+ reject("CARDANO_ERROR", error.localizedDescription, error)
157
+ }
158
+ }
159
+
160
+ @objc(assembleTransactionAda:witnessSetHex:resolve:reject:)
161
+ func assembleTransactionAdaBridge(_ rawTxHex: String, witnessSetHex: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) {
162
+ do {
163
+ let result = try assembleTransactionAda(rawTxHex: rawTxHex, witnessSetHex: witnessSetHex)
164
+ resolve([
165
+ "txId": result.txId,
166
+ "txHex": result.txHex
167
+ ])
168
+ } catch {
169
+ reject("CARDANO_ERROR", error.localizedDescription, error)
170
+ }
171
+ }
112
172
  }
@@ -442,6 +442,30 @@ fileprivate struct FfiConverterUInt64: FfiConverterPrimitive {
442
442
  }
443
443
  }
444
444
 
445
+ #if swift(>=5.8)
446
+ @_documentation(visibility: private)
447
+ #endif
448
+ fileprivate struct FfiConverterBool : FfiConverter {
449
+ typealias FfiType = Int8
450
+ typealias SwiftType = Bool
451
+
452
+ public static func lift(_ value: Int8) throws -> Bool {
453
+ return value != 0
454
+ }
455
+
456
+ public static func lower(_ value: Bool) -> Int8 {
457
+ return value ? 1 : 0
458
+ }
459
+
460
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> Bool {
461
+ return try lift(readInt(&buf))
462
+ }
463
+
464
+ public static func write(_ value: Bool, into buf: inout [UInt8]) {
465
+ writeInt(&buf, lower(value))
466
+ }
467
+ }
468
+
445
469
  #if swift(>=5.8)
446
470
  @_documentation(visibility: private)
447
471
  #endif
@@ -604,6 +628,154 @@ public func FfiConverterTypePczt_lower(_ value: Pczt) -> UnsafeMutableRawPointer
604
628
  }
605
629
 
606
630
 
631
+ public struct CardanoTxInput {
632
+ public var txHash: String
633
+ public var txIndex: UInt32
634
+ public var amount: UInt64
635
+
636
+ // Default memberwise initializers are never public by default, so we
637
+ // declare one manually.
638
+ public init(txHash: String, txIndex: UInt32, amount: UInt64) {
639
+ self.txHash = txHash
640
+ self.txIndex = txIndex
641
+ self.amount = amount
642
+ }
643
+ }
644
+
645
+
646
+
647
+ extension CardanoTxInput: Equatable, Hashable {
648
+ public static func ==(lhs: CardanoTxInput, rhs: CardanoTxInput) -> Bool {
649
+ if lhs.txHash != rhs.txHash {
650
+ return false
651
+ }
652
+ if lhs.txIndex != rhs.txIndex {
653
+ return false
654
+ }
655
+ if lhs.amount != rhs.amount {
656
+ return false
657
+ }
658
+ return true
659
+ }
660
+
661
+ public func hash(into hasher: inout Hasher) {
662
+ hasher.combine(txHash)
663
+ hasher.combine(txIndex)
664
+ hasher.combine(amount)
665
+ }
666
+ }
667
+
668
+
669
+ #if swift(>=5.8)
670
+ @_documentation(visibility: private)
671
+ #endif
672
+ public struct FfiConverterTypeCardanoTxInput: FfiConverterRustBuffer {
673
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> CardanoTxInput {
674
+ return
675
+ try CardanoTxInput(
676
+ txHash: FfiConverterString.read(from: &buf),
677
+ txIndex: FfiConverterUInt32.read(from: &buf),
678
+ amount: FfiConverterUInt64.read(from: &buf)
679
+ )
680
+ }
681
+
682
+ public static func write(_ value: CardanoTxInput, into buf: inout [UInt8]) {
683
+ FfiConverterString.write(value.txHash, into: &buf)
684
+ FfiConverterUInt32.write(value.txIndex, into: &buf)
685
+ FfiConverterUInt64.write(value.amount, into: &buf)
686
+ }
687
+ }
688
+
689
+
690
+ #if swift(>=5.8)
691
+ @_documentation(visibility: private)
692
+ #endif
693
+ public func FfiConverterTypeCardanoTxInput_lift(_ buf: RustBuffer) throws -> CardanoTxInput {
694
+ return try FfiConverterTypeCardanoTxInput.lift(buf)
695
+ }
696
+
697
+ #if swift(>=5.8)
698
+ @_documentation(visibility: private)
699
+ #endif
700
+ public func FfiConverterTypeCardanoTxInput_lower(_ value: CardanoTxInput) -> RustBuffer {
701
+ return FfiConverterTypeCardanoTxInput.lower(value)
702
+ }
703
+
704
+
705
+ public struct CardanoTxOutput {
706
+ public var address: String
707
+ public var amount: UInt64
708
+ public var isChange: Bool
709
+
710
+ // Default memberwise initializers are never public by default, so we
711
+ // declare one manually.
712
+ public init(address: String, amount: UInt64, isChange: Bool) {
713
+ self.address = address
714
+ self.amount = amount
715
+ self.isChange = isChange
716
+ }
717
+ }
718
+
719
+
720
+
721
+ extension CardanoTxOutput: Equatable, Hashable {
722
+ public static func ==(lhs: CardanoTxOutput, rhs: CardanoTxOutput) -> Bool {
723
+ if lhs.address != rhs.address {
724
+ return false
725
+ }
726
+ if lhs.amount != rhs.amount {
727
+ return false
728
+ }
729
+ if lhs.isChange != rhs.isChange {
730
+ return false
731
+ }
732
+ return true
733
+ }
734
+
735
+ public func hash(into hasher: inout Hasher) {
736
+ hasher.combine(address)
737
+ hasher.combine(amount)
738
+ hasher.combine(isChange)
739
+ }
740
+ }
741
+
742
+
743
+ #if swift(>=5.8)
744
+ @_documentation(visibility: private)
745
+ #endif
746
+ public struct FfiConverterTypeCardanoTxOutput: FfiConverterRustBuffer {
747
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> CardanoTxOutput {
748
+ return
749
+ try CardanoTxOutput(
750
+ address: FfiConverterString.read(from: &buf),
751
+ amount: FfiConverterUInt64.read(from: &buf),
752
+ isChange: FfiConverterBool.read(from: &buf)
753
+ )
754
+ }
755
+
756
+ public static func write(_ value: CardanoTxOutput, into buf: inout [UInt8]) {
757
+ FfiConverterString.write(value.address, into: &buf)
758
+ FfiConverterUInt64.write(value.amount, into: &buf)
759
+ FfiConverterBool.write(value.isChange, into: &buf)
760
+ }
761
+ }
762
+
763
+
764
+ #if swift(>=5.8)
765
+ @_documentation(visibility: private)
766
+ #endif
767
+ public func FfiConverterTypeCardanoTxOutput_lift(_ buf: RustBuffer) throws -> CardanoTxOutput {
768
+ return try FfiConverterTypeCardanoTxOutput.lift(buf)
769
+ }
770
+
771
+ #if swift(>=5.8)
772
+ @_documentation(visibility: private)
773
+ #endif
774
+ public func FfiConverterTypeCardanoTxOutput_lower(_ value: CardanoTxOutput) -> RustBuffer {
775
+ return FfiConverterTypeCardanoTxOutput.lower(value)
776
+ }
777
+
778
+
607
779
  public struct DerivedKeys {
608
780
  public var paymentPubkeyHex: String
609
781
  public var stakePubkeyHex: String
@@ -670,6 +842,72 @@ public func FfiConverterTypeDerivedKeys_lower(_ value: DerivedKeys) -> RustBuffe
670
842
  }
671
843
 
672
844
 
845
+ public struct SignedTxResult {
846
+ public var txId: String
847
+ public var txHex: String
848
+
849
+ // Default memberwise initializers are never public by default, so we
850
+ // declare one manually.
851
+ public init(txId: String, txHex: String) {
852
+ self.txId = txId
853
+ self.txHex = txHex
854
+ }
855
+ }
856
+
857
+
858
+
859
+ extension SignedTxResult: Equatable, Hashable {
860
+ public static func ==(lhs: SignedTxResult, rhs: SignedTxResult) -> Bool {
861
+ if lhs.txId != rhs.txId {
862
+ return false
863
+ }
864
+ if lhs.txHex != rhs.txHex {
865
+ return false
866
+ }
867
+ return true
868
+ }
869
+
870
+ public func hash(into hasher: inout Hasher) {
871
+ hasher.combine(txId)
872
+ hasher.combine(txHex)
873
+ }
874
+ }
875
+
876
+
877
+ #if swift(>=5.8)
878
+ @_documentation(visibility: private)
879
+ #endif
880
+ public struct FfiConverterTypeSignedTxResult: FfiConverterRustBuffer {
881
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> SignedTxResult {
882
+ return
883
+ try SignedTxResult(
884
+ txId: FfiConverterString.read(from: &buf),
885
+ txHex: FfiConverterString.read(from: &buf)
886
+ )
887
+ }
888
+
889
+ public static func write(_ value: SignedTxResult, into buf: inout [UInt8]) {
890
+ FfiConverterString.write(value.txId, into: &buf)
891
+ FfiConverterString.write(value.txHex, into: &buf)
892
+ }
893
+ }
894
+
895
+
896
+ #if swift(>=5.8)
897
+ @_documentation(visibility: private)
898
+ #endif
899
+ public func FfiConverterTypeSignedTxResult_lift(_ buf: RustBuffer) throws -> SignedTxResult {
900
+ return try FfiConverterTypeSignedTxResult.lift(buf)
901
+ }
902
+
903
+ #if swift(>=5.8)
904
+ @_documentation(visibility: private)
905
+ #endif
906
+ public func FfiConverterTypeSignedTxResult_lower(_ value: SignedTxResult) -> RustBuffer {
907
+ return FfiConverterTypeSignedTxResult.lower(value)
908
+ }
909
+
910
+
673
911
  public struct TransparentInput {
674
912
  public var txid: String
675
913
  public var vout: UInt32
@@ -1104,6 +1342,56 @@ fileprivate struct FfiConverterSequenceUInt8: FfiConverterRustBuffer {
1104
1342
  }
1105
1343
  }
1106
1344
 
1345
+ #if swift(>=5.8)
1346
+ @_documentation(visibility: private)
1347
+ #endif
1348
+ fileprivate struct FfiConverterSequenceTypeCardanoTxInput: FfiConverterRustBuffer {
1349
+ typealias SwiftType = [CardanoTxInput]
1350
+
1351
+ public static func write(_ value: [CardanoTxInput], into buf: inout [UInt8]) {
1352
+ let len = Int32(value.count)
1353
+ writeInt(&buf, len)
1354
+ for item in value {
1355
+ FfiConverterTypeCardanoTxInput.write(item, into: &buf)
1356
+ }
1357
+ }
1358
+
1359
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [CardanoTxInput] {
1360
+ let len: Int32 = try readInt(&buf)
1361
+ var seq = [CardanoTxInput]()
1362
+ seq.reserveCapacity(Int(len))
1363
+ for _ in 0 ..< len {
1364
+ seq.append(try FfiConverterTypeCardanoTxInput.read(from: &buf))
1365
+ }
1366
+ return seq
1367
+ }
1368
+ }
1369
+
1370
+ #if swift(>=5.8)
1371
+ @_documentation(visibility: private)
1372
+ #endif
1373
+ fileprivate struct FfiConverterSequenceTypeCardanoTxOutput: FfiConverterRustBuffer {
1374
+ typealias SwiftType = [CardanoTxOutput]
1375
+
1376
+ public static func write(_ value: [CardanoTxOutput], into buf: inout [UInt8]) {
1377
+ let len = Int32(value.count)
1378
+ writeInt(&buf, len)
1379
+ for item in value {
1380
+ FfiConverterTypeCardanoTxOutput.write(item, into: &buf)
1381
+ }
1382
+ }
1383
+
1384
+ public static func read(from buf: inout (data: Data, offset: Data.Index)) throws -> [CardanoTxOutput] {
1385
+ let len: Int32 = try readInt(&buf)
1386
+ var seq = [CardanoTxOutput]()
1387
+ seq.reserveCapacity(Int(len))
1388
+ for _ in 0 ..< len {
1389
+ seq.append(try FfiConverterTypeCardanoTxOutput.read(from: &buf))
1390
+ }
1391
+ return seq
1392
+ }
1393
+ }
1394
+
1107
1395
  #if swift(>=5.8)
1108
1396
  @_documentation(visibility: private)
1109
1397
  #endif
@@ -1153,6 +1441,26 @@ fileprivate struct FfiConverterSequenceTypeTransparentOutput: FfiConverterRustBu
1153
1441
  return seq
1154
1442
  }
1155
1443
  }
1444
+ public func assembleTransactionAda(rawTxHex: String, witnessSetHex: String)throws -> SignedTxResult {
1445
+ return try FfiConverterTypeSignedTxResult.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) {
1446
+ uniffi_keystone_wallet_core_fn_func_assemble_transaction_ada(
1447
+ FfiConverterString.lower(rawTxHex),
1448
+ FfiConverterString.lower(witnessSetHex),$0
1449
+ )
1450
+ })
1451
+ }
1452
+ public func composeTransactionAda(inputs: [CardanoTxInput], outputs: [CardanoTxOutput], changeAddress: String, fee: UInt64, ttl: UInt64, network: CardanoNetwork)throws -> String {
1453
+ return try FfiConverterString.lift(try rustCallWithError(FfiConverterTypeWalletError.lift) {
1454
+ uniffi_keystone_wallet_core_fn_func_compose_transaction_ada(
1455
+ FfiConverterSequenceTypeCardanoTxInput.lower(inputs),
1456
+ FfiConverterSequenceTypeCardanoTxOutput.lower(outputs),
1457
+ FfiConverterString.lower(changeAddress),
1458
+ FfiConverterUInt64.lower(fee),
1459
+ FfiConverterUInt64.lower(ttl),
1460
+ FfiConverterTypeCardanoNetwork.lower(network),$0
1461
+ )
1462
+ })
1463
+ }
1156
1464
  public func createPczt(consensusBranchId: UInt32, expiryHeight: UInt32, coinType: UInt32)throws -> Pczt {
1157
1465
  return try FfiConverterTypePczt.lift(try rustCallWithError(FfiConverterTypePcztError.lift) {
1158
1466
  uniffi_keystone_wallet_core_fn_func_create_pczt(
@@ -1205,18 +1513,9 @@ public func deriveStakeAddressAda(accountXpubHex: String, network: CardanoNetwor
1205
1513
  )
1206
1514
  })
1207
1515
  }
1208
- public func extractAndFinalizePczt(pcztHex: String, expiryHeight: UInt32, privateKeyHex: String)throws -> String {
1209
- return try FfiConverterString.lift(try rustCallWithError(FfiConverterTypePcztError.lift) {
1210
- uniffi_keystone_wallet_core_fn_func_extract_and_finalize_pczt(
1211
- FfiConverterString.lower(pcztHex),
1212
- FfiConverterUInt32.lower(expiryHeight),
1213
- FfiConverterString.lower(privateKeyHex),$0
1214
- )
1215
- })
1216
- }
1217
- public func extractPcztTransaction(pcztHex: String)throws -> String {
1516
+ public func finalizeThenExtractPcztTransaction(pcztHex: String)throws -> String {
1218
1517
  return try FfiConverterString.lift(try rustCallWithError(FfiConverterTypePcztError.lift) {
1219
- uniffi_keystone_wallet_core_fn_func_extract_pczt_transaction(
1518
+ uniffi_keystone_wallet_core_fn_func_finalize_then_extract_pczt_transaction(
1220
1519
  FfiConverterString.lower(pcztHex),$0
1221
1520
  )
1222
1521
  })
@@ -1242,6 +1541,12 @@ private var initializationResult: InitializationResult = {
1242
1541
  if bindings_contract_version != scaffolding_contract_version {
1243
1542
  return InitializationResult.contractVersionMismatch
1244
1543
  }
1544
+ if (uniffi_keystone_wallet_core_checksum_func_assemble_transaction_ada() != 22105) {
1545
+ return InitializationResult.apiChecksumMismatch
1546
+ }
1547
+ if (uniffi_keystone_wallet_core_checksum_func_compose_transaction_ada() != 48909) {
1548
+ return InitializationResult.apiChecksumMismatch
1549
+ }
1245
1550
  if (uniffi_keystone_wallet_core_checksum_func_create_pczt() != 11746) {
1246
1551
  return InitializationResult.apiChecksumMismatch
1247
1552
  }
@@ -1260,10 +1565,7 @@ private var initializationResult: InitializationResult = {
1260
1565
  if (uniffi_keystone_wallet_core_checksum_func_derive_stake_address_ada() != 22900) {
1261
1566
  return InitializationResult.apiChecksumMismatch
1262
1567
  }
1263
- if (uniffi_keystone_wallet_core_checksum_func_extract_and_finalize_pczt() != 38408) {
1264
- return InitializationResult.apiChecksumMismatch
1265
- }
1266
- if (uniffi_keystone_wallet_core_checksum_func_extract_pczt_transaction() != 4075) {
1568
+ if (uniffi_keystone_wallet_core_checksum_func_finalize_then_extract_pczt_transaction() != 23392) {
1267
1569
  return InitializationResult.apiChecksumMismatch
1268
1570
  }
1269
1571
  if (uniffi_keystone_wallet_core_checksum_func_hello() != 6912) {
@@ -4,12 +4,14 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.CardanoNetwork = void 0;
7
+ exports.assembleTransactionAda = assembleTransactionAda;
8
+ exports.composeTransactionAda = composeTransactionAda;
7
9
  exports.createTransparentPczt = createTransparentPczt;
8
10
  exports.deriveAddressByPathAda = deriveAddressByPathAda;
9
11
  exports.deriveEnterpriseAddressByPathAda = deriveEnterpriseAddressByPathAda;
10
12
  exports.derivePubkeyByPathAda = derivePubkeyByPathAda;
11
13
  exports.deriveStakeAddressAda = deriveStakeAddressAda;
12
- exports.extractPcztTransaction = extractPcztTransaction;
14
+ exports.finalizeThenExtractPcztTransaction = finalizeThenExtractPcztTransaction;
13
15
  var _reactNative = require("react-native");
14
16
  const LINKING_ERROR = `The package 'react-native-keystone-wallet-core' doesn't seem to be linked. Make sure: \n\n` + (_reactNative.Platform.select({
15
17
  ios: "- You have run 'pod install'\n",
@@ -23,8 +25,8 @@ const KeystoneWalletCoreModule = _reactNative.NativeModules.KeystoneWalletCoreMo
23
25
  function createTransparentPczt(inputs, outputs, blockHeight) {
24
26
  return KeystoneWalletCoreModule.createTransparentPczt(inputs, outputs, blockHeight);
25
27
  }
26
- function extractPcztTransaction(pcztHex) {
27
- return KeystoneWalletCoreModule.extractPcztTransaction(pcztHex);
28
+ function finalizeThenExtractPcztTransaction(pcztHex) {
29
+ return KeystoneWalletCoreModule.finalizeThenExtractPcztTransaction(pcztHex);
28
30
  }
29
31
  let CardanoNetwork = exports.CardanoNetwork = /*#__PURE__*/function (CardanoNetwork) {
30
32
  CardanoNetwork["Mainnet"] = "Mainnet";
@@ -43,4 +45,10 @@ function deriveEnterpriseAddressByPathAda(accountXpubHex, path, network) {
43
45
  function deriveStakeAddressAda(accountXpubHex, network) {
44
46
  return KeystoneWalletCoreModule.deriveStakeAddressAda(accountXpubHex, network);
45
47
  }
48
+ function composeTransactionAda(inputs, outputs, changeAddress, fee, ttl, network) {
49
+ return KeystoneWalletCoreModule.composeTransactionAda(inputs, outputs, changeAddress, fee, ttl, network);
50
+ }
51
+ function assembleTransactionAda(rawTxHex, witnessSetHex) {
52
+ return KeystoneWalletCoreModule.assembleTransactionAda(rawTxHex, witnessSetHex);
53
+ }
46
54
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","KeystoneWalletCoreModule","NativeModules","Proxy","get","Error","createTransparentPczt","inputs","outputs","blockHeight","extractPcztTransaction","pcztHex","CardanoNetwork","exports","derivePubkeyByPathAda","accountXpubHex","path","deriveAddressByPathAda","network","deriveEnterpriseAddressByPathAda","deriveStakeAddressAda"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,4FAA4F,IAC3FC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAC/E,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGC,0BAAa,CAACD,wBAAwB,GACnEC,0BAAa,CAACD,wBAAwB,GACtC,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAiBE,SAASU,qBAAqBA,CACnCC,MAA0B,EAC1BC,OAA4B,EAC5BC,WAAmB,EACF;EACjB,OAAOR,wBAAwB,CAACK,qBAAqB,CAACC,MAAM,EAAEC,OAAO,EAAEC,WAAW,CAAC;AACrF;AAEO,SAASC,sBAAsBA,CAACC,OAAe,EAAmB;EACvE,OAAOV,wBAAwB,CAACS,sBAAsB,CAACC,OAAO,CAAC;AACjE;AAAC,IAOWC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAKnB,SAASE,qBAAqBA,CACnCC,cAAsB,EACtBC,IAAY,EACU;EACtB,OAAOf,wBAAwB,CAACa,qBAAqB,CAACC,cAAc,EAAEC,IAAI,CAAC;AAC7E;AAEO,SAASC,sBAAsBA,CACpCF,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACgB,sBAAsB,CAACF,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACvF;AAEO,SAASC,gCAAgCA,CAC9CJ,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACkB,gCAAgC,CAACJ,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACjG;AAEO,SAASE,qBAAqBA,CACnCL,cAAsB,EACtBG,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACmB,qBAAqB,CAACL,cAAc,EAAEG,OAAO,CAAC;AAChF","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","LINKING_ERROR","Platform","select","ios","default","KeystoneWalletCoreModule","NativeModules","Proxy","get","Error","createTransparentPczt","inputs","outputs","blockHeight","finalizeThenExtractPcztTransaction","pcztHex","CardanoNetwork","exports","derivePubkeyByPathAda","accountXpubHex","path","deriveAddressByPathAda","network","deriveEnterpriseAddressByPathAda","deriveStakeAddressAda","composeTransactionAda","changeAddress","fee","ttl","assembleTransactionAda","rawTxHex","witnessSetHex"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,aAAa,GACjB,4FAA4F,IAC3FC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAC/E,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGC,0BAAa,CAACD,wBAAwB,GACnEC,0BAAa,CAACD,wBAAwB,GACtC,IAAIE,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAiBE,SAASU,qBAAqBA,CACnCC,MAA0B,EAC1BC,OAA4B,EAC5BC,WAAmB,EACF;EACjB,OAAOR,wBAAwB,CAACK,qBAAqB,CAACC,MAAM,EAAEC,OAAO,EAAEC,WAAW,CAAC;AACrF;AAEO,SAASC,kCAAkCA,CAACC,OAAe,EAAmB;EACnF,OAAOV,wBAAwB,CAACS,kCAAkC,CAACC,OAAO,CAAC;AAC7E;AAAC,IAOWC,cAAc,GAAAC,OAAA,CAAAD,cAAA,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAKnB,SAASE,qBAAqBA,CACnCC,cAAsB,EACtBC,IAAY,EACU;EACtB,OAAOf,wBAAwB,CAACa,qBAAqB,CAACC,cAAc,EAAEC,IAAI,CAAC;AAC7E;AAEO,SAASC,sBAAsBA,CACpCF,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACgB,sBAAsB,CAACF,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACvF;AAEO,SAASC,gCAAgCA,CAC9CJ,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACkB,gCAAgC,CAACJ,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACjG;AAEO,SAASE,qBAAqBA,CACnCL,cAAsB,EACtBG,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACmB,qBAAqB,CAACL,cAAc,EAAEG,OAAO,CAAC;AAChF;AAcO,SAASG,qBAAqBA,CACnCd,MAAwB,EACxBC,OAA0B,EAC1Bc,aAAqB,EACrBC,GAAW,EACXC,GAAW,EACXN,OAAuB,EACN;EACjB,OAAOjB,wBAAwB,CAACoB,qBAAqB,CACnDd,MAAM,EACNC,OAAO,EACPc,aAAa,EACbC,GAAG,EACHC,GAAG,EACHN,OACF,CAAC;AACH;AAOO,SAASO,sBAAsBA,CACpCC,QAAgB,EAChBC,aAAqB,EACI;EACzB,OAAO1B,wBAAwB,CAACwB,sBAAsB,CAACC,QAAQ,EAAEC,aAAa,CAAC;AACjF","ignoreList":[]}
@@ -11,8 +11,8 @@ const KeystoneWalletCoreModule = NativeModules.KeystoneWalletCoreModule ? Native
11
11
  export function createTransparentPczt(inputs, outputs, blockHeight) {
12
12
  return KeystoneWalletCoreModule.createTransparentPczt(inputs, outputs, blockHeight);
13
13
  }
14
- export function extractPcztTransaction(pcztHex) {
15
- return KeystoneWalletCoreModule.extractPcztTransaction(pcztHex);
14
+ export function finalizeThenExtractPcztTransaction(pcztHex) {
15
+ return KeystoneWalletCoreModule.finalizeThenExtractPcztTransaction(pcztHex);
16
16
  }
17
17
  export let CardanoNetwork = /*#__PURE__*/function (CardanoNetwork) {
18
18
  CardanoNetwork["Mainnet"] = "Mainnet";
@@ -31,4 +31,10 @@ export function deriveEnterpriseAddressByPathAda(accountXpubHex, path, network)
31
31
  export function deriveStakeAddressAda(accountXpubHex, network) {
32
32
  return KeystoneWalletCoreModule.deriveStakeAddressAda(accountXpubHex, network);
33
33
  }
34
+ export function composeTransactionAda(inputs, outputs, changeAddress, fee, ttl, network) {
35
+ return KeystoneWalletCoreModule.composeTransactionAda(inputs, outputs, changeAddress, fee, ttl, network);
36
+ }
37
+ export function assembleTransactionAda(rawTxHex, witnessSetHex) {
38
+ return KeystoneWalletCoreModule.assembleTransactionAda(rawTxHex, witnessSetHex);
39
+ }
34
40
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","KeystoneWalletCoreModule","Proxy","get","Error","createTransparentPczt","inputs","outputs","blockHeight","extractPcztTransaction","pcztHex","CardanoNetwork","derivePubkeyByPathAda","accountXpubHex","path","deriveAddressByPathAda","network","deriveEnterpriseAddressByPathAda","deriveStakeAddressAda"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,4FAA4F,IAC3FD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAC/E,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGN,aAAa,CAACM,wBAAwB,GACnEN,aAAa,CAACM,wBAAwB,GACtC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAiBL,OAAO,SAASQ,qBAAqBA,CACnCC,MAA0B,EAC1BC,OAA4B,EAC5BC,WAAmB,EACF;EACjB,OAAOP,wBAAwB,CAACI,qBAAqB,CAACC,MAAM,EAAEC,OAAO,EAAEC,WAAW,CAAC;AACrF;AAEA,OAAO,SAASC,sBAAsBA,CAACC,OAAe,EAAmB;EACvE,OAAOT,wBAAwB,CAACQ,sBAAsB,CAACC,OAAO,CAAC;AACjE;AAOA,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAK1B,OAAO,SAASC,qBAAqBA,CACnCC,cAAsB,EACtBC,IAAY,EACU;EACtB,OAAOb,wBAAwB,CAACW,qBAAqB,CAACC,cAAc,EAAEC,IAAI,CAAC;AAC7E;AAEA,OAAO,SAASC,sBAAsBA,CACpCF,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACc,sBAAsB,CAACF,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACvF;AAEA,OAAO,SAASC,gCAAgCA,CAC9CJ,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACgB,gCAAgC,CAACJ,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACjG;AAEA,OAAO,SAASE,qBAAqBA,CACnCL,cAAsB,EACtBG,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACiB,qBAAqB,CAACL,cAAc,EAAEG,OAAO,CAAC;AAChF","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","KeystoneWalletCoreModule","Proxy","get","Error","createTransparentPczt","inputs","outputs","blockHeight","finalizeThenExtractPcztTransaction","pcztHex","CardanoNetwork","derivePubkeyByPathAda","accountXpubHex","path","deriveAddressByPathAda","network","deriveEnterpriseAddressByPathAda","deriveStakeAddressAda","composeTransactionAda","changeAddress","fee","ttl","assembleTransactionAda","rawTxHex","witnessSetHex"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,4FAA4F,IAC3FD,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,IAAI,EAAE,CAAC,GAC/E,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,wBAAwB,GAAGN,aAAa,CAACM,wBAAwB,GACnEN,aAAa,CAACM,wBAAwB,GACtC,IAAIC,KAAK,CACP,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAiBL,OAAO,SAASQ,qBAAqBA,CACnCC,MAA0B,EAC1BC,OAA4B,EAC5BC,WAAmB,EACF;EACjB,OAAOP,wBAAwB,CAACI,qBAAqB,CAACC,MAAM,EAAEC,OAAO,EAAEC,WAAW,CAAC;AACrF;AAEA,OAAO,SAASC,kCAAkCA,CAACC,OAAe,EAAmB;EACnF,OAAOT,wBAAwB,CAACQ,kCAAkC,CAACC,OAAO,CAAC;AAC7E;AAOA,WAAYC,cAAc,0BAAdA,cAAc;EAAdA,cAAc;EAAdA,cAAc;EAAA,OAAdA,cAAc;AAAA;AAK1B,OAAO,SAASC,qBAAqBA,CACnCC,cAAsB,EACtBC,IAAY,EACU;EACtB,OAAOb,wBAAwB,CAACW,qBAAqB,CAACC,cAAc,EAAEC,IAAI,CAAC;AAC7E;AAEA,OAAO,SAASC,sBAAsBA,CACpCF,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACc,sBAAsB,CAACF,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACvF;AAEA,OAAO,SAASC,gCAAgCA,CAC9CJ,cAAsB,EACtBC,IAAY,EACZE,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACgB,gCAAgC,CAACJ,cAAc,EAAEC,IAAI,EAAEE,OAAO,CAAC;AACjG;AAEA,OAAO,SAASE,qBAAqBA,CACnCL,cAAsB,EACtBG,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACiB,qBAAqB,CAACL,cAAc,EAAEG,OAAO,CAAC;AAChF;AAcA,OAAO,SAASG,qBAAqBA,CACnCb,MAAwB,EACxBC,OAA0B,EAC1Ba,aAAqB,EACrBC,GAAW,EACXC,GAAW,EACXN,OAAuB,EACN;EACjB,OAAOf,wBAAwB,CAACkB,qBAAqB,CACnDb,MAAM,EACNC,OAAO,EACPa,aAAa,EACbC,GAAG,EACHC,GAAG,EACHN,OACF,CAAC;AACH;AAOA,OAAO,SAASO,sBAAsBA,CACpCC,QAAgB,EAChBC,aAAqB,EACI;EACzB,OAAOxB,wBAAwB,CAACsB,sBAAsB,CAACC,QAAQ,EAAEC,aAAa,CAAC;AACjF","ignoreList":[]}
@@ -12,7 +12,7 @@ export interface TransparentOutput {
12
12
  amount: number;
13
13
  }
14
14
  export declare function createTransparentPczt(inputs: TransparentInput[], outputs: TransparentOutput[], blockHeight: number): Promise<string>;
15
- export declare function extractPcztTransaction(pcztHex: string): Promise<string>;
15
+ export declare function finalizeThenExtractPcztTransaction(pcztHex: string): Promise<string>;
16
16
  export interface DerivedKeys {
17
17
  paymentPubkeyHex: string;
18
18
  stakePubkeyHex: string;
@@ -25,4 +25,20 @@ export declare function derivePubkeyByPathAda(accountXpubHex: string, path: stri
25
25
  export declare function deriveAddressByPathAda(accountXpubHex: string, path: string, network: CardanoNetwork): Promise<string>;
26
26
  export declare function deriveEnterpriseAddressByPathAda(accountXpubHex: string, path: string, network: CardanoNetwork): Promise<string>;
27
27
  export declare function deriveStakeAddressAda(accountXpubHex: string, network: CardanoNetwork): Promise<string>;
28
+ export interface CardanoTxInput {
29
+ txHash: string;
30
+ txIndex: number;
31
+ amount: number;
32
+ }
33
+ export interface CardanoTxOutput {
34
+ address: string;
35
+ amount: number;
36
+ isChange: boolean;
37
+ }
38
+ export declare function composeTransactionAda(inputs: CardanoTxInput[], outputs: CardanoTxOutput[], changeAddress: string, fee: number, ttl: number, network: CardanoNetwork): Promise<string>;
39
+ export interface SignedTxResult {
40
+ txId: string;
41
+ txHex: string;
42
+ }
43
+ export declare function assembleTransactionAda(rawTxHex: string, witnessSetHex: string): Promise<SignedTxResult>;
28
44
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,iBAAiB,EAAE,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEvE;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAEtB;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,iBAAiB,EAAE,EAC5B,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,kCAAkC,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnF;AAED,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY;IACnB,OAAO,YAAY;CACpB;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,WAAW,CAAC,CAEtB;AAED,wBAAgB,sBAAsB,CACpC,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,gCAAgC,CAC9C,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,wBAAgB,qBAAqB,CACnC,cAAc,EAAE,MAAM,EACtB,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CAEjB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,cAAc,EAAE,EACxB,OAAO,EAAE,eAAe,EAAE,EAC1B,aAAa,EAAE,MAAM,EACrB,GAAG,EAAE,MAAM,EACX,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,cAAc,GACtB,OAAO,CAAC,MAAM,CAAC,CASjB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAED,wBAAgB,sBAAsB,CACpC,QAAQ,EAAE,MAAM,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,cAAc,CAAC,CAEzB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keystonehq/react-native-keystone-wallet-core",
3
- "version": "0.1.0-alpha.1",
3
+ "version": "0.1.0-alpha.3",
4
4
  "description": "React Native wrapper for Keystone Wallet Core Rust library",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
package/src/index.tsx CHANGED
@@ -40,8 +40,8 @@ export function createTransparentPczt(
40
40
  return KeystoneWalletCoreModule.createTransparentPczt(inputs, outputs, blockHeight);
41
41
  }
42
42
 
43
- export function extractPcztTransaction(pcztHex: string): Promise<string> {
44
- return KeystoneWalletCoreModule.extractPcztTransaction(pcztHex);
43
+ export function finalizeThenExtractPcztTransaction(pcztHex: string): Promise<string> {
44
+ return KeystoneWalletCoreModule.finalizeThenExtractPcztTransaction(pcztHex);
45
45
  }
46
46
 
47
47
  export interface DerivedKeys {
@@ -84,3 +84,45 @@ export function deriveStakeAddressAda(
84
84
  return KeystoneWalletCoreModule.deriveStakeAddressAda(accountXpubHex, network);
85
85
  }
86
86
 
87
+ export interface CardanoTxInput {
88
+ txHash: string;
89
+ txIndex: number;
90
+ amount: number;
91
+ }
92
+
93
+ export interface CardanoTxOutput {
94
+ address: string;
95
+ amount: number;
96
+ isChange: boolean;
97
+ }
98
+
99
+ export function composeTransactionAda(
100
+ inputs: CardanoTxInput[],
101
+ outputs: CardanoTxOutput[],
102
+ changeAddress: string,
103
+ fee: number,
104
+ ttl: number,
105
+ network: CardanoNetwork
106
+ ): Promise<string> {
107
+ return KeystoneWalletCoreModule.composeTransactionAda(
108
+ inputs,
109
+ outputs,
110
+ changeAddress,
111
+ fee,
112
+ ttl,
113
+ network
114
+ );
115
+ }
116
+
117
+ export interface SignedTxResult {
118
+ txId: string;
119
+ txHex: string;
120
+ }
121
+
122
+ export function assembleTransactionAda(
123
+ rawTxHex: string,
124
+ witnessSetHex: string
125
+ ): Promise<SignedTxResult> {
126
+ return KeystoneWalletCoreModule.assembleTransactionAda(rawTxHex, witnessSetHex);
127
+ }
128
+