UNPKG

90.6 kBPlain TextView Raw
1//Copyright (c) 2019 Facebook. All rights reserved.
2
3import Foundation
4import CYBAVOWallet
5
6@objc(RNWallets)
7class RNWallets: NSObject {
8 var domain = Bundle.main.bundleIdentifier ?? ""
9
10 @objc public func getMarketInfos(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
11 Wallets.shared.getMarketInfos(){ result in
12 switch(result) {
13 case .success(let e):
14 let dict = RNWalletSDK.toDict(e.marketInfos)
15 let newdict: [String: Any] = [
16 "marketInfos": dict,
17 ]
18 resolve(newdict)
19 case .failure(let error):
20 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
21 reject(String(error.code.rawValue), error.message, e)
22 }
23 }
24 }
25
26 @objc public func getCurrencies(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
27 Wallets.shared.getCurrencies(){ result in
28 switch(result) {
29 case .success(let e):
30 let dict = RNWalletSDK.toDict(e.currencies)
31 let newdict: [String: Any] = [
32 "currencies": dict,
33 ]
34 resolve(newdict)
35 case .failure(let error):
36 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
37 reject(String(error.code.rawValue), error.message, e)
38 }
39 }
40 }
41
42 @objc public func getWallets(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
43 Wallets.shared.getWallets(){ result in
44 switch(result) {
45 case .success(let e):
46 let wallets = RNWalletSDK.toDict(e.wallets)
47 let dict: [String: Any] = [
48 "wallets": wallets,
49 ]
50 resolve(dict)
51 case .failure(let error):
52 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
53 reject(String(error.code.rawValue), error.message, e)
54 }
55 }
56 }
57
58 @objc public func getWallet(_ walletId: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
59 Wallets.shared.getWallet(walletId: Int64(walletId)){ result in
60 switch(result) {
61 case .success(let e):
62 let dict = RNWalletSDK.toDict(e)
63 if var newDict = dict as? [String:Any] {
64 newDict["wallet_name"] = newDict["name"]
65 resolve(newDict)
66 } else {
67 resolve(dict)
68 }
69 case .failure(let error):
70 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
71 reject(String(error.code.rawValue), error.message, e)
72 }
73 }
74 }
75
76 @objc public func createWalletWithPinSecret(_ currency: Int, withTokenAddress tokenAddress: String, withParent parentWalletId: NSInteger, withName name: String, byPinSecret: NSDictionary, withExtras extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
77 var walletExtras = [String:String]()
78 for (key, value) in extras {
79 if let key = key as? String, let value = value as? String {
80 walletExtras[key] = value
81 }
82 }
83 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
84 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
85 return
86 }
87 Wallets.shared.createWallet(currency: currency, tokenAddress: tokenAddress, parentWalletId: Int64(parentWalletId), name: name, pinSecret: pinSecret, extras: walletExtras){ result in
88 switch(result) {
89 case .success(let e):
90 let dict = RNWalletSDK.toDict(e)
91 resolve(dict)
92 case .failure(let error):
93 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
94 reject(String(error.code.rawValue), error.message, e)
95 }
96 }
97 }
98
99 @objc public func createWallet(_ currency: Int, withTokenAddress tokenAddress: String, withParent parentWalletId: NSInteger, withName name: String, withPinCode pinCode: String, withExtras extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
100 var walletExtras = [String:String]()
101 for (key, value) in extras {
102 if let key = key as? String, let value = value as? String {
103 walletExtras[key] = value
104 }
105 }
106 Wallets.shared.createWallet(currency: currency, tokenAddress: tokenAddress, parentWalletId: Int64(parentWalletId), name: name, pinCode: pinCode, extras: walletExtras){ result in
107 switch(result) {
108 case .success(let e):
109 let dict = RNWalletSDK.toDict(e)
110 resolve(dict)
111 case .failure(let error):
112 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
113 reject(String(error.code.rawValue), error.message, e)
114 }
115 }
116 }
117
118 @objc public func renameWallet(_ walletId: NSInteger, withName name: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
119 Wallets.shared.renameWallet(walletId: Int64(walletId), name: name){ result in
120 switch(result) {
121 case .success(let e):
122 let dict = RNWalletSDK.toDict(e)
123 resolve(dict)
124 case .failure(let error):
125 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
126 reject(String(error.code.rawValue), error.message, e)
127 }
128 }
129 }
130
131 @objc public func getWalletUsage(_ walletId: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
132 Wallets.shared.getWalletUsage(walletId: Int64(walletId)){ result in
133 switch(result) {
134 case .success(let e):
135 let dict = RNWalletSDK.toDict(e)
136 resolve(dict)
137 case .failure(let error):
138 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
139 reject(String(error.code.rawValue), error.message, e)
140 }
141 }
142 }
143
144 @objc public func createTransactionWithSecureToken(_ fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
145 var extras = [String:Any]()
146 for (key, value) in inputs {
147 if let key = key as? String {
148 extras[key] = value
149 }
150 }
151 Wallets.shared.createTransaction(fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, extras: extras){ result in
152 switch(result) {
153 case .success(let e):
154 let dict = RNWalletSDK.toDict(e)
155 resolve(dict)
156 case .failure(let error):
157 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
158 reject(String(error.code.rawValue), error.message, e)
159 }
160 }
161 }
162
163 @objc public func createTransactionSmsWithSecureToken(_ actionToken: String, smsCode: String, fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
164 var extras = [String:Any]()
165 for (key, value) in inputs {
166 if let key = key as? String {
167 extras[key] = value
168 }
169 }
170 Wallets.shared.createTransactionSms(actionToken:actionToken, smsCode:smsCode,fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, extras: extras){ result in
171 switch(result) {
172 case .success(let e):
173 let dict = RNWalletSDK.toDict(e)
174 resolve(dict)
175 case .failure(let error):
176 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
177 reject(String(error.code.rawValue), error.message, e)
178 }
179 }
180 }
181
182 @objc public func createTransactionBioWithSecureToken(_ promptMessage: String, fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
183 var extras = [String:Any]()
184 for (key, value) in inputs {
185 if let key = key as? String {
186 extras[key] = value
187 }
188 }
189 Wallets.shared.createTransactionBio(promptMessage:promptMessage,fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, extras: extras){ result in
190 switch(result) {
191 case .success(let e):
192 let dict = RNWalletSDK.toDict(e)
193 resolve(dict)
194 case .failure(let error):
195 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
196 reject(String(error.code.rawValue), error.message, e)
197 }
198 }
199 }
200
201
202 @objc public func createTransactionWithPinSecret(_ fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, byPinSecret: NSDictionary, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
203 var extras = [String:Any]()
204 for (key, value) in inputs {
205 if value is NSNull {
206 continue
207 }
208 if let key = key as? String {
209 extras[key] = value
210 }
211 }
212 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
213 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
214 return
215 }
216 Wallets.shared.createTransaction(fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, pinSecret: pinSecret, extras: extras){ result in
217 switch(result) {
218 case .success(let e):
219 let dict = RNWalletSDK.toDict(e)
220 resolve(dict)
221 case .failure(let error):
222 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
223 reject(String(error.code.rawValue), error.message, e)
224 }
225 }
226 }
227
228 @objc public func createTransactionSmsWithPinSecret(_ actionToken: String, smsCode: String, fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, byPinSecret: NSDictionary, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
229 var extras = [String:Any]()
230 for (key, value) in inputs {
231 if value is NSNull {
232 continue
233 }
234 if let key = key as? String {
235 extras[key] = value
236 }
237 }
238 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
239 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
240 return
241 }
242 Wallets.shared.createTransactionSms(actionToken:actionToken, smsCode:smsCode, fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, pinSecret: pinSecret, extras: extras){ result in
243 switch(result) {
244 case .success(let e):
245 let dict = RNWalletSDK.toDict(e)
246 resolve(dict)
247 case .failure(let error):
248 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
249 reject(String(error.code.rawValue), error.message, e)
250 }
251 }
252 }
253
254 @objc public func createTransactionBioWithPinSecret(_ promptMessage: String, fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, byPinSecret: NSDictionary, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
255 var extras = [String:Any]()
256 for (key, value) in inputs {
257 if value is NSNull {
258 continue
259 }
260 if let key = key as? String {
261 extras[key] = value
262 }
263 }
264 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
265 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
266 return
267 }
268 Wallets.shared.createTransactionBio(promptMessage:promptMessage, fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, pinSecret: pinSecret, extras: extras){ result in
269 switch(result) {
270 case .success(let e):
271 let dict = RNWalletSDK.toDict(e)
272 resolve(dict)
273 case .failure(let error):
274 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
275 reject(String(error.code.rawValue), error.message, e)
276 }
277 }
278 }
279
280
281
282 @objc public func createTransactionWithPinCode(_ fromWalletId: NSInteger, toAddress addr: String, withAmount amount: String, withFee transactionFee: String, withDesc description: String, byPIN pinCode: String, extras inputs: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
283 var extras = [String:Any]()
284 for (key, value) in inputs {
285 if value is NSNull {
286 continue
287 }
288 if let key = key as? String {
289 extras[key] = value
290 }
291 }
292 Wallets.shared.createTransaction(fromWalletId: Int64(fromWalletId), toAddress: addr, amount: amount, transactionFee: transactionFee, description: description, pinCode: pinCode, extras: extras){ result in
293 switch(result) {
294 case .success(let e):
295 let dict = RNWalletSDK.toDict(e)
296 resolve(dict)
297 case .failure(let error):
298 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
299 reject(String(error.code.rawValue), error.message, e)
300 }
301 }
302 }
303
304 @objc public func increaseTransactionFeeWithPinSecret(_ fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
305 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
306 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
307 return
308 }
309 Wallets.shared.increaseTransactionFee(fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinSecret: pinSecret){ result in
310 switch(result) {
311 case .success(let e):
312 let dict = RNWalletSDK.toDict(e)
313 resolve(dict)
314 case .failure(let error):
315 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
316 reject(String(error.code.rawValue), error.message, e)
317 }
318 }
319 }
320
321
322 @objc public func increaseTransactionFeeSmsWithPinSecret(_ actionToken: String, smsCode: String, fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
323 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
324 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
325 return
326 }
327 Wallets.shared.increaseTransactionFeeSms(actionToken:actionToken, smsCode:smsCode, fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinSecret: pinSecret){ result in
328 switch(result) {
329 case .success(let e):
330 let dict = RNWalletSDK.toDict(e)
331 resolve(dict)
332 case .failure(let error):
333 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
334 reject(String(error.code.rawValue), error.message, e)
335 }
336 }
337 }
338
339 @objc public func increaseTransactionFeeBioWithPinSecret(_ promptMessage: String, fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
340 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
341 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
342 return
343 }
344 Wallets.shared.increaseTransactionFeeBio(promptMessage:promptMessage, fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinSecret: pinSecret){ result in
345 switch(result) {
346 case .success(let e):
347 let dict = RNWalletSDK.toDict(e)
348 resolve(dict)
349 case .failure(let error):
350 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
351 reject(String(error.code.rawValue), error.message, e)
352 }
353 }
354 }
355
356 @objc public func increaseTransactionFeeWithPinCode(_ fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPIN pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
357 Wallets.shared.increaseTransactionFee(fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinCode: pinCode){ result in
358 switch(result) {
359 case .success(let e):
360 let dict = RNWalletSDK.toDict(e)
361 resolve(dict)
362 case .failure(let error):
363 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
364 reject(String(error.code.rawValue), error.message, e)
365 }
366 }
367 }
368
369
370 @objc public func cancelTransactionWithPinSecret(_ fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
371 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
372 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
373 return
374 }
375 Wallets.shared.cancelTransaction(fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinSecret: pinSecret){ result in
376 switch(result) {
377 case .success(let e):
378 let dict = RNWalletSDK.toDict(e)
379 resolve(dict)
380 case .failure(let error):
381 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
382 reject(String(error.code.rawValue), error.message, e)
383 }
384 }
385 }
386
387 @objc public func cancelTransactionSmsWithPinSecret(_ actionToken: String, smsCode: String, fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
388 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
389 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
390 return
391 }
392 Wallets.shared.cancelTransactionSms(actionToken:actionToken, smsCode:smsCode, fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinSecret: pinSecret){ result in
393 switch(result) {
394 case .success(let e):
395 let dict = RNWalletSDK.toDict(e)
396 resolve(dict)
397 case .failure(let error):
398 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
399 reject(String(error.code.rawValue), error.message, e)
400 }
401 }
402 }
403
404 @objc public func cancelTransactionBioWithPinSecret(_ promptMessage: String, fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
405 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
406 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
407 return
408 }
409 Wallets.shared.cancelTransactionBio(promptMessage: promptMessage, fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinSecret: pinSecret){ result in
410 switch(result) {
411 case .success(let e):
412 let dict = RNWalletSDK.toDict(e)
413 resolve(dict)
414 case .failure(let error):
415 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
416 reject(String(error.code.rawValue), error.message, e)
417 }
418 }
419 }
420
421 @objc public func cancelTransactionWithPinCode(_ fromWalletId: NSInteger, txid txid: String, withFee transactionFee: String, byPIN pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
422 Wallets.shared.cancelTransaction(fromWalletId: Int64(fromWalletId), txid: txid, transactionFee: transactionFee, pinCode: pinCode){ result in
423 switch(result) {
424 case .success(let e):
425 let dict = RNWalletSDK.toDict(e)
426 resolve(dict)
427 case .failure(let error):
428 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
429 reject(String(error.code.rawValue), error.message, e)
430 }
431 }
432 }
433
434 @objc public func requestSecureToken(_ pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
435 Wallets.shared.requestSecureToken(pinCode: pinCode){ result in
436 switch(result) {
437 case .success(let e):
438 let dict = RNWalletSDK.toDict(e)
439 resolve(dict)
440 case .failure(let error):
441 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
442 reject(String(error.code.rawValue), error.message, e)
443 }
444 }
445 }
446
447 @objc public func requestSecureTokenWithPinSecret(_ byPinSecret: NSDictionary,resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
448 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
449 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
450 return
451 }
452 Wallets.shared.requestSecureToken(pinSecret: pinSecret){ result in
453 switch(result) {
454 case .success(let e):
455 let dict = RNWalletSDK.toDict(e)
456 resolve(dict)
457 case .failure(let error):
458 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
459 reject(String(error.code.rawValue), error.message, e)
460 }
461 }
462 }
463
464 @objc public func requestSecureTokenSmsWithPinSecret(_ actionToken: String, smsCode: String, byPinSecret: NSDictionary,resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
465 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
466 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
467 return
468 }
469 Wallets.shared.requestSecureTokenSms(actionToken:actionToken, smsCode:smsCode, pinSecret: pinSecret){ result in
470 switch(result) {
471 case .success(let e):
472 let dict = RNWalletSDK.toDict(e)
473 resolve(dict)
474 case .failure(let error):
475 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
476 reject(String(error.code.rawValue), error.message, e)
477 }
478 }
479 }
480
481 @objc public func requestSecureTokenBioWithPinSecret(_ promptMessage: String, byPinSecret: NSDictionary,resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
482 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
483 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
484 return
485 }
486 Wallets.shared.requestSecureTokenBio(promptMessage:promptMessage, pinSecret: pinSecret){ result in
487 switch(result) {
488 case .success(let e):
489 let dict = RNWalletSDK.toDict(e)
490 resolve(dict)
491 case .failure(let error):
492 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
493 reject(String(error.code.rawValue), error.message, e)
494 }
495 }
496 }
497 @objc public func clearSecureToken(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock) {
498 Wallets.shared.clearSecureToken(){ result in
499 switch(result) {
500 case .success(let e):
501 let dict = RNWalletSDK.toDict(e)
502 resolve(dict)
503 case .failure(let error):
504 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
505 reject(String(error.code.rawValue), error.message, e)
506 }
507 }
508 }
509
510 @objc public func getTransactionFee(_ currency: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
511 Wallets.shared.getTransactionFee(currency: currency){ result in
512 switch(result) {
513 case .success(let e):
514 let obj: [String: Any] = [
515 "low": [
516 "amount": e.low.amount,
517 "description": e.low.description,
518 ],
519 "medium": [
520 "amount": e.medium.amount,
521 "description": e.medium.description,
522 ],
523 "high": [
524 "amount": e.high.amount,
525 "description": e.high.description,
526 ],
527 ]
528 resolve(obj)
529 case .failure(let error):
530 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
531 reject(String(error.code.rawValue), error.message, e)
532 }
533 }
534 }
535
536 @objc public func getBalances(_ addresses: NSArray, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
537 var queryAddresses = [Int64:BalanceAddress]()
538 var index: Int64 = 0
539 for addr in addresses {
540 if let addrMap = addr as? NSMutableDictionary {
541 if let currency = addrMap["currency"] as? Int, let tokenAddress = addrMap["tokenAddress"] as? String, let address = addrMap["address"] as? String {
542 let v = RNBalanceAddress()
543 v.currency = Int(currency)
544 v.tokenAddress = tokenAddress
545 v.address = address
546 queryAddresses[index] = v
547 index = index + 1
548 }
549 }
550 }
551 Wallets.shared.getBalances(addresses: queryAddresses){ result in
552 switch(result) {
553 case .success(let e):
554 var allBalances = [String:Any]()
555 for (index, addr) in e.balance {
556 let dict: [String:Any] = [
557 "balance": addr.balance,
558 "tokenBalance": addr.tokenBalance,
559 "unconfirmedBalance": addr.unconfirmedBalance,
560 "tokens": addr.tokens
561 ]
562 allBalances[String(index)] = dict
563 }
564 resolve(allBalances)
565 case .failure(let error):
566 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
567 reject(String(error.code.rawValue), error.message, e)
568 }
569 }
570 }
571
572 @objc public func getHistory(_ currency: NSInteger, withTokenAddress tokenAddress: String, address walletAddress: String, from start: NSInteger, with count: NSInteger, byFilter filter: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
573 var extras = [String:Any]()
574 for (key, value) in filter {
575 if value is NSNull {
576 continue
577 }
578 if let key = key as? String {
579 if key == "direction" {
580 let v = value as! Int
581 switch v {
582 case Direction.OUT.rawValue:
583 extras["direction"] = Direction.OUT
584 break;
585 case Direction.IN.rawValue:
586 extras["direction"] = Direction.IN
587 break;
588 default: break;
589 }
590 }else{
591 extras[key] = value
592 }
593 }
594 }
595 Wallets.shared.getHistory(currency: Int(currency), tokenAddress: tokenAddress, walletAddress: walletAddress, start: Int(start), count: Int(count), filters: extras){ result in
596 switch(result) {
597 case .success(let e):
598 let dict = RNWalletSDK.toDict(e)
599 resolve(dict)
600 case .failure(let error):
601 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
602 reject(String(error.code.rawValue), error.message, e)
603 }
604 }
605 }
606
607 @objc public func callAbiFunctionRead(_ walletId: NSInteger, name: String, contractAddress: String, abiJson: String, args: NSArray, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
608 var extras = [Any](reserveCapacity: args.count)
609 for arg in args {
610 if let nsArr = arg as? NSArray{
611 var newArr = [Any](reserveCapacity: nsArr.count)
612 for e in nsArr {
613 newArr.append(e)
614 }
615 extras.append(newArr)
616 }else{
617 extras.append(arg)
618 }
619 }
620 Wallets.shared.callAbiFunctionRead(walletId: Int64(walletId), name: name, contractAddress: contractAddress, abiJson: abiJson, args: extras){result in
621 switch(result) {
622 case .success(let e):
623 let dict = RNWalletSDK.toDict(e)
624 resolve(dict)
625 case .failure(let error):
626 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
627 reject(String(error.code.rawValue), error.message, e)
628 }
629 }
630 }
631
632 @objc public func callAbiFunctionTransactionWithPinSecret(_ walletId: NSInteger, name: String, contractAddress: String, abiJson: String, args: NSArray, transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
633 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
634 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
635 return
636 }
637
638 var extras = [Any](reserveCapacity: args.count)
639 for arg in args {
640 if let nsArr = arg as? NSArray{
641 var newArr = [Any](reserveCapacity: nsArr.count)
642 for e in nsArr {
643 newArr.append(e)
644 }
645 extras.append(newArr)
646 }else{
647 extras.append(arg)
648 }
649 }
650 Wallets.shared.callAbiFunctionTransaction(walletId: Int64(walletId), name: name, contractAddress: contractAddress, abiJson: abiJson, args: extras, transactionFee: transactionFee, pinSecret: pinSecret){result in
651 switch(result) {
652 case .success(let e):
653 let dict = RNWalletSDK.toDict(e)
654 resolve(dict)
655 case .failure(let error):
656 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
657 reject(String(error.code.rawValue), error.message, e)
658 }
659 }
660 }
661
662 @objc public func callAbiFunctionTransactionSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, name: String, contractAddress: String, abiJson: String, args: NSArray, transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
663 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
664 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
665 return
666 }
667
668 var extras = [Any](reserveCapacity: args.count)
669 for arg in args {
670 if let nsArr = arg as? NSArray{
671 var newArr = [Any](reserveCapacity: nsArr.count)
672 for e in nsArr {
673 newArr.append(e)
674 }
675 extras.append(newArr)
676 }else{
677 extras.append(arg)
678 }
679 }
680 Wallets.shared.callAbiFunctionTransactionSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), name: name, contractAddress: contractAddress, abiJson: abiJson, args: extras, transactionFee: transactionFee, pinSecret: pinSecret){result in
681 switch(result) {
682 case .success(let e):
683 let dict = RNWalletSDK.toDict(e)
684 resolve(dict)
685 case .failure(let error):
686 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
687 reject(String(error.code.rawValue), error.message, e)
688 }
689 }
690 }
691
692 @objc public func callAbiFunctionTransactionBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, name: String, contractAddress: String, abiJson: String, args: NSArray, transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
693 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
694 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
695 return
696 }
697
698 var extras = [Any](reserveCapacity: args.count)
699 for arg in args {
700 if let nsArr = arg as? NSArray{
701 var newArr = [Any](reserveCapacity: nsArr.count)
702 for e in nsArr {
703 newArr.append(e)
704 }
705 extras.append(newArr)
706 }else{
707 extras.append(arg)
708 }
709 }
710 Wallets.shared.callAbiFunctionTransactionBio(promptMessage:promptMessage, walletId: Int64(walletId), name: name, contractAddress: contractAddress, abiJson: abiJson, args: extras, transactionFee: transactionFee, pinSecret: pinSecret){result in
711 switch(result) {
712 case .success(let e):
713 let dict = RNWalletSDK.toDict(e)
714 resolve(dict)
715 case .failure(let error):
716 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
717 reject(String(error.code.rawValue), error.message, e)
718 }
719 }
720 }
721
722
723
724 @objc public func callAbiFunctionTransaction(_ walletId: NSInteger, name: String, contractAddress: String, abiJson: String, args: NSArray,transactionFee: String, byPinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
725 var extras = [Any](reserveCapacity: args.count)
726 for arg in args {
727 if let nsArr = arg as? NSArray{
728 var newArr = [Any](reserveCapacity: nsArr.count)
729 for e in nsArr {
730 newArr.append(e)
731 }
732 extras.append(newArr)
733 }else{
734 extras.append(arg)
735 }
736 }
737 Wallets.shared.callAbiFunctionTransaction(walletId: Int64(walletId), name: name, contractAddress: contractAddress, abiJson: abiJson, args: extras, transactionFee: transactionFee, pinCode: byPinCode){result in
738 switch(result) {
739 case .success(let e):
740 let dict = RNWalletSDK.toDict(e)
741 resolve(dict)
742 case .failure(let error):
743 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
744 reject(String(error.code.rawValue), error.message, e)
745 }
746 }
747 }
748
749 @objc public func callAbiFunction(_ walletId: NSInteger, function name: String, with inputs: NSDictionary, by pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
750 var extras = [String:Any]()
751 for (key, value) in inputs {
752 if let key = key as? String {
753 extras[key] = value
754 }
755 }
756
757 Wallets.shared.callAbiFunction(walletId: Int64(walletId), name: name, inputs: extras, pinCode: pinCode){result in
758 switch(result) {
759 case .success(let e):
760 let dict = RNWalletSDK.toDict(e)
761 resolve(dict)
762 case .failure(let error):
763 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
764 reject(String(error.code.rawValue), error.message, e)
765 }
766 }
767 }
768
769 @objc public func callAbiFunctionWithPinSecret(_ walletId: NSInteger, function name: String, with inputs: NSDictionary, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
770 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
771 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
772 return
773 }
774
775 var extras = [String:Any]()
776 for (key, value) in inputs {
777 if let key = key as? String {
778 extras[key] = value
779 }
780 }
781
782 Wallets.shared.callAbiFunction(walletId: Int64(walletId), name: name, inputs: extras, pinSecret: pinSecret){result in
783 switch(result) {
784 case .success(let e):
785 let dict = RNWalletSDK.toDict(e)
786 resolve(dict)
787 case .failure(let error):
788 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
789 reject(String(error.code.rawValue), error.message, e)
790 }
791 }
792 }
793
794 @objc public func callAbiFunctionSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, function name: String, with inputs: NSDictionary, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
795 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
796 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
797 return
798 }
799
800 var extras = [String:Any]()
801 for (key, value) in inputs {
802 if let key = key as? String {
803 extras[key] = value
804 }
805 }
806
807 Wallets.shared.callAbiFunctionSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), name: name, inputs: extras, pinSecret: pinSecret){result in
808 switch(result) {
809 case .success(let e):
810 let dict = RNWalletSDK.toDict(e)
811 resolve(dict)
812 case .failure(let error):
813 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
814 reject(String(error.code.rawValue), error.message, e)
815 }
816 }
817 }
818
819 @objc public func callAbiFunctionBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, function name: String, with inputs: NSDictionary, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
820 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
821 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
822 return
823 }
824
825 var extras = [String:Any]()
826 for (key, value) in inputs {
827 if let key = key as? String {
828 extras[key] = value
829 }
830 }
831
832 Wallets.shared.callAbiFunctionBio(promptMessage:promptMessage, walletId: Int64(walletId), name: name, inputs: extras, pinSecret: pinSecret){result in
833 switch(result) {
834 case .success(let e):
835 let dict = RNWalletSDK.toDict(e)
836 resolve(dict)
837 case .failure(let error):
838 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
839 reject(String(error.code.rawValue), error.message, e)
840 }
841 }
842 }
843 @objc public func getTransactionInfo(_ currency: NSInteger, with txid: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
844 Wallets.shared.getTransactionInfo(currency: currency, txid: txid){result in
845 switch(result) {
846 case .success(let e):
847 let dict = RNWalletSDK.toDict(e)
848 resolve(dict)
849 case .failure(let error):
850 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
851 reject(String(error.code.rawValue), error.message, e)
852 }
853 }
854 }
855
856 @objc public func validateEosAccount(_ accountName: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
857 Wallets.shared.getEosAccountValid(accountName: accountName){ result in
858 switch(result) {
859 case .success(let e):
860 let dict = RNWalletSDK.toDict(e)
861 resolve(dict)
862 case .failure(let error):
863 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
864 reject(String(error.code.rawValue), error.message, e)
865 }
866 }
867 }
868
869 @objc public func getEosRamPrice(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
870 Wallets.shared.getEosRamPrice(){ result in
871 switch(result) {
872 case .success(let e):
873 let dict = RNWalletSDK.toDict(e)
874 resolve(dict)
875 case .failure(let error):
876 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
877 reject(String(error.code.rawValue), error.message, e)
878 }
879 }
880 }
881
882 @objc public func getEosResourceState(_ accountName: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
883 Wallets.shared.getEosResourceState(accountName: accountName){ result in
884 switch(result) {
885 case .success(let e):
886 let dict = RNWalletSDK.toDict(e)
887 resolve(dict)
888 case .failure(let error):
889 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
890 reject(String(error.code.rawValue), error.message, e)
891 }
892 }
893 }
894
895 @objc public func getTransactionsInfo(_ currency: NSInteger, txids inputs: NSArray, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
896 var txids = [String]()
897 for v in inputs {
898 if let v = v as? String {
899 txids.append(v)
900 }
901 }
902 Wallets.shared.getTransactionsInfo(currency: Int64(currency), txids: txids){ result in
903 switch(result) {
904 case .success(let e):
905 let dict = RNWalletSDK.toDict(e)
906 resolve(dict)
907 case .failure(let error):
908 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
909 reject(String(error.code.rawValue), error.message, e)
910 }
911 }
912 }
913
914 @objc public func signRawTx(_ walletId: NSInteger, rawTx rawTx: String, pinCode pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
915 Wallets.shared.signRawTx(walletId: Int64(walletId), rawTx: rawTx, pinCode: pinCode){ result in
916 switch(result) {
917 case .success(let e):
918 let dict = RNWalletSDK.toDict(e)
919 resolve(dict)
920 case .failure(let error):
921 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
922 reject(String(error.code.rawValue), error.name, e)
923 }
924 }
925 }
926
927 @objc public func signRawTxWithPinSecret(_ walletId: NSInteger, rawTx rawTx: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
928 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
929 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
930 return
931 }
932 Wallets.shared.signRawTx(walletId: Int64(walletId), rawTx: rawTx, pinSecret: pinSecret){ result in
933 switch(result) {
934 case .success(let e):
935 let dict = RNWalletSDK.toDict(e)
936 resolve(dict)
937 case .failure(let error):
938 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
939 reject(String(error.code.rawValue), error.name, e)
940 }
941 }
942 }
943
944 @objc public func signRawTxSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, rawTx rawTx: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
945 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
946 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
947 return
948 }
949 Wallets.shared.signRawTxSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), rawTx: rawTx, pinSecret: pinSecret){ result in
950 switch(result) {
951 case .success(let e):
952 let dict = RNWalletSDK.toDict(e)
953 resolve(dict)
954 case .failure(let error):
955 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
956 reject(String(error.code.rawValue), error.name, e)
957 }
958 }
959 }
960
961 @objc public func signRawTxBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, rawTx rawTx: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
962 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
963 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
964 return
965 }
966 Wallets.shared.signRawTxBio(promptMessage:promptMessage, walletId: Int64(walletId), rawTx: rawTx, pinSecret: pinSecret){ result in
967 switch(result) {
968 case .success(let e):
969 let dict = RNWalletSDK.toDict(e)
970 resolve(dict)
971 case .failure(let error):
972 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
973 reject(String(error.code.rawValue), error.name, e)
974 }
975 }
976 }
977
978 @objc public func sendSignedTx(_ walletId: NSInteger, signedTx signedTx: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
979 Wallets.shared.sendSignedTx(walletId: Int64(walletId), signedTx: signedTx){ result in
980 switch(result) {
981 case .success(let e):
982 let dict = RNWalletSDK.toDict(e)
983 resolve(dict)
984 case .failure(let error):
985 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
986 reject(String(error.code.rawValue), error.name, e)
987 }
988 }
989 }
990
991 @objc public func estimateTransaction(_ currency: NSInteger, tokenAddress tokenAddress: String, amount amount: String, transactionFee transactionFee: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
992 Wallets.shared.estimateTransaction(currency: Int(currency), tokenAddress: tokenAddress, amount: amount, transactionFee: transactionFee){ result in
993 switch(result) {
994 case .success(let e):
995 let dict = RNWalletSDK.toDict(e)
996 resolve(dict)
997 case .failure(let error):
998 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
999 reject(String(error.code.rawValue), error.name, e)
1000 }
1001 }
1002 }
1003
1004 @objc public func estimateTransactionWithId(_ currency: NSInteger, tokenAddress tokenAddress: String, amount amount: String, transactionFee transactionFee: String, walletId: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1005 Wallets.shared.estimateTransaction(currency: Int(currency), tokenAddress: tokenAddress, amount: amount, transactionFee: transactionFee, walletId: Int64(walletId)){ result in
1006 switch(result) {
1007 case .success(let e):
1008 let dict = RNWalletSDK.toDict(e)
1009 resolve(dict)
1010 case .failure(let error):
1011 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1012 reject(String(error.code.rawValue), error.name, e)
1013 }
1014 }
1015 }
1016
1017 @objc public func signMessage(_ walletId: NSInteger, message: String, pinCode: String, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1018 var dictExtras = [String:Any]()
1019 for (key, value) in extras {
1020 if value is NSNull {
1021 continue
1022 }
1023 if let key = key as? String {
1024 dictExtras[key] = value
1025 }
1026 }
1027
1028 Wallets.shared.signMessage(walletId: Int64(walletId), message: message, pinCode: pinCode, extras: dictExtras){ result in
1029 switch(result) {
1030 case .success(let e):
1031 let dict = RNWalletSDK.toDict(e)
1032 resolve(dict)
1033 case .failure(let error):
1034 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1035 reject(String(error.code.rawValue), error.name, e)
1036 }
1037 }
1038 }
1039
1040 @objc public func signMessageWithPinSecret(_ walletId: NSInteger, message: String, byPinSecret: NSDictionary, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1041 var dictExtras = [String:Any]()
1042 for (key, value) in extras {
1043 if value is NSNull {
1044 continue
1045 }
1046 if let key = key as? String {
1047 dictExtras[key] = value
1048 }
1049 }
1050
1051 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1052 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1053 return
1054 }
1055 Wallets.shared.signMessage(walletId: Int64(walletId), message: message, pinSecret: pinSecret, extras: dictExtras){ result in
1056 switch(result) {
1057 case .success(let e):
1058 let dict = RNWalletSDK.toDict(e)
1059 resolve(dict)
1060 case .failure(let error):
1061 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1062 reject(String(error.code.rawValue), error.name, e)
1063 }
1064 }
1065 }
1066
1067 @objc public func signMessageSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, message: String, byPinSecret: NSDictionary, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1068 var dictExtras = [String:Any]()
1069 for (key, value) in extras {
1070 if value is NSNull {
1071 continue
1072 }
1073 if let key = key as? String {
1074 dictExtras[key] = value
1075 }
1076 }
1077
1078 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1079 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1080 return
1081 }
1082 Wallets.shared.signMessageSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), message: message, pinSecret: pinSecret, extras: dictExtras){ result in
1083 switch(result) {
1084 case .success(let e):
1085 let dict = RNWalletSDK.toDict(e)
1086 resolve(dict)
1087 case .failure(let error):
1088 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1089 reject(String(error.code.rawValue), error.name, e)
1090 }
1091 }
1092 }
1093
1094 @objc public func signMessageBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, message: String, byPinSecret: NSDictionary, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1095 var dictExtras = [String:Any]()
1096 for (key, value) in extras {
1097 if value is NSNull {
1098 continue
1099 }
1100 if let key = key as? String {
1101 dictExtras[key] = value
1102 }
1103 }
1104
1105 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1106 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1107 return
1108 }
1109 Wallets.shared.signMessageBio(promptMessage:promptMessage, walletId: Int64(walletId), message: message, pinSecret: pinSecret, extras: dictExtras){ result in
1110 switch(result) {
1111 case .success(let e):
1112 let dict = RNWalletSDK.toDict(e)
1113 resolve(dict)
1114 case .failure(let error):
1115 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1116 reject(String(error.code.rawValue), error.name, e)
1117 }
1118 }
1119 }
1120
1121 @objc public func getCurrencyPrices(_ wallets: NSArray, exchangeCurrencies: NSArray, approximateRates: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1122 let ws = wallets as! [[String : Any]]
1123 let es = exchangeCurrencies as! [String]
1124 var dictExtras = [String: [String: Double]]()
1125 for (key, value) in approximateRates {
1126 if value is NSNull {
1127 continue
1128 }
1129 if let key = key as? String, let value = value as? [String: Double] {
1130 dictExtras[key] = value
1131 }
1132 }
1133 Wallets.shared.getCurrencyPrices(wallets: ws ,exchangeCurrencies: es, approximateRates: dictExtras){ result in
1134 switch(result) {
1135 case .success(let e):
1136 resolve(e)
1137 case .failure(let error):
1138 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1139 reject(String(error.code.rawValue), error.message, e)
1140 }
1141 }
1142 }
1143
1144 @objc public func queryCoinType(_ address: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1145 Wallets.shared.queryCoinType(address: address){ result in
1146 switch(result) {
1147 case .success(let e):
1148 let dict = RNWalletSDK.toDict(e.coinItems)
1149 let newdict: [String: Any] = [
1150 "coinItems": dict,
1151 ]
1152 resolve(newdict)
1153 case .failure(let error):
1154 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1155 reject(String(error.code.rawValue), error.message, e)
1156 }
1157 }
1158 }
1159
1160 @objc public func walletConnectSignTypedData(_ walletId: NSInteger, typedData typedData: String, pinCode pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1161 Wallets.shared.walletConnectSignTypedData(walletId: Int64(walletId), typedData: typedData, pinCode: pinCode){ result in
1162 switch(result) {
1163 case .success(let e):
1164 let dict = RNWalletSDK.toDict(e)
1165 resolve(dict)
1166 case .failure(let error):
1167 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1168 reject(String(error.code.rawValue), error.name, e)
1169 }
1170 }
1171 }
1172
1173 @objc public func walletConnectSignTypedDataWithPinSecret(_ walletId: NSInteger, typedData typedData: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1174 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1175 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1176 return
1177 }
1178 Wallets.shared.walletConnectSignTypedData(walletId: Int64(walletId), typedData: typedData, pinSecret: pinSecret){ result in
1179 switch(result) {
1180 case .success(let e):
1181 let dict = RNWalletSDK.toDict(e)
1182 resolve(dict)
1183 case .failure(let error):
1184 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1185 reject(String(error.code.rawValue), error.name, e)
1186 }
1187 }
1188 }
1189
1190 @objc public func walletConnectSignTypedDataSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, typedData typedData: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1191 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1192 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1193 return
1194 }
1195 Wallets.shared.walletConnectSignTypedDataSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), typedData: typedData, pinSecret: pinSecret){ result in
1196 switch(result) {
1197 case .success(let e):
1198 let dict = RNWalletSDK.toDict(e)
1199 resolve(dict)
1200 case .failure(let error):
1201 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1202 reject(String(error.code.rawValue), error.name, e)
1203 }
1204 }
1205 }
1206
1207 @objc public func walletConnectSignTypedDataBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, typedData typedData: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1208 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1209 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1210 return
1211 }
1212 Wallets.shared.walletConnectSignTypedDataBio(promptMessage:promptMessage, walletId: Int64(walletId), typedData: typedData, pinSecret: pinSecret){ result in
1213 switch(result) {
1214 case .success(let e):
1215 let dict = RNWalletSDK.toDict(e)
1216 resolve(dict)
1217 case .failure(let error):
1218 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1219 reject(String(error.code.rawValue), error.name, e)
1220 }
1221 }
1222 }
1223
1224 @objc public func walletConnectSignTransaction(_ walletId: NSInteger, signParams signParams: String, pinCode pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1225 Wallets.shared.walletConnectSignTransaction(walletId: Int64(walletId), signParams: signParams, pinCode: pinCode){ result in
1226 switch(result) {
1227 case .success(let e):
1228 let dict = RNWalletSDK.toDict(e)
1229 resolve(dict)
1230 case .failure(let error):
1231 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1232 reject(String(error.code.rawValue), error.name, e)
1233 }
1234 }
1235 }
1236
1237 @objc public func walletConnectSignTransactionWithPinSecret(_ walletId: NSInteger, signParams signParams: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1238 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1239 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1240 return
1241 }
1242 Wallets.shared.walletConnectSignTransaction(walletId: Int64(walletId), signParams: signParams, pinSecret: pinSecret){ result in
1243 switch(result) {
1244 case .success(let e):
1245 let dict = RNWalletSDK.toDict(e)
1246 resolve(dict)
1247 case .failure(let error):
1248 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1249 reject(String(error.code.rawValue), error.name, e)
1250 }
1251 }
1252 }
1253
1254 @objc public func walletConnectSignTransactionSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, signParams signParams: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1255 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1256 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1257 return
1258 }
1259 Wallets.shared.walletConnectSignTransactionSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), signParams: signParams, pinSecret: pinSecret){ result in
1260 switch(result) {
1261 case .success(let e):
1262 let dict = RNWalletSDK.toDict(e)
1263 resolve(dict)
1264 case .failure(let error):
1265 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1266 reject(String(error.code.rawValue), error.name, e)
1267 }
1268 }
1269 }
1270
1271 @objc public func walletConnectSignTransactionBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, signParams signParams: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1272 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1273 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1274 return
1275 }
1276 Wallets.shared.walletConnectSignTransactionBio(promptMessage:promptMessage, walletId: Int64(walletId), signParams: signParams, pinSecret: pinSecret){ result in
1277 switch(result) {
1278 case .success(let e):
1279 let dict = RNWalletSDK.toDict(e)
1280 resolve(dict)
1281 case .failure(let error):
1282 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1283 reject(String(error.code.rawValue), error.name, e)
1284 }
1285 }
1286 }
1287
1288 @objc public func walletConnectSignMessage(_ walletId: NSInteger, message: String, pinCode: String, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1289 var dictExtras = [String:Any]()
1290 for (key, value) in extras {
1291 if value is NSNull {
1292 continue
1293 }
1294 if let key = key as? String {
1295 dictExtras[key] = value
1296 }
1297 }
1298
1299 Wallets.shared.walletConnectSignMessage(walletId: Int64(walletId), message: message, pinCode: pinCode, extras: dictExtras){ result in
1300 switch(result) {
1301 case .success(let e):
1302 let dict = RNWalletSDK.toDict(e)
1303 resolve(dict)
1304 case .failure(let error):
1305 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1306 reject(String(error.code.rawValue), error.name, e)
1307 }
1308 }
1309 }
1310
1311 @objc public func walletConnectSignMessageWithPinSecret(_ walletId: NSInteger, message: String, byPinSecret: NSDictionary, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1312 var dictExtras = [String:Any]()
1313 for (key, value) in extras {
1314 if value is NSNull {
1315 continue
1316 }
1317 if let key = key as? String {
1318 dictExtras[key] = value
1319 }
1320 }
1321
1322 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1323 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1324 return
1325 }
1326 Wallets.shared.walletConnectSignMessage(walletId: Int64(walletId), message: message, pinSecret: pinSecret, extras: dictExtras){ result in
1327 switch(result) {
1328 case .success(let e):
1329 let dict = RNWalletSDK.toDict(e)
1330 resolve(dict)
1331 case .failure(let error):
1332 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1333 reject(String(error.code.rawValue), error.name, e)
1334 }
1335 }
1336 }
1337
1338 @objc public func walletConnectSignMessageSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, message: String, byPinSecret: NSDictionary, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1339 var dictExtras = [String:Any]()
1340 for (key, value) in extras {
1341 if value is NSNull {
1342 continue
1343 }
1344 if let key = key as? String {
1345 dictExtras[key] = value
1346 }
1347 }
1348
1349 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1350 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1351 return
1352 }
1353 Wallets.shared.walletConnectSignMessageSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), message: message, pinSecret: pinSecret, extras: dictExtras){ result in
1354 switch(result) {
1355 case .success(let e):
1356 let dict = RNWalletSDK.toDict(e)
1357 resolve(dict)
1358 case .failure(let error):
1359 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1360 reject(String(error.code.rawValue), error.name, e)
1361 }
1362 }
1363 }
1364
1365 @objc public func walletConnectSignMessageBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, message: String, byPinSecret: NSDictionary, extras: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1366 var dictExtras = [String:Any]()
1367 for (key, value) in extras {
1368 if value is NSNull {
1369 continue
1370 }
1371 if let key = key as? String {
1372 dictExtras[key] = value
1373 }
1374 }
1375
1376 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1377 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1378 return
1379 }
1380 Wallets.shared.walletConnectSignMessageBio(promptMessage:promptMessage, walletId: Int64(walletId), message: message, pinSecret: pinSecret, extras: dictExtras){ result in
1381 switch(result) {
1382 case .success(let e):
1383 let dict = RNWalletSDK.toDict(e)
1384 resolve(dict)
1385 case .failure(let error):
1386 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1387 reject(String(error.code.rawValue), error.name, e)
1388 }
1389 }
1390 }
1391
1392 @objc public func walletConnectSendSignedTransaction(_ walletId: NSInteger, signedTx signedTx: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1393 Wallets.shared.walletConnectSendSignedTransaction(walletId: Int64(walletId), signedTx: signedTx){ result in
1394 switch(result) {
1395 case .success(let e):
1396 let dict = RNWalletSDK.toDict(e)
1397 resolve(dict)
1398 case .failure(let error):
1399 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1400 reject(String(error.code.rawValue), error.name, e)
1401 }
1402 }
1403 }
1404
1405 @objc public func getWalletConnectApiHistory(_ walletId: NSInteger, from start: NSInteger, with count: NSInteger, byFilter filter: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1406 var extras = [String:Any]()
1407 for (key, value) in filter {
1408 if value is NSNull {
1409 continue
1410 }
1411 if let key = key as? String {
1412 if key == "direction" {
1413 let v = value as! Int
1414 switch v {
1415 case Direction.OUT.rawValue:
1416 extras["direction"] = Direction.OUT
1417 break;
1418 case Direction.IN.rawValue:
1419 extras["direction"] = Direction.IN
1420 break;
1421 default: break;
1422 }
1423 }else{
1424 extras[key] = value
1425 }
1426 }
1427 }
1428 Wallets.shared.getWalletConnectApiHistory(walletId: Int64(walletId), start: Int(start), count: Int(count), filters: extras){ result in
1429 switch(result) {
1430 case .success(let e):
1431 let dict = RNWalletSDK.toDictHasNil(e)
1432 resolve(dict)
1433 case .failure(let error):
1434 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1435 reject(String(error.code.rawValue), error.message, e)
1436 }
1437 }
1438 }
1439
1440 @objc public func walletConnectSync(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1441 Wallets.shared.walletConnectSync(){ result in
1442 switch(result) {
1443 case .success(let e):
1444 let dict = RNWalletSDK.toDict(e)
1445 resolve(dict)
1446 case .failure(let error):
1447 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1448 reject(String(error.code.rawValue), error.message, e)
1449 }
1450 }
1451 }
1452
1453 @objc public func getNonce(_ walletId: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1454 Wallets.shared.getNonce(walletId: Int64(walletId)){ result in
1455 switch(result) {
1456 case .success(let e):
1457 let dict = RNWalletSDK.toDict(e)
1458 resolve(dict)
1459 case .failure(let error):
1460 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1461 reject(String(error.code.rawValue), error.message, e)
1462 }
1463 }
1464 }
1465
1466 @objc public func cancelWalletConnectTransactionWithPinSecret(_ walletId: NSInteger, accessId accessId: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1467 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1468 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1469 return
1470 }
1471 Wallets.shared.cancelWalletConnectTransaction(walletId: Int64(walletId), accessId: accessId, transactionFee: transactionFee, pinSecret: pinSecret){ result in
1472 switch(result) {
1473 case .success(let e):
1474 let dict = RNWalletSDK.toDict(e)
1475 resolve(dict)
1476 case .failure(let error):
1477 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1478 reject(String(error.code.rawValue), error.message, e)
1479 }
1480 }
1481 }
1482
1483 @objc public func cancelWalletConnectTransactionSmsWithPinSecret(_ actionToken: String, smsCode: String, walletId: NSInteger, accessId accessId: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1484 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1485 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1486 return
1487 }
1488 Wallets.shared.cancelWalletConnectTransactionSms(actionToken:actionToken, smsCode:smsCode, walletId: Int64(walletId), accessId: accessId, transactionFee: transactionFee, pinSecret: pinSecret){ result in
1489 switch(result) {
1490 case .success(let e):
1491 let dict = RNWalletSDK.toDict(e)
1492 resolve(dict)
1493 case .failure(let error):
1494 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1495 reject(String(error.code.rawValue), error.message, e)
1496 }
1497 }
1498 }
1499
1500 @objc public func cancelWalletConnectTransactionBioWithPinSecret(_ promptMessage: String, walletId: NSInteger, accessId accessId: String, withFee transactionFee: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1501 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1502 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1503 return
1504 }
1505 Wallets.shared.cancelWalletConnectTransactionBio(promptMessage:promptMessage, walletId: Int64(walletId), accessId: accessId, transactionFee: transactionFee, pinSecret: pinSecret){ result in
1506 switch(result) {
1507 case .success(let e):
1508 let dict = RNWalletSDK.toDict(e)
1509 resolve(dict)
1510 case .failure(let error):
1511 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1512 reject(String(error.code.rawValue), error.message, e)
1513 }
1514 }
1515 }
1516
1517
1518 @objc public func cancelWalletConnectTransactionWithPinCode(_ walletId: NSInteger, accessId accessId: String, withFee transactionFee: String, withDesc description: String, byPIN pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1519 Wallets.shared.cancelWalletConnectTransaction(walletId: Int64(walletId), accessId: accessId, transactionFee: transactionFee, pinCode: pinCode){ result in
1520 switch(result) {
1521 case .success(let e):
1522 let dict = RNWalletSDK.toDict(e)
1523 resolve(dict)
1524 case .failure(let error):
1525 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1526 reject(String(error.code.rawValue), error.message, e)
1527 }
1528 }
1529 }
1530
1531 @objc public func updateDeviceInfoWithType(_ type: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1532 Wallets.shared.updateDeviceInfo(type: Int(type)){ result in
1533 switch(result) {
1534 case .success(let e):
1535 let dict = RNWalletSDK.toDict(e)
1536 resolve(dict)
1537 case .failure(let error):
1538 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1539 reject(String(error.code.rawValue), error.message, e)
1540 }
1541 }
1542 }
1543
1544 @objc public func updateDeviceInfo(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1545 Wallets.shared.updateDeviceInfo(type: nil){ result in
1546 switch(result) {
1547 case .success(let e):
1548 let dict = RNWalletSDK.toDict(e)
1549 resolve(dict)
1550 case .failure(let error):
1551 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1552 reject(String(error.code.rawValue), error.message, e)
1553 }
1554 }
1555 }
1556
1557 @objc public func getTransactionSmsCode(_ duration: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1558 Wallets.shared.getTransactionSmsCode(duration: Int64(duration)){ result in
1559 switch(result) {
1560 case .success(let e):
1561 let dict = RNWalletSDK.toDict(e)
1562 resolve(dict)
1563 case .failure(let error):
1564 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1565 reject(String(error.code.rawValue), error.message, e)
1566 }
1567 }
1568 }
1569
1570 @objc public func getLoginSmsCode(_ duration: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1571 Wallets.shared.getLoginSmsCode(duration: Int64(duration)){ result in
1572 switch(result) {
1573 case .success(let e):
1574 let dict = RNWalletSDK.toDict(e)
1575 resolve(dict)
1576 case .failure(let error):
1577 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1578 reject(String(error.code.rawValue), error.message, e)
1579 }
1580 }
1581 }
1582
1583 @objc public func getSmsCode(_ type: NSInteger, duration: NSInteger, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1584 Wallets.shared.getSmsCode(otpType: Int(type), duration: Int64(duration)){ result in
1585 switch(result) {
1586 case .success(let e):
1587 let dict = RNWalletSDK.toDict(e)
1588 resolve(dict)
1589 case .failure(let error):
1590 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1591 reject(String(error.code.rawValue), error.message, e)
1592 }
1593 }
1594 }
1595
1596 @objc public func registerPubkey(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1597 Wallets.shared.registerPubkey(){ result in
1598 switch(result) {
1599 case .success(let e):
1600 let dict = RNWalletSDK.toDict(e)
1601 resolve(dict)
1602 case .failure(let error):
1603 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1604 reject(String(error.code.rawValue), error.message, e)
1605 }
1606 }
1607 }
1608
1609 @objc public func getBiometricsType(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1610 let type = Wallets.shared.getBiometricsType()
1611 let newdict: [String: Any] = [
1612 "biometricsType": type.rawValue,
1613 ]
1614 resolve(newdict)
1615 }
1616
1617 @objc public func isBioKeyExist(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1618 let exist = Wallets.shared.isBioKeyExist()
1619 let newdict: [String: Any] = [
1620 "exist": exist,
1621 ]
1622 resolve(newdict)
1623 }
1624
1625 @objc public func getSignedActionToken(_ promptMessage: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1626 Wallets.shared.getSignedActionToken(promptMessage: promptMessage){ result in
1627 switch(result) {
1628 case .success(let e):
1629 let dict = RNWalletSDK.toDict(e)
1630 resolve(dict)
1631 case .failure(let error):
1632 let e = NSError(domain: error.message, code: error.code.rawValue, userInfo: nil)
1633 reject(String(error.code.rawValue), error.name, e)
1634 }
1635 }
1636 }
1637
1638 @objc public func getActionToken(_ resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1639 Wallets.shared.getActionToken(){ result in
1640 switch(result) {
1641 case .success(let e):
1642 let dict = RNWalletSDK.toDict(e)
1643 resolve(dict)
1644 case .failure(let error):
1645 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1646 reject(String(error.code.rawValue), error.message, e)
1647 }
1648 }
1649 }
1650
1651 @objc public func addContractCurrencyWithPinSecret(_ currency: NSInteger, contractAddress: String, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1652 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1653 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1654 return
1655 }
1656 Wallets.shared.addContractCurrency(currency: Int64(currency), contractAddress: contractAddress, pinSecret: pinSecret){ result in
1657 switch(result) {
1658 case .success(let e):
1659 let dict = RNWalletSDK.toDict(e)
1660 resolve(dict)
1661 case .failure(let error):
1662 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1663 reject(String(error.code.rawValue), error.message, e)
1664 }
1665 }
1666 }
1667
1668 @objc public func addContractCurrenciesWithPinSecret(_ currency: NSArray, contractAddress: NSArray, byPinSecret: NSDictionary, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1669 guard let pinSecret = PinSecretBridge.fromDictionary(dict: byPinSecret) else{
1670 reject("0", "PinSecret not found", NSError(domain: "", code: 0, userInfo: nil))
1671 return
1672 }
1673 let currencyArr = currency as! [Int64]
1674 let contractAddressArr = contractAddress as! [String]
1675 Wallets.shared.addContractCurrencies(currency: currencyArr, contractAddress: contractAddressArr, pinSecret: pinSecret){ result in
1676 switch(result) {
1677 case .success(let e):
1678 let dict = RNWalletSDK.toDict(e)
1679 resolve(dict)
1680 case .failure(let error):
1681 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1682 reject(String(error.code.rawValue), error.message, e)
1683 }
1684 }
1685 }
1686
1687 @objc public func addContractCurrency(_ currency: NSInteger, contractAddress: String, byPIN pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1688 Wallets.shared.addContractCurrency(currency: Int64(currency), contractAddress: contractAddress, pinCode: pinCode){ result in
1689 switch(result) {
1690 case .success(let e):
1691 let dict = RNWalletSDK.toDict(e)
1692 resolve(dict)
1693 case .failure(let error):
1694 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1695 reject(String(error.code.rawValue), error.message, e)
1696 }
1697 }
1698 }
1699
1700 @objc public func addContractCurrencies(_ currency: NSArray, contractAddress: NSArray, byPIN pinCode: String, resolver resolve: @escaping RCTPromiseResolveBlock, rejecter reject: @escaping RCTPromiseRejectBlock){
1701 let currencyArr = currency as! [Int64]
1702 let contractAddressArr = contractAddress as! [String]
1703 Wallets.shared.addContractCurrencies(currency: currencyArr, contractAddress: contractAddressArr, pinCode: pinCode){ result in
1704 switch(result) {
1705 case .success(let e):
1706 let dict = RNWalletSDK.toDict(e)
1707 resolve(dict)
1708 case .failure(let error):
1709 let e = NSError(domain: "", code: error.code.rawValue, userInfo: nil)
1710 reject(String(error.code.rawValue), error.message, e)
1711 }
1712 }
1713 }
1714}
1715
1716extension RNWallets {
1717 @objc static func requiresMainQueueSetup() -> Bool {
1718 return true
1719 }
1720 @objc func constantsToExport() -> [AnyHashable : Any]! {
1721 var constants = [AnyHashable : Any]()
1722 //Wallet
1723 var walletType = [String : Any]()
1724 for type in WalletType.allCases {
1725 walletType[type.name] = type.rawValue
1726 }
1727 var wallet = [String : Any]()
1728 wallet["Type"] = walletType
1729 constants["Wallet"] = wallet
1730
1731 //Transaction
1732 var transactionDirection = [String : Any]()
1733 for dir in Direction.allCases {
1734 transactionDirection[dir.name] = dir.rawValue
1735 }
1736
1737 var transaction = [String : Any]()
1738 transaction["Direction"] = transactionDirection
1739 constants["Transaction"] = transaction
1740
1741 //EosResourceTransactionType
1742 var eosResourceTransactionType = [String : Any]()
1743 for type in EosResourceTransactionType.allCases {
1744 eosResourceTransactionType[type.name] = type.rawValue
1745 }
1746 constants["EosResourceTransactionType"] = eosResourceTransactionType
1747
1748 //ApiHistoryItem.Status
1749 var status = [String : Any]()
1750 for dir in Status.allCases {
1751 status[dir.name] = dir.rawValue
1752 }
1753
1754 var apiHistoryItem = [String : Any]()
1755 apiHistoryItem["Status"] = status
1756 constants["ApiHistoryItem"] = apiHistoryItem
1757
1758 var otpType = [String : Any]()
1759 for type in OtpType.allCases {
1760 otpType[type.name] = type.rawValue
1761 }
1762 constants["OtpType"] = otpType
1763
1764 var biometryType = [String : Any]()
1765 for type in BiometryType.allCases {
1766 biometryType[type.name] = type.rawValue
1767 }
1768 constants["BiometricsType"] = biometryType
1769 return constants
1770 }
1771}
1772