react-native-candle 0.1.18 → 0.1.20

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.
Files changed (47) hide show
  1. package/ReactNativeCandle.podspec +1 -1
  2. package/ios/Sources/RNCandle.swift +271 -89
  3. package/lib/commonjs/index.js +73 -2
  4. package/lib/commonjs/index.js.map +1 -1
  5. package/lib/module/index.js +73 -2
  6. package/lib/module/index.js.map +1 -1
  7. package/lib/typescript/commonjs/src/index.d.ts +35 -14
  8. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  9. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts +49 -2
  10. package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts.map +1 -1
  11. package/lib/typescript/module/src/index.d.ts +35 -14
  12. package/lib/typescript/module/src/index.d.ts.map +1 -1
  13. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts +49 -2
  14. package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts.map +1 -1
  15. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.cpp +16 -8
  16. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.hpp +167 -43
  17. package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Umbrella.hpp +30 -0
  18. package/nitrogen/generated/ios/c++/HybridRNCandleSpecSwift.hpp +58 -4
  19. package/nitrogen/generated/ios/swift/AssetAccountRef.swift +55 -0
  20. package/nitrogen/generated/ios/swift/ExecuteTradeRequest.swift +44 -0
  21. package/nitrogen/generated/ios/swift/FiatAssetRef.swift +75 -0
  22. package/nitrogen/generated/ios/swift/Func_void_AssetAccount.swift +44 -0
  23. package/nitrogen/generated/ios/swift/Func_void_LinkedAccount.swift +5 -5
  24. package/nitrogen/generated/ios/swift/HybridRNCandleSpec.swift +5 -2
  25. package/nitrogen/generated/ios/swift/HybridRNCandleSpec_cxx.swift +65 -5
  26. package/nitrogen/generated/ios/swift/LinkedAccountRef.swift +33 -0
  27. package/nitrogen/generated/ios/swift/MarketTradeAssetRef.swift +55 -0
  28. package/nitrogen/generated/ios/swift/NothingAssetRef.swift +33 -0
  29. package/nitrogen/generated/ios/swift/OtherAssetRef.swift +33 -0
  30. package/nitrogen/generated/ios/swift/TradeAssetRef.swift +176 -0
  31. package/nitrogen/generated/ios/swift/TradeRef.swift +44 -0
  32. package/nitrogen/generated/ios/swift/TransportAssetRef.swift +55 -0
  33. package/nitrogen/generated/shared/c++/AssetAccountRef.hpp +77 -0
  34. package/nitrogen/generated/shared/c++/ExecuteTradeRequest.hpp +73 -0
  35. package/nitrogen/generated/shared/c++/FiatAssetRef.hpp +78 -0
  36. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.cpp +4 -1
  37. package/nitrogen/generated/shared/c++/HybridRNCandleSpec.hpp +17 -2
  38. package/nitrogen/generated/shared/c++/LinkedAccountRef.hpp +69 -0
  39. package/nitrogen/generated/shared/c++/MarketTradeAssetRef.hpp +77 -0
  40. package/nitrogen/generated/shared/c++/NothingAssetRef.hpp +69 -0
  41. package/nitrogen/generated/shared/c++/OtherAssetRef.hpp +69 -0
  42. package/nitrogen/generated/shared/c++/TradeAssetRef.hpp +99 -0
  43. package/nitrogen/generated/shared/c++/TradeRef.hpp +74 -0
  44. package/nitrogen/generated/shared/c++/TransportAssetRef.hpp +77 -0
  45. package/package.json +1 -1
  46. package/src/index.ts +131 -21
  47. package/src/specs/RNCandle.nitro.ts +59 -2
@@ -30,7 +30,7 @@ Pod::Spec.new do |s|
30
30
  load 'nitrogen/generated/ios/ReactNativeCandle+autolinking.rb'
31
31
  add_nitrogen_files(s)
32
32
 
33
- s.dependency 'Candle', '3.0.239-beta'
33
+ s.dependency 'Candle', '3.0.247-beta'
34
34
  s.dependency 'React-jsi'
35
35
  s.dependency 'React-callinvoker'
