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.
- package/ReactNativeCandle.podspec +1 -1
- package/ios/Sources/RNCandle.swift +271 -89
- package/lib/commonjs/index.js +73 -2
- package/lib/commonjs/index.js.map +1 -1
- package/lib/module/index.js +73 -2
- package/lib/module/index.js.map +1 -1
- package/lib/typescript/commonjs/src/index.d.ts +35 -14
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts +49 -2
- package/lib/typescript/commonjs/src/specs/RNCandle.nitro.d.ts.map +1 -1
- package/lib/typescript/module/src/index.d.ts +35 -14
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts +49 -2
- package/lib/typescript/module/src/specs/RNCandle.nitro.d.ts.map +1 -1
- package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.cpp +16 -8
- package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Bridge.hpp +167 -43
- package/nitrogen/generated/ios/ReactNativeCandle-Swift-Cxx-Umbrella.hpp +30 -0
- package/nitrogen/generated/ios/c++/HybridRNCandleSpecSwift.hpp +58 -4
- package/nitrogen/generated/ios/swift/AssetAccountRef.swift +55 -0
- package/nitrogen/generated/ios/swift/ExecuteTradeRequest.swift +44 -0
- package/nitrogen/generated/ios/swift/FiatAssetRef.swift +75 -0
- package/nitrogen/generated/ios/swift/Func_void_AssetAccount.swift +44 -0
- package/nitrogen/generated/ios/swift/Func_void_LinkedAccount.swift +5 -5
- package/nitrogen/generated/ios/swift/HybridRNCandleSpec.swift +5 -2
- package/nitrogen/generated/ios/swift/HybridRNCandleSpec_cxx.swift +65 -5
- package/nitrogen/generated/ios/swift/LinkedAccountRef.swift +33 -0
- package/nitrogen/generated/ios/swift/MarketTradeAssetRef.swift +55 -0
- package/nitrogen/generated/ios/swift/NothingAssetRef.swift +33 -0
- package/nitrogen/generated/ios/swift/OtherAssetRef.swift +33 -0
- package/nitrogen/generated/ios/swift/TradeAssetRef.swift +176 -0
- package/nitrogen/generated/ios/swift/TradeRef.swift +44 -0
- package/nitrogen/generated/ios/swift/TransportAssetRef.swift +55 -0
- package/nitrogen/generated/shared/c++/AssetAccountRef.hpp +77 -0
- package/nitrogen/generated/shared/c++/ExecuteTradeRequest.hpp +73 -0
- package/nitrogen/generated/shared/c++/FiatAssetRef.hpp +78 -0
- package/nitrogen/generated/shared/c++/HybridRNCandleSpec.cpp +4 -1
- package/nitrogen/generated/shared/c++/HybridRNCandleSpec.hpp +17 -2
- package/nitrogen/generated/shared/c++/LinkedAccountRef.hpp +69 -0
- package/nitrogen/generated/shared/c++/MarketTradeAssetRef.hpp +77 -0
- package/nitrogen/generated/shared/c++/NothingAssetRef.hpp +69 -0
- package/nitrogen/generated/shared/c++/OtherAssetRef.hpp +69 -0
- package/nitrogen/generated/shared/c++/TradeAssetRef.hpp +99 -0
- package/nitrogen/generated/shared/c++/TradeRef.hpp +74 -0
- package/nitrogen/generated/shared/c++/TransportAssetRef.hpp +77 -0
- package/package.json +1 -1
- package/src/index.ts +131 -21
- 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.
|
|
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(
|
|
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,
|
|
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
|
|
39
|
-
|
|
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(
|
|
96
|
+
public func unlinkAccount(ref: LinkedAccountRef) throws -> Promise<Void> {
|
|
91
97
|
.async {
|
|
92
|
-
try await self.viewModel.candleClient.unlinkAccount(
|
|
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
|
|
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
|
|
111
|
+
public func getLinkedAccount(ref: LinkedAccountRef) throws -> Promise<LinkedAccount> {
|
|
104
112
|
.async {
|
|
105
|
-
let
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
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
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
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:
|
|
171
|
-
lostAssetKind:
|
|
172
|
-
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:
|
|
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<
|
|
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
|
|
205
|
-
|
|
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(
|
|
235
|
+
throw RNClientError.badInitialization(
|
|
236
|
+
message: "Self was deinitialized \(#function).")
|
|
218
237
|
}
|
|
219
|
-
let result = try await self.viewModel.candleClient
|
|
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),
|
|
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(
|
|
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,
|
|
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(
|
|
455
|
+
originAddress: .init(
|
|
456
|
+
value: transportAsset.originAddress.value),
|
|
433
457
|
destinationCoordinates: .init(
|
|
434
|
-
latitude: transportAsset.destinationCoordinates
|
|
435
|
-
|
|
458
|
+
latitude: transportAsset.destinationCoordinates
|
|
459
|
+
.latitude,
|
|
460
|
+
longitude: transportAsset.destinationCoordinates
|
|
461
|
+
.longitude
|
|
436
462
|
),
|
|
437
|
-
destinationAddress: .init(
|
|
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
|
|
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
|
|
505
|
+
} else if let marketAssetQuoteRequest = gained
|
|
506
|
+
.marketAssetQuoteRequest
|
|
507
|
+
{
|
|
478
508
|
return Models.TradeAssetQuoteRequest.MarketAssetQuoteRequest(
|
|
479
509
|
.init(
|
|
480
|
-
assetKind: .init(
|
|
481
|
-
|
|
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
|
|
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
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
|
|
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
|
|
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:
|
|
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
|
+
}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -46,8 +46,11 @@ class CandleClient {
|
|
|
46
46
|
}
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
|
-
async
|
|
50
|
-
|
|
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","
|
|
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":[]}
|