36
36
  install_modules_dependencies(s)
@@ -22,7 +22,8 @@ final class HybridRNCandle: HybridRNCandleSpec {
22
22
  if let viewModel = rootVC?.rootView.viewModel {
23
23
  return viewModel
24
24
  }
25
- throw RNClientError.badInitialization(message: "Failed to properly initialize the client.")
25
+ throw RNClientError.badInitialization(
26
+ message: "Failed to properly initialize the client.")
26
27
  }
27
28
  }
28
29
 
@@ -32,11 +33,16 @@ final class HybridRNCandle: HybridRNCandleSpec {
32
33
  Task { @MainActor in
33
34
  let wrapperView = CandleLinkSheetWrapper(
34
35
  appUser: .init(
35
- appKey: appUser.appKey, appSecret: appUser.appSecret, appUserID: appUser.appUserID))
36
+ appKey: appUser.appKey, appSecret: appUser.appSecret,
37
+ appUserID: appUser.appUserID))
36
38
  let hostingVC = UIHostingController(rootView: wrapperView)
37
39
  self.rootVC = hostingVC
38
- guard let rootViewController = UIApplication.keyWindow?.rootViewController else {
39
- throw RNClientError.badInitialization(message: "Application root view was not initialized.")
40
+ guard
41
+ let rootViewController = UIApplication.keyWindow?
42
+ .rootViewController
43
+ else {
44
+ throw RNClientError.badInitialization(
45
+ message: "Application root view was not initialized.")
40
46
  }
41
47
  rootViewController.embed(hostingVC)
42
48
  }
@@ -87,77 +93,72 @@ final class HybridRNCandle: HybridRNCandleSpec {
87
93
 
88
94
  // MARK: - Public
89
95
 
90
- public func unlinkAccount(linkedAccountID: String) throws -> Promise<Void> {
96
+ public func unlinkAccount(ref: LinkedAccountRef) throws -> Promise<Void> {
91
97
  .async {
92
- try await self.viewModel.candleClient.unlinkAccount(linkedAccountID: linkedAccountID)
98
+ try await self.viewModel.candleClient.unlinkAccount(
99
+ path: .init(linkedAccountID: ref.linkedAccountID))
93
100
  }
94
101
  }
95
102
 
96
103
  public func getLinkedAccounts() throws -> Promise<[LinkedAccount]> {
97
104
  .async {
98
- let accounts = try await self.viewModel.candleClient.getLinkedAccounts()
105
+ let accounts = try await self.viewModel.candleClient
106
+ .getLinkedAccounts()
99
107
  return accounts.map(\.toLinkedAccount)
100
108
  }
101
109
  }
102
110
 
103
- public func getAssetAccounts(query: AssetAccountQuery) throws -> Promise<[AssetAccount]> {
111
+ public func getLinkedAccount(ref: LinkedAccountRef) throws -> Promise<LinkedAccount> {
104
112
  .async {
105
- let accounts = try await self.viewModel.candleClient.getAssetAccounts(
106
- query: .init(
107
- linkedAccountIDs: query.linkedAccountIDs,
108
- assetKind: query.assetKind?.asCandleModel
113
+ let account = try await self.viewModel.candleClient.getLinkedAccount(
114
+ ref: .init(linkedAccountID: ref.linkedAccountID))
115
+ return account.toLinkedAccount
116
+ }
117
+ }
118
+
119
+ public func getAssetAccounts(query: AssetAccountQuery) throws -> Promise<
120
+ [AssetAccount]
121
+ > {
122
+ .async {
123
+ let accounts = try await self.viewModel.candleClient
124
+ .getAssetAccounts(
125
+ query: .init(
126
+ linkedAccountIDs: query.linkedAccountIDs,
127
+ assetKind: query.assetKind?.asCandleModel
128
+ )
129
+ )
130
+ return accounts.map(\.toRNModel)
131
+ }
132
+ }
133
+
134
+ public func getAssetAccount(ref: AssetAccountRef) throws -> Promise<AssetAccount> {
135
+ .async {
136
+ let account = try await self.viewModel.candleClient.getAssetAccount(
137
+ ref: .init(
138
+ linkedAccountID: ref.linkedAccountID,
139
+ assetKind: .init(rawValue: ref.assetKind)!,
140
+ serviceAccountID: ref.serviceAccountID
109
141
  )
110
142
  )
111
- return accounts.map { model in
112
- let legalAccountKind = model.legalAccountKind.toRNModel
113
- switch model.details {
114
- case .FiatAccountDetails(let fiatDetails):
115
- let ach = fiatDetails.ach.map { details in
116
- ACHDetails(
117
- accountNumber: details.accountNumber,
118
- routingNumber: details.routingNumber,
119
- accountKind: details.accountKind.toRNModel
120
- )
121
- }
122
-
123
- let wire = fiatDetails.wire.map { details in
124
- WireDetails(
125
- accountNumber: details.accountNumber,
126
- routingNumber: details.routingNumber
127
- )
128
- }
129
- return AssetAccount(
130
- legalAccountKind: legalAccountKind,
131
- nickname: model.nickname,
132
- details: .init(
133
- fiatAccountDetails: .init(
134
- assetKind: fiatDetails.assetKind.rawValue,
135
- serviceAccountID: fiatDetails.serviceAccountID,
136
- currencyCode: fiatDetails.currencyCode,
137
- balance: fiatDetails.balance,
138
- ach: ach,
139
- wire: wire,
140
- linkedAccountID: fiatDetails.linkedAccountID,
141
- service: fiatDetails.service.toService),
142
- marketAccountDetails: nil
143
- )
144
- )
145
- case .MarketAccountDetails(let marketDetails):
146
- return AssetAccount(
147
- legalAccountKind: legalAccountKind,
148
- nickname: model.nickname,
149
- details: .init(
150
- fiatAccountDetails: nil,
151
- marketAccountDetails: .init(
152
- assetKind: marketDetails.assetKind.rawValue,
153
- serviceAccountID: marketDetails.serviceAccountID,
154
- linkedAccountID: marketDetails.linkedAccountID,
155
- service: marketDetails.service.toService
156
- )
157
- )
158
- )
159
- }
160
- }
143
+ return account.toRNModel
144
+ }
145
+ }
146
+
147
+ public func getTrade(ref: TradeRef) throws -> Promise<Trade> {
148
+ .async {
149
+ let trade = try await self.viewModel.candleClient.getTrade(
150
+ ref: .init(
151
+ lost: try ref.lost.toTradeAssetRef,
152
+ gained: try ref.gained.toTradeAssetRef
153
+ )
154
+ )
155
+ return Trade(
156
+ dateTime: trade.dateTime,
157
+ state: trade.state.toRNModel,
158
+ counterparty: trade.toCounterparty,
159
+ lost: trade.lost.toAsset,
160
+ gained: trade.gained.toAsset
161
+ )
161
162
  }
162
163
  }
163
164
 
@@ -167,14 +168,14 @@ final class HybridRNCandle: HybridRNCandleSpec {
167
168
  query: .init(
168
169
  linkedAccountIDs: query.linkedAccountIDs,
169
170
  dateTimeSpan: query.dateTimeSpan,
170
- gainedAssetKind: .init(rawValue: query.gainedAssetKind ?? ""),
171
- lostAssetKind: .init(rawValue: query.lostAssetKind ?? ""),
172
- counterpartyKind: .init(rawValue: query.counterpartyKind ?? "")
171
+ gainedAssetKind: query.toGainedAssetKind,
172
+ lostAssetKind: query.toLostAssetKind,
173
+ counterpartyKind: query.toCounterpartyKindPayload
173
174
  ))
174
175
  return trades.map { trade in
175
176
  return Trade(
176
177
  dateTime: trade.dateTime,
177
- state: TradeState(fromString: trade.state.rawValue)!,
178
+ state: trade.state.toRNModel,
178
179
  counterparty: trade.toCounterparty,
179
180
  lost: trade.lost.toAsset,
180
181
  gained: trade.gained.toAsset
@@ -183,7 +184,9 @@ final class HybridRNCandle: HybridRNCandleSpec {
183
184
  }
184
185
  }
185
186
 
186
- public func getTradeQuotes(request: TradeQuoteRequest) throws -> Promise<[TradeQuote]> {
187
+ public func getTradeQuotes(request: TradeQuoteRequest) throws -> Promise<
188
+ [TradeQuote]
189
+ > {
187
190
  .async {
188
191
  let accounts = try await self.viewModel.candleClient.getTradeQuotes(
189
192
  request:
@@ -201,8 +204,23 @@ final class HybridRNCandle: HybridRNCandleSpec {
201
204
  }
202
205
  }
203
206
 
204
- public func submitTrade(serviceTradeID: String) throws -> Promise<Trade> {
205
- throw RNClientError.badInitialization(message: "Not implemented.")
207
+ public func executeTrade(request: ExecuteTradeRequest) throws -> Promise<
208
+ Trade
209
+ > {
210
+ .async {
211
+ let trade = try await self.viewModel.candleClient.executeTrade(
212
+ context: .init(
213
+ linkedAccountID: request.linkedAccountID,
214
+ context: request.context)
215
+ )
216
+ return Trade(
217
+ dateTime: trade.dateTime,
218
+ state: trade.state.toRNModel,
219
+ counterparty: trade.toCounterparty,
220
+ lost: trade.lost.toAsset,
221
+ gained: trade.gained.toAsset
222
+ )
223
+ }
206
224
  }
207
225
 
208
226
  public func deleteUser() throws -> Promise<Void> {
@@ -214,9 +232,11 @@ final class HybridRNCandle: HybridRNCandleSpec {
214
232
  public func getAvailableTools() throws -> Promise<[AnyMapHolder]> {
215
233
  .async { [weak self] in
216
234
  guard let self else {
217
- throw RNClientError.badInitialization(message: "Self was deinitialized \(#function).")
235
+ throw RNClientError.badInitialization(
236
+ message: "Self was deinitialized \(#function).")
218
237
  }
219
- let result = try await self.viewModel.candleClient.getAvailableTools()
238
+ let result = try await self.viewModel.candleClient
239
+ .getAvailableTools()
220
240
  return result.map(self.toHolder)
221
241
  }
222
242
  }
@@ -312,7 +332,8 @@ extension Candle.Models.LinkedAccount {
312
332
  accountOpened: details.accountOpened,
313
333
  username: details.username,
314
334
  emailAddress: details.emailAddress,
315
- legalName: details.legalName), inactiveLinkedAccountDetails: nil)
335
+ legalName: details.legalName),
336
+ inactiveLinkedAccountDetails: nil)
316
337
  )
317
338
  case .InactiveLinkedAccountDetails(let details):
318
339
  return LinkedAccount(
@@ -321,7 +342,8 @@ extension Candle.Models.LinkedAccount {
321
342
  serviceUserID: serviceUserID,
322
343
  details: .init(
323
344
  activeLinkedAccountDetails: nil,
324
- inactiveLinkedAccountDetails: .init(state: details.state.rawValue))
345
+ inactiveLinkedAccountDetails: .init(
346
+ state: details.state.rawValue))
325
347
  )
326
348
  }
327
349
  }
@@ -331,7 +353,8 @@ extension Models.MerchantCounterparty {
331
353
  var toLocation: MerchantLocation? {
332
354
  if let location {
333
355
  return .init(
334
- countryCode: location.countryCode, countrySubdivisionCode: location.countrySubdivisionCode,
356
+ countryCode: location.countryCode,
357
+ countrySubdivisionCode: location.countrySubdivisionCode,
335
358
  localityName: location.localityName)
336
359
  }
337
360
  return nil
@@ -429,12 +452,16 @@ extension Models.TradeAsset {
429
452
  latitude: transportAsset.originCoordinates.latitude,
430
453
  longitude: transportAsset.originCoordinates.longitude
431
454
  ),
432
- originAddress: .init(value: transportAsset.originAddress.value),
455
+ originAddress: .init(
456
+ value: transportAsset.originAddress.value),
433
457
  destinationCoordinates: .init(
434
- latitude: transportAsset.destinationCoordinates.latitude,
435
- longitude: transportAsset.destinationCoordinates.longitude
458
+ latitude: transportAsset.destinationCoordinates
459
+ .latitude,
460
+ longitude: transportAsset.destinationCoordinates
461
+ .longitude
436
462
  ),
437
- destinationAddress: .init(value: transportAsset.destinationAddress.value),
463
+ destinationAddress: .init(
464
+ value: transportAsset.destinationAddress.value),
438
465
  seats: transportAsset.seats,
439
466
  linkedAccountID: transportAsset.linkedAccountID,
440
467
  service: transportAsset.service.toService
@@ -469,16 +496,22 @@ extension TradeQuoteRequest {
469
496
  return Models.TradeAssetQuoteRequest.FiatAssetQuoteRequest(
470
497
  .init(
471
498
  assetKind: .fiat,
472
- serviceAccountID: fiatAssetQuoteRequest.serviceAccountID,
499
+ serviceAccountID: fiatAssetQuoteRequest
500
+ .serviceAccountID,
473
501
  currencyCode: fiatAssetQuoteRequest.currencyCode,
474
502
  amount: fiatAssetQuoteRequest.amount
475
503
  )
476
504
  )
477
- } else if let marketAssetQuoteRequest = gained.marketAssetQuoteRequest {
505
+ } else if let marketAssetQuoteRequest = gained
506
+ .marketAssetQuoteRequest
507
+ {
478
508
  return Models.TradeAssetQuoteRequest.MarketAssetQuoteRequest(
479
509
  .init(
480
- assetKind: .init(rawValue: marketAssetQuoteRequest.assetKind) ?? .stock,
481
- serviceAccountID: marketAssetQuoteRequest.serviceAccountID,
510
+ assetKind: .init(
511
+ rawValue: marketAssetQuoteRequest.assetKind)
512
+ ?? .stock,
513
+ serviceAccountID: marketAssetQuoteRequest
514
+ .serviceAccountID,
482
515
  serviceAssetID: marketAssetQuoteRequest.serviceAssetID,
483
516
  symbol: marketAssetQuoteRequest.symbol,
484
517
  amount: marketAssetQuoteRequest.amount
@@ -488,22 +521,30 @@ extension TradeQuoteRequest {
488
521
  return Models.TradeAssetQuoteRequest.NothingAssetQuoteRequest(
489
522
  .init(assetKind: .nothing)
490
523
  )
491
- } else if let transportAssetQuoteRequest = gained.transportAssetQuoteRequest {
524
+ } else if let transportAssetQuoteRequest = gained
525
+ .transportAssetQuoteRequest
526
+ {
492
527
  return Models.TradeAssetQuoteRequest.TransportAssetQuoteRequest(
493
528
  .init(
494
529
  assetKind: .transport,
495
- serviceAssetID: transportAssetQuoteRequest.serviceAssetID,
496
- originCoordinates: transportAssetQuoteRequest.originCoordinates?.toCoordinates,
497
- originAddress: transportAssetQuoteRequest.originAddress?.toAddress,
498
- destinationCoordinates: transportAssetQuoteRequest.destinationCoordinates?
530
+ serviceAssetID: transportAssetQuoteRequest
531
+ .serviceAssetID,
532
+ originCoordinates: transportAssetQuoteRequest
533
+ .originCoordinates?.toCoordinates,
534
+ originAddress: transportAssetQuoteRequest.originAddress?
535
+ .toAddress,
536
+ destinationCoordinates: transportAssetQuoteRequest
537
+ .destinationCoordinates?
499
538
  .toCoordinates,
500
- destinationAddress: transportAssetQuoteRequest.destinationAddress?.toAddress,
539
+ destinationAddress: transportAssetQuoteRequest
540
+ .destinationAddress?.toAddress,
501
541
  seats: transportAssetQuoteRequest.seats
502
542
  )
503
543
  )
504
544
  } else {
505
545
  throw RNClientError.badInitialization(
506
- message: "Internal Candle Error: corrupted trade quote request.")
546
+ message:
547
+ "Internal Candle Error: corrupted trade quote request.")
507
548
  }
508
549
  }
509
550
  }
@@ -896,3 +937,144 @@ extension Candle.Components.Schemas.ACHAccountKind {
896
937
  }
897
938
  }
898
939
  }
940
+
941
+ extension Models.Trade.StatePayload {
942
+ var toRNModel: TradeState {
943
+ switch self {
944
+ case .success:
945
+ return .success
946
+ case .failure:
947
+ return .failure
948
+ case .inProgress:
949
+ return .inprogress
950
+ }
951
+ }
952
+ }
953
+
954
+ extension TradeQuery {
955
+
956
+ var toGainedAssetKind:
957
+ Candle.Operations.GetLinkedAccountsTrades.Input.Query.GainedAssetKindPayload?
958
+ {
959
+ if let gainedAssetKind {
960
+ return .init(rawValue: gainedAssetKind)
961
+ }
962
+ return nil
963
+ }
964
+
965
+ var toLostAssetKind: Candle.Operations.GetLinkedAccountsTrades.Input.Query.LostAssetKindPayload? {
966
+ if let lostAssetKind {
967
+ return .init(rawValue: lostAssetKind)
968
+ }
969
+ return nil
970
+ }
971
+
972
+ var toCounterpartyKindPayload:
973
+ Candle.Operations.GetLinkedAccountsTrades.Input.Query.CounterpartyKindPayload?
974
+ {
975
+ if let counterpartyKind {
976
+ return .init(rawValue: counterpartyKind)
977
+ }
978
+ return nil
979
+ }
980
+ }
981
+
982
+ extension Models.AssetAccount {
983
+ var toRNModel: AssetAccount {
984
+ let legalAccountKind = legalAccountKind.toRNModel
985
+ switch details {
986
+ case .FiatAccountDetails(let fiatDetails):
987
+ let ach = fiatDetails.ach.map { details in
988
+ ACHDetails(
989
+ accountNumber: details.accountNumber,
990
+ routingNumber: details.routingNumber,
991
+ accountKind: details.accountKind.toRNModel
992
+ )
993
+ }
994
+
995
+ let wire = fiatDetails.wire.map { details in
996
+ WireDetails(
997
+ accountNumber: details.accountNumber,
998
+ routingNumber: details.routingNumber
999
+ )
1000
+ }
1001
+ return AssetAccount(
1002
+ legalAccountKind: legalAccountKind,
1003
+ nickname: nickname,
1004
+ details: .init(
1005
+ fiatAccountDetails: .init(
1006
+ assetKind: fiatDetails.assetKind.rawValue,
1007
+ serviceAccountID: fiatDetails.serviceAccountID,
1008
+ currencyCode: fiatDetails.currencyCode,
1009
+ balance: fiatDetails.balance,
1010
+ ach: ach,
1011
+ wire: wire,
1012
+ linkedAccountID: fiatDetails.linkedAccountID,
1013
+ service: fiatDetails.service.toService),
1014
+ marketAccountDetails: nil
1015
+ )
1016
+ )
1017
+ case .MarketAccountDetails(let marketDetails):
1018
+ return AssetAccount(
1019
+ legalAccountKind: legalAccountKind,
1020
+ nickname: nickname,
1021
+ details: .init(
1022
+ fiatAccountDetails: nil,
1023
+ marketAccountDetails: .init(
1024
+ assetKind: marketDetails.assetKind.rawValue,
1025
+ serviceAccountID: marketDetails
1026
+ .serviceAccountID,
1027
+ linkedAccountID: marketDetails.linkedAccountID,
1028
+ service: marketDetails.service.toService
1029
+ )
1030
+ )
1031
+ )
1032
+ }
1033
+ }
1034
+ }
1035
+
1036
+ extension TradeAssetRef {
1037
+ var toTradeAssetRef: Models.TradeAssetRef {
1038
+ get throws {
1039
+ if let fiatAssetRef {
1040
+ return .FiatAssetRef(
1041
+ .init(
1042
+ assetKind: .fiat,
1043
+ serviceTradeID: fiatAssetRef.serviceTradeID,
1044
+ linkedAccountID: fiatAssetRef.linkedAccountID
1045
+ )
1046
+ )
1047
+ } else if let nothingAssetRef {
1048
+ return .NothingAsset(.init(assetKind: .nothing))
1049
+ } else if let marketTradeAssetRef {
1050
+ guard
1051
+ let assetKind = Models.MarketAssetRef.AssetKindPayload.init(
1052
+ rawValue: marketTradeAssetRef.assetKind)
1053
+ else {
1054
+ throw RNClientError.badEncoding
1055
+ }
1056
+ return .MarketAssetRef(
1057
+ .init(
1058
+ assetKind: assetKind,
1059
+ serviceTradeID: marketTradeAssetRef.serviceTradeID,
1060
+ linkedAccountID: marketTradeAssetRef.linkedAccountID
1061
+ )
1062
+ )
1063
+ } else if let otherAssetRef {
1064
+ return .OtherAsset(
1065
+ .init(assetKind: .other)
1066
+ )
1067
+ } else if let transportAssetRef {
1068
+ return .TransportAssetRef(
1069
+ .init(
1070
+ assetKind: .transport,
1071
+ serviceTradeID: transportAssetRef.serviceTradeID,
1072
+ linkedAccountID: transportAssetRef.linkedAccountID
1073
+ )
1074
+ )
1075
+ } else {
1076
+ throw RNClientError.badEncoding
1077
+ }
1078
+ }
1079
+ }
1080
+ }
@@ -46,8 +46,11 @@ class CandleClient {
46
46
  }
47
47
  });
48
48
  }
49
- async unlinkAccount(linkedAccountID) {
50
- await this.candle.unlinkAccount(linkedAccountID);
49
+ async getLinkedAccount(ref) {
50
+ return this.candle.getLinkedAccount(ref);
51
+ }
52
+ async unlinkAccount(path) {
53
+ await this.candle.unlinkAccount(path);
51
54
  }
52
55
  async deleteUser() {
53
56
  await this.candle.deleteUser();
@@ -55,6 +58,16 @@ class CandleClient {
55
58
  async getAvailableTools() {
56
59
  return this.candle.getAvailableTools();
57
60
  }
61
+ async executeTrade(request) {
62
+ const result = await this.candle.executeTrade(request);
63
+ return {
64
+ dateTime: result.dateTime,
65
+ state: result.state,
66
+ counterparty: this.convertToCounterparty(result.counterparty),
67
+ lost: this.convertTradeAsset(result.lost),
68
+ gained: this.convertTradeAsset(result.gained)
69
+ };
70
+ }
58
71
  async executeTool(tool) {
59
72
  return this.candle.executeTool(tool);
60
73
  }
@@ -62,6 +75,10 @@ class CandleClient {
62
75
  const accounts = await this.candle.getAssetAccounts(query);
63
76
  return accounts.map(account => this.convertToAssetAccount(account));
64
77
  }
78
+ async getAssetAccount(ref) {
79
+ const account = await this.candle.getAssetAccount(ref);
80
+ return this.convertToAssetAccount(account);
81
+ }
65
82
  async getTrades(query = {}) {
66
83
  const trades = await this.candle.getTrades(query);
67
84
  return trades.map(({
@@ -78,6 +95,19 @@ class CandleClient {
78
95
  gained: this.convertTradeAsset(gained)
79
96
  }));
80
97
  }
98
+ async getTrade(input) {
99
+ const trade = await this.candle.getTrade({
100
+ lost: this.convertTradeAssetRef(input.lost),
101
+ gained: this.convertTradeAssetRef(input.gained)
102
+ });
103
+ return {
104
+ dateTime: trade.dateTime,
105
+ state: trade.state,
106
+ counterparty: this.convertToCounterparty(trade.counterparty),
107
+ lost: this.convertTradeAsset(trade.lost),
108
+ gained: this.convertTradeAsset(trade.gained)
109
+ };
110
+ }
81
111
  async getTradeQuotes(request) {
82
112
  let gainedRequest;
83
113
  switch (request.gained.assetKind) {
@@ -114,6 +144,47 @@ class CandleClient {
114
144
  };
115
145
  });
116
146
  }
147
+ convertTradeAssetRef(tradeAssetRef) {
148
+ switch (tradeAssetRef.assetKind) {
149
+ case "fiat":
150
+ return {
151
+ fiatAssetRef: {
152
+ assetKind: "fiat",
153
+ linkedAccountID: tradeAssetRef.linkedAccountID,
154
+ serviceTradeID: tradeAssetRef.serviceTradeID
155
+ }
156
+ };
157
+ case "stock":
158
+ case "crypto":
159
+ return {
160
+ marketTradeAssetRef: {
161
+ assetKind: tradeAssetRef.assetKind,
162
+ linkedAccountID: tradeAssetRef.linkedAccountID,
163
+ serviceTradeID: tradeAssetRef.serviceTradeID
164
+ }
165
+ };
166
+ case "transport":
167
+ return {
168
+ transportAssetRef: {
169
+ assetKind: "transport",
170
+ linkedAccountID: tradeAssetRef.linkedAccountID,
171
+ serviceTradeID: tradeAssetRef.serviceTradeID
172
+ }
173
+ };
174
+ case "other":
175
+ return {
176
+ otherAssetRef: {
177
+ assetKind: "other"
178
+ }
179
+ };
180
+ case "nothing":
181
+ return {
182
+ nothingAssetRef: {
183
+ assetKind: "nothing"
184
+ }
185
+ };
186
+ }
187
+ }
117
188
  convertTradeAsset(tradeAsset) {
118
189
  if (tradeAsset.fiatAsset !== undefined) {
119
190
  return {
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNativeNitroModules","require","CandleClient","constructor","appUser","CandleHybridObject","NitroModules","createHybridObject","candle","initialize","presentCandleLinkSheet","services","undefined","cornerRadius","customerName","showDynamicLoading","presentationBackground","presentationStyle","onSuccess","candleLinkSheet","getLinkedAccounts","accounts","map","account","details","activeLinkedAccountDetails","state","inactiveLinkedAccountDetails","Error","unlinkAccount","linkedAccountID","deleteUser","getAvailableTools","executeTool","tool","getAssetAccounts","query","convertToAssetAccount","getTrades","trades","dateTime","counterparty","gained","lost","convertToCounterparty","convertTradeAsset","getTradeQuotes","request","gainedRequest","assetKind","fiatAssetQuoteRequest","marketAssetQuoteRequest","transportAssetQuoteRequest","nothingAssetQuoteRequest","quotes","linkedAccountIDs","quote","tradeAsset","fiatAsset","marketTradeAsset","transportAsset","otherAsset","nothingAsset","merchantCounterparty","kind","userCounterparty","serviceCounterparty","legalAccountKind","nickname","fiatAccountDetails","marketAccountDetails","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["_reactNativeNitroModules","require","CandleClient","constructor","appUser","CandleHybridObject","NitroModules","createHybridObject","candle","initialize","presentCandleLinkSheet","services","undefined","cornerRadius","customerName","showDynamicLoading","presentationBackground","presentationStyle","onSuccess","candleLinkSheet","getLinkedAccounts","accounts","map","account","details","activeLinkedAccountDetails","state","inactiveLinkedAccountDetails","Error","getLinkedAccount","ref","unlinkAccount","path","deleteUser","getAvailableTools","executeTrade","request","result","dateTime","counterparty","convertToCounterparty","lost","convertTradeAsset","gained","executeTool","tool","getAssetAccounts","query","convertToAssetAccount","getAssetAccount","getTrades","trades","getTrade","input","trade","convertTradeAssetRef","getTradeQuotes","gainedRequest","assetKind","fiatAssetQuoteRequest","marketAssetQuoteRequest","transportAssetQuoteRequest","nothingAssetQuoteRequest","quotes","linkedAccountIDs","quote","tradeAssetRef","fiatAssetRef","linkedAccountID","serviceTradeID","marketTradeAssetRef","transportAssetRef","otherAssetRef","nothingAssetRef","tradeAsset","fiatAsset","marketTradeAsset","transportAsset","otherAsset","nothingAsset","merchantCounterparty","kind","userCounterparty","serviceCounterparty","legalAccountKind","nickname","fiatAccountDetails","marketAccountDetails","exports"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"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","ignoreList":[]}