react-native-rgb 0.2.0
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/LICENSE +20 -0
- package/README.md +165 -0
- package/Rgb.podspec +23 -0
- package/android/build.gradle +80 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +2 -0
- package/android/src/main/java/com/rgb/AppConstants.kt +57 -0
- package/android/src/main/java/com/rgb/RgbModule.kt +1959 -0
- package/android/src/main/java/com/rgb/RgbPackage.kt +33 -0
- package/android/src/main/java/com/rgb/WalletStore.kt +49 -0
- package/ios/AppConstants.swift +71 -0
- package/ios/Rgb.h +5 -0
- package/ios/Rgb.mm +1740 -0
- package/ios/Rgb.swift +1916 -0
- package/ios/RgbLib.swift +7615 -0
- package/ios/WalletStore.swift +61 -0
- package/lib/module/Interfaces.js +65 -0
- package/lib/module/Interfaces.js.map +1 -0
- package/lib/module/NativeRgb.js +5 -0
- package/lib/module/NativeRgb.js.map +1 -0
- package/lib/module/RgbError.js +65 -0
- package/lib/module/RgbError.js.map +1 -0
- package/lib/module/Wallet.js +854 -0
- package/lib/module/Wallet.js.map +1 -0
- package/lib/module/index.js +39 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/typescript/package.json +1 -0
- package/lib/typescript/src/Interfaces.d.ts +390 -0
- package/lib/typescript/src/Interfaces.d.ts.map +1 -0
- package/lib/typescript/src/NativeRgb.d.ts +417 -0
- package/lib/typescript/src/NativeRgb.d.ts.map +1 -0
- package/lib/typescript/src/RgbError.d.ts +28 -0
- package/lib/typescript/src/RgbError.d.ts.map +1 -0
- package/lib/typescript/src/Wallet.d.ts +648 -0
- package/lib/typescript/src/Wallet.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +28 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/package.json +174 -0
- package/src/Interfaces.ts +376 -0
- package/src/NativeRgb.ts +630 -0
- package/src/RgbError.ts +84 -0
- package/src/Wallet.ts +1118 -0
- package/src/index.tsx +46 -0
package/ios/Rgb.mm
ADDED
|
@@ -0,0 +1,1740 @@
|
|
|
1
|
+
#import "Rgb.h"
|
|
2
|
+
|
|
3
|
+
// Forward declaration for Swift class
|
|
4
|
+
@class RgbSwiftHelper;
|
|
5
|
+
|
|
6
|
+
// Import Swift bridging header - CocoaPods will generate this automatically
|
|
7
|
+
// The header name follows the pattern: <PodName>-Swift.h
|
|
8
|
+
#if __has_include(<Rgb/Rgb-Swift.h>)
|
|
9
|
+
#import <Rgb/Rgb-Swift.h>
|
|
10
|
+
#elif __has_include("Rgb-Swift.h")
|
|
11
|
+
#import "Rgb-Swift.h"
|
|
12
|
+
#else
|
|
13
|
+
// If bridging header is not found, we'll use runtime class lookup
|
|
14
|
+
#endif
|
|
15
|
+
|
|
16
|
+
// Macro to execute work on a background thread and catch Objective-C exceptions
|
|
17
|
+
#define EXEC_ASYNC(methodBlock) \
|
|
18
|
+
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{ \
|
|
19
|
+
@try { methodBlock } \
|
|
20
|
+
@catch (NSException *exception) { \
|
|
21
|
+
NSLog(@"Exception in async block: %@", exception.reason ?: @"Unknown error"); \
|
|
22
|
+
} \
|
|
23
|
+
});
|
|
24
|
+
|
|
25
|
+
@implementation Rgb
|
|
26
|
+
|
|
27
|
+
// Helpers to ensure promise resolution/rejection happen on the main thread
|
|
28
|
+
- (void)resolvePromise:(RCTPromiseResolveBlock)resolve withResult:(id)result {
|
|
29
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
30
|
+
if (resolve) {
|
|
31
|
+
resolve(result);
|
|
32
|
+
}
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
- (void)rejectPromise:(RCTPromiseRejectBlock)reject
|
|
37
|
+
withErrorCode:(NSString *)errorCode
|
|
38
|
+
errorMessage:(NSString *)errorMessage {
|
|
39
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
40
|
+
if (reject) {
|
|
41
|
+
reject(errorCode ?: @"ERROR", errorMessage ?: @"Unknown error", nil);
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
- (NSDictionary *)generateKeys:(NSString *)bitcoinNetwork {
|
|
47
|
+
return [RgbSwiftHelper _generateKeys:bitcoinNetwork];
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
- (void)generateKeys:(NSString *)bitcoinNetwork
|
|
51
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
52
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
53
|
+
{
|
|
54
|
+
__weak Rgb *weakSelf = self;
|
|
55
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
56
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
57
|
+
NSString *strongBitcoinNetwork = [bitcoinNetwork copy];
|
|
58
|
+
|
|
59
|
+
EXEC_ASYNC({
|
|
60
|
+
NSDictionary *result = [RgbSwiftHelper _generateKeys:strongBitcoinNetwork];
|
|
61
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
62
|
+
if (strongSelf && strongResolve) {
|
|
63
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
- (void)restoreKeys:(NSString *)bitcoinNetwork
|
|
69
|
+
mnemonic:(NSString *)mnemonic
|
|
70
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
71
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
72
|
+
{
|
|
73
|
+
__weak Rgb *weakSelf = self;
|
|
74
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
75
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
76
|
+
NSString *strongBitcoinNetwork = [bitcoinNetwork copy];
|
|
77
|
+
NSString *strongMnemonic = [mnemonic copy];
|
|
78
|
+
|
|
79
|
+
EXEC_ASYNC({
|
|
80
|
+
NSDictionary *result = [RgbSwiftHelper _restoreKeys:strongBitcoinNetwork mnemonic:strongMnemonic];
|
|
81
|
+
NSString *errorMessage = result[@"error"];
|
|
82
|
+
if (errorMessage != nil) {
|
|
83
|
+
NSString *errorCode = result[@"errorCode"] ?: @"RESTORE_KEYS_ERROR";
|
|
84
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
85
|
+
if (strongReject) {
|
|
86
|
+
strongReject(errorCode, errorMessage, nil);
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
} else {
|
|
90
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
91
|
+
if (strongSelf && strongResolve) {
|
|
92
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
- (void)initializeWallet:(NSString *)network
|
|
99
|
+
accountXpubVanilla:(NSString *)accountXpubVanilla
|
|
100
|
+
accountXpubColored:(NSString *)accountXpubColored
|
|
101
|
+
mnemonic:(NSString *)mnemonic
|
|
102
|
+
masterFingerprint:(NSString *)masterFingerprint
|
|
103
|
+
supportedSchemas:(NSArray<NSString *> *)supportedSchemas
|
|
104
|
+
maxAllocationsPerUtxo:(NSNumber *)maxAllocationsPerUtxo
|
|
105
|
+
vanillaKeychain:(NSNumber *)vanillaKeychain
|
|
106
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
107
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
108
|
+
{
|
|
109
|
+
// Validate required parameters
|
|
110
|
+
if (!network || !accountXpubVanilla || !accountXpubColored || !mnemonic || !masterFingerprint || !supportedSchemas || !maxAllocationsPerUtxo || !vanillaKeychain) {
|
|
111
|
+
if (reject) {
|
|
112
|
+
reject(@"INITIALIZE_WALLET_ERROR", @"Missing required parameters", nil);
|
|
113
|
+
}
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
__weak Rgb *weakSelf = self;
|
|
118
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
119
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
120
|
+
|
|
121
|
+
// Capture parameters strongly to ensure they're retained
|
|
122
|
+
NSString *strongNetwork = [network copy];
|
|
123
|
+
NSString *strongAccountXpubVanilla = [accountXpubVanilla copy];
|
|
124
|
+
NSString *strongAccountXpubColored = [accountXpubColored copy];
|
|
125
|
+
NSString *strongMnemonic = [mnemonic copy];
|
|
126
|
+
NSString *strongMasterFingerprint = [masterFingerprint copy];
|
|
127
|
+
NSArray<NSString *> *strongSupportedSchemas = [supportedSchemas copy];
|
|
128
|
+
NSNumber *strongMaxAllocationsPerUtxo = [maxAllocationsPerUtxo copy];
|
|
129
|
+
NSNumber *strongVanillaKeychain = [vanillaKeychain copy];
|
|
130
|
+
|
|
131
|
+
// Ensure all parameters are non-nil before dispatching
|
|
132
|
+
if (!strongNetwork || !strongAccountXpubVanilla || !strongAccountXpubColored ||
|
|
133
|
+
!strongMnemonic || !strongMasterFingerprint || !strongSupportedSchemas ||
|
|
134
|
+
!strongMaxAllocationsPerUtxo || !strongVanillaKeychain) {
|
|
135
|
+
if (strongReject) {
|
|
136
|
+
strongReject(@"INITIALIZE_WALLET_ERROR", @"One or more parameters became nil", nil);
|
|
137
|
+
}
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
dispatch_async(dispatch_get_global_queue(QOS_CLASS_USER_INITIATED, 0), ^{
|
|
142
|
+
@autoreleasepool {
|
|
143
|
+
@try {
|
|
144
|
+
NSDictionary *result = nil;
|
|
145
|
+
@autoreleasepool {
|
|
146
|
+
// Call Swift method - it should handle its own threading
|
|
147
|
+
result = [RgbSwiftHelper _initializeWallet:strongNetwork
|
|
148
|
+
accountXpubVanilla:strongAccountXpubVanilla
|
|
149
|
+
accountXpubColored:strongAccountXpubColored
|
|
150
|
+
mnemonic:strongMnemonic
|
|
151
|
+
masterFingerprint:strongMasterFingerprint
|
|
152
|
+
supportedSchemas:strongSupportedSchemas
|
|
153
|
+
maxAllocationsPerUtxo:strongMaxAllocationsPerUtxo
|
|
154
|
+
vanillaKeychain:strongVanillaKeychain];
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
if (!result) {
|
|
158
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
159
|
+
if (strongReject) {
|
|
160
|
+
strongReject(@"INITIALIZE_WALLET_ERROR", @"Swift method returned nil", nil);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
163
|
+
return;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
NSString *errorMessage = result[@"error"];
|
|
167
|
+
if (errorMessage != nil) {
|
|
168
|
+
NSString *errorCode = result[@"errorCode"] ?: @"INITIALIZE_WALLET_ERROR";
|
|
169
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
170
|
+
if (strongReject) {
|
|
171
|
+
strongReject(errorCode, errorMessage, nil);
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
} else {
|
|
175
|
+
NSNumber *walletId = result[@"walletId"];
|
|
176
|
+
if (!walletId) {
|
|
177
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
178
|
+
if (strongReject) {
|
|
179
|
+
strongReject(@"INITIALIZE_WALLET_ERROR", @"walletId not found in result", nil);
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
return;
|
|
183
|
+
}
|
|
184
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
185
|
+
if (strongSelf && strongResolve) {
|
|
186
|
+
[strongSelf resolvePromise:strongResolve withResult:walletId];
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
} @catch (NSException *exception) {
|
|
190
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
191
|
+
if (strongReject) {
|
|
192
|
+
strongReject(@"INITIALIZE_WALLET_ERROR", exception.reason ?: @"Unknown error", nil);
|
|
193
|
+
}
|
|
194
|
+
});
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
|
|
200
|
+
- (void)goOnline:(NSNumber *)walletId
|
|
201
|
+
skipConsistencyCheck:(NSNumber *)skipConsistencyCheck
|
|
202
|
+
indexerUrl:(NSString *)indexerUrl
|
|
203
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
204
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
205
|
+
{
|
|
206
|
+
__weak Rgb *weakSelf = self;
|
|
207
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
208
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
209
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
210
|
+
NSNumber *strongSkipConsistencyCheck = [skipConsistencyCheck copy];
|
|
211
|
+
NSString *strongIndexerUrl = [indexerUrl copy];
|
|
212
|
+
|
|
213
|
+
EXEC_ASYNC({
|
|
214
|
+
NSDictionary *result = [RgbSwiftHelper _goOnline:strongWalletId
|
|
215
|
+
skipConsistencyCheck:[strongSkipConsistencyCheck boolValue]
|
|
216
|
+
indexerUrl:strongIndexerUrl];
|
|
217
|
+
NSString *errorMessage = result[@"error"];
|
|
218
|
+
if (errorMessage != nil) {
|
|
219
|
+
NSString *errorCode = result[@"errorCode"] ?: @"GO_ONLINE_ERROR";
|
|
220
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
221
|
+
if (strongReject) {
|
|
222
|
+
strongReject(errorCode, errorMessage, nil);
|
|
223
|
+
}
|
|
224
|
+
});
|
|
225
|
+
} else {
|
|
226
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
227
|
+
if (strongSelf && strongResolve) {
|
|
228
|
+
[strongSelf resolvePromise:strongResolve withResult:nil];
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
|
|
234
|
+
- (void)getBtcBalance:(NSNumber *)walletId
|
|
235
|
+
skipSync:(NSNumber *)skipSync
|
|
236
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
237
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
238
|
+
{
|
|
239
|
+
__weak Rgb *weakSelf = self;
|
|
240
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
241
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
242
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
243
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
244
|
+
|
|
245
|
+
EXEC_ASYNC({
|
|
246
|
+
NSDictionary *result = [RgbSwiftHelper _getBtcBalance:strongWalletId
|
|
247
|
+
skipSync:[strongSkipSync boolValue]];
|
|
248
|
+
NSString *errorMessage = result[@"error"];
|
|
249
|
+
if (errorMessage != nil) {
|
|
250
|
+
NSString *errorCode = result[@"errorCode"] ?: @"GET_BTC_BALANCE_ERROR";
|
|
251
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
252
|
+
if (strongReject) {
|
|
253
|
+
strongReject(errorCode, errorMessage, nil);
|
|
254
|
+
}
|
|
255
|
+
});
|
|
256
|
+
} else {
|
|
257
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
258
|
+
if (strongSelf && strongResolve) {
|
|
259
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
260
|
+
}
|
|
261
|
+
}
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
- (void)walletClose:(NSNumber *)walletId
|
|
266
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
267
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
268
|
+
{
|
|
269
|
+
__weak Rgb *weakSelf = self;
|
|
270
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
271
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
272
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
273
|
+
|
|
274
|
+
EXEC_ASYNC({
|
|
275
|
+
NSDictionary *result = [RgbSwiftHelper _walletClose:strongWalletId];
|
|
276
|
+
NSString *errorMessage = result[@"error"];
|
|
277
|
+
if (errorMessage != nil) {
|
|
278
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
279
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
280
|
+
if (strongReject) {
|
|
281
|
+
strongReject(errorCode, errorMessage, nil);
|
|
282
|
+
}
|
|
283
|
+
});
|
|
284
|
+
} else {
|
|
285
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
286
|
+
if (strongSelf && strongResolve) {
|
|
287
|
+
[strongSelf resolvePromise:strongResolve withResult:nil];
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
});
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
// All wallet methods bridge implementations
|
|
294
|
+
- (void)backup:(NSNumber *)walletId
|
|
295
|
+
backupPath:(NSString *)backupPath
|
|
296
|
+
password:(NSString *)password
|
|
297
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
298
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
299
|
+
{
|
|
300
|
+
__weak Rgb *weakSelf = self;
|
|
301
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
302
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
303
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
304
|
+
NSString *strongBackupPath = [backupPath copy];
|
|
305
|
+
NSString *strongPassword = [password copy];
|
|
306
|
+
|
|
307
|
+
EXEC_ASYNC({
|
|
308
|
+
NSDictionary *result = [RgbSwiftHelper _backup:strongWalletId backupPath:strongBackupPath password:strongPassword];
|
|
309
|
+
NSString *errorMessage = result[@"error"];
|
|
310
|
+
if (errorMessage != nil) {
|
|
311
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
312
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
313
|
+
if (strongReject) {
|
|
314
|
+
strongReject(errorCode, errorMessage, nil);
|
|
315
|
+
}
|
|
316
|
+
});
|
|
317
|
+
} else {
|
|
318
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
319
|
+
if (strongSelf && strongResolve) {
|
|
320
|
+
[strongSelf resolvePromise:strongResolve withResult:nil];
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
});
|
|
324
|
+
}
|
|
325
|
+
|
|
326
|
+
- (void)backupInfo:(NSNumber *)walletId
|
|
327
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
328
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
329
|
+
{
|
|
330
|
+
__weak Rgb *weakSelf = self;
|
|
331
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
332
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
333
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
334
|
+
|
|
335
|
+
EXEC_ASYNC({
|
|
336
|
+
NSDictionary *result = [RgbSwiftHelper _backupInfo:strongWalletId];
|
|
337
|
+
NSString *errorMessage = result[@"error"];
|
|
338
|
+
if (errorMessage != nil) {
|
|
339
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
340
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
341
|
+
if (strongReject) {
|
|
342
|
+
strongReject(errorCode, errorMessage, nil);
|
|
343
|
+
}
|
|
344
|
+
});
|
|
345
|
+
} else {
|
|
346
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
347
|
+
if (strongSelf && strongResolve) {
|
|
348
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"hasBackup"]];
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
});
|
|
352
|
+
}
|
|
353
|
+
|
|
354
|
+
- (void)blindReceive:(NSNumber *)walletId
|
|
355
|
+
assetId:(NSString *)assetId
|
|
356
|
+
assignment:(NSDictionary *)assignment
|
|
357
|
+
durationSeconds:(NSNumber *)durationSeconds
|
|
358
|
+
transportEndpoints:(NSArray<NSString *> *)transportEndpoints
|
|
359
|
+
minConfirmations:(NSNumber *)minConfirmations
|
|
360
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
361
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
362
|
+
{
|
|
363
|
+
__weak Rgb *weakSelf = self;
|
|
364
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
365
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
366
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
367
|
+
NSString *strongAssetId = assetId ? [assetId copy] : nil;
|
|
368
|
+
NSDictionary *strongAssignment = [assignment copy];
|
|
369
|
+
NSNumber *strongDurationSeconds = durationSeconds ? [durationSeconds copy] : nil;
|
|
370
|
+
NSArray *strongTransportEndpoints = [transportEndpoints copy];
|
|
371
|
+
NSNumber *strongMinConfirmations = [minConfirmations copy];
|
|
372
|
+
|
|
373
|
+
EXEC_ASYNC({
|
|
374
|
+
NSDictionary *result = [RgbSwiftHelper _blindReceive:strongWalletId
|
|
375
|
+
assetId:strongAssetId
|
|
376
|
+
assignment:strongAssignment
|
|
377
|
+
durationSeconds:strongDurationSeconds
|
|
378
|
+
transportEndpoints:strongTransportEndpoints
|
|
379
|
+
minConfirmations:strongMinConfirmations];
|
|
380
|
+
NSString *errorMessage = result[@"error"];
|
|
381
|
+
if (errorMessage != nil) {
|
|
382
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
383
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
384
|
+
if (strongReject) {
|
|
385
|
+
strongReject(errorCode, errorMessage, nil);
|
|
386
|
+
}
|
|
387
|
+
});
|
|
388
|
+
} else {
|
|
389
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
390
|
+
if (strongSelf && strongResolve) {
|
|
391
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
392
|
+
}
|
|
393
|
+
}
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
- (void)createUtxos:(NSNumber *)walletId
|
|
398
|
+
upTo:(NSNumber *)upTo
|
|
399
|
+
num:(NSNumber *)num
|
|
400
|
+
size:(NSNumber *)size
|
|
401
|
+
feeRate:(NSNumber *)feeRate
|
|
402
|
+
skipSync:(NSNumber *)skipSync
|
|
403
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
404
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
405
|
+
{
|
|
406
|
+
__weak Rgb *weakSelf = self;
|
|
407
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
408
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
409
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
410
|
+
NSNumber *strongUpTo = [upTo copy];
|
|
411
|
+
NSNumber *strongNum = num ? [num copy] : nil;
|
|
412
|
+
NSNumber *strongSize = size ? [size copy] : nil;
|
|
413
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
414
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
415
|
+
|
|
416
|
+
EXEC_ASYNC({
|
|
417
|
+
NSDictionary *result = [RgbSwiftHelper _createUtxos:strongWalletId
|
|
418
|
+
upTo:strongUpTo
|
|
419
|
+
num:strongNum
|
|
420
|
+
size:strongSize
|
|
421
|
+
feeRate:strongFeeRate
|
|
422
|
+
skipSync:strongSkipSync];
|
|
423
|
+
NSString *errorMessage = result[@"error"];
|
|
424
|
+
if (errorMessage != nil) {
|
|
425
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
426
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
427
|
+
if (strongReject) {
|
|
428
|
+
strongReject(errorCode, errorMessage, nil);
|
|
429
|
+
}
|
|
430
|
+
});
|
|
431
|
+
} else {
|
|
432
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
433
|
+
if (strongSelf && strongResolve) {
|
|
434
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"count"]];
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
});
|
|
438
|
+
}
|
|
439
|
+
|
|
440
|
+
- (void)createUtxosBegin:(NSNumber *)walletId
|
|
441
|
+
upTo:(NSNumber *)upTo
|
|
442
|
+
num:(NSNumber *)num
|
|
443
|
+
size:(NSNumber *)size
|
|
444
|
+
feeRate:(NSNumber *)feeRate
|
|
445
|
+
skipSync:(NSNumber *)skipSync
|
|
446
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
447
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
448
|
+
{
|
|
449
|
+
__weak Rgb *weakSelf = self;
|
|
450
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
451
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
452
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
453
|
+
NSNumber *strongUpTo = [upTo copy];
|
|
454
|
+
NSNumber *strongNum = num ? [num copy] : nil;
|
|
455
|
+
NSNumber *strongSize = size ? [size copy] : nil;
|
|
456
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
457
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
458
|
+
|
|
459
|
+
EXEC_ASYNC({
|
|
460
|
+
NSDictionary *result = [RgbSwiftHelper _createUtxosBegin:strongWalletId
|
|
461
|
+
upTo:strongUpTo
|
|
462
|
+
num:strongNum
|
|
463
|
+
size:strongSize
|
|
464
|
+
feeRate:strongFeeRate
|
|
465
|
+
skipSync:strongSkipSync];
|
|
466
|
+
NSString *errorMessage = result[@"error"];
|
|
467
|
+
if (errorMessage != nil) {
|
|
468
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
469
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
470
|
+
if (strongReject) {
|
|
471
|
+
strongReject(errorCode, errorMessage, nil);
|
|
472
|
+
}
|
|
473
|
+
});
|
|
474
|
+
} else {
|
|
475
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
476
|
+
if (strongSelf && strongResolve) {
|
|
477
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
478
|
+
}
|
|
479
|
+
}
|
|
480
|
+
});
|
|
481
|
+
}
|
|
482
|
+
|
|
483
|
+
- (void)createUtxosEnd:(NSNumber *)walletId
|
|
484
|
+
signedPsbt:(NSString *)signedPsbt
|
|
485
|
+
skipSync:(NSNumber *)skipSync
|
|
486
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
487
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
488
|
+
{
|
|
489
|
+
__weak Rgb *weakSelf = self;
|
|
490
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
491
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
492
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
493
|
+
NSString *strongSignedPsbt = [signedPsbt copy];
|
|
494
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
495
|
+
|
|
496
|
+
EXEC_ASYNC({
|
|
497
|
+
NSDictionary *result = [RgbSwiftHelper _createUtxosEnd:strongWalletId
|
|
498
|
+
signedPsbt:strongSignedPsbt
|
|
499
|
+
skipSync:strongSkipSync];
|
|
500
|
+
NSString *errorMessage = result[@"error"];
|
|
501
|
+
if (errorMessage != nil) {
|
|
502
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
503
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
504
|
+
if (strongReject) {
|
|
505
|
+
strongReject(errorCode, errorMessage, nil);
|
|
506
|
+
}
|
|
507
|
+
});
|
|
508
|
+
} else {
|
|
509
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
510
|
+
if (strongSelf && strongResolve) {
|
|
511
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"count"]];
|
|
512
|
+
}
|
|
513
|
+
}
|
|
514
|
+
});
|
|
515
|
+
}
|
|
516
|
+
|
|
517
|
+
- (void)deleteTransfers:(NSNumber *)walletId
|
|
518
|
+
batchTransferIdx:(NSNumber *)batchTransferIdx
|
|
519
|
+
noAssetOnly:(NSNumber *)noAssetOnly
|
|
520
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
521
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
522
|
+
{
|
|
523
|
+
__weak Rgb *weakSelf = self;
|
|
524
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
525
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
526
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
527
|
+
NSNumber *strongBatchTransferIdx = batchTransferIdx ? [batchTransferIdx copy] : nil;
|
|
528
|
+
NSNumber *strongNoAssetOnly = [noAssetOnly copy];
|
|
529
|
+
|
|
530
|
+
EXEC_ASYNC({
|
|
531
|
+
NSDictionary *result = [RgbSwiftHelper _deleteTransfers:strongWalletId
|
|
532
|
+
batchTransferIdx:strongBatchTransferIdx
|
|
533
|
+
noAssetOnly:strongNoAssetOnly];
|
|
534
|
+
NSString *errorMessage = result[@"error"];
|
|
535
|
+
if (errorMessage != nil) {
|
|
536
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
537
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
538
|
+
if (strongReject) {
|
|
539
|
+
strongReject(errorCode, errorMessage, nil);
|
|
540
|
+
}
|
|
541
|
+
});
|
|
542
|
+
} else {
|
|
543
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
544
|
+
if (strongSelf && strongResolve) {
|
|
545
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"deleted"]];
|
|
546
|
+
}
|
|
547
|
+
}
|
|
548
|
+
});
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
- (void)drainTo:(NSNumber *)walletId
|
|
552
|
+
address:(NSString *)address
|
|
553
|
+
destroyAssets:(NSNumber *)destroyAssets
|
|
554
|
+
feeRate:(NSNumber *)feeRate
|
|
555
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
556
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
557
|
+
{
|
|
558
|
+
__weak Rgb *weakSelf = self;
|
|
559
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
560
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
561
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
562
|
+
NSString *strongAddress = [address copy];
|
|
563
|
+
NSNumber *strongDestroyAssets = [destroyAssets copy];
|
|
564
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
565
|
+
|
|
566
|
+
EXEC_ASYNC({
|
|
567
|
+
NSDictionary *result = [RgbSwiftHelper _drainTo:strongWalletId
|
|
568
|
+
address:strongAddress
|
|
569
|
+
destroyAssets:strongDestroyAssets
|
|
570
|
+
feeRate:strongFeeRate];
|
|
571
|
+
NSString *errorMessage = result[@"error"];
|
|
572
|
+
if (errorMessage != nil) {
|
|
573
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
574
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
575
|
+
if (strongReject) {
|
|
576
|
+
strongReject(errorCode, errorMessage, nil);
|
|
577
|
+
}
|
|
578
|
+
});
|
|
579
|
+
} else {
|
|
580
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
581
|
+
if (strongSelf && strongResolve) {
|
|
582
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"txid"]];
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
});
|
|
586
|
+
}
|
|
587
|
+
|
|
588
|
+
- (void)drainToBegin:(NSNumber *)walletId
|
|
589
|
+
address:(NSString *)address
|
|
590
|
+
destroyAssets:(NSNumber *)destroyAssets
|
|
591
|
+
feeRate:(NSNumber *)feeRate
|
|
592
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
593
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
594
|
+
{
|
|
595
|
+
__weak Rgb *weakSelf = self;
|
|
596
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
597
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
598
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
599
|
+
NSString *strongAddress = [address copy];
|
|
600
|
+
NSNumber *strongDestroyAssets = [destroyAssets copy];
|
|
601
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
602
|
+
|
|
603
|
+
EXEC_ASYNC({
|
|
604
|
+
NSDictionary *result = [RgbSwiftHelper _drainToBegin:strongWalletId
|
|
605
|
+
address:strongAddress
|
|
606
|
+
destroyAssets:strongDestroyAssets
|
|
607
|
+
feeRate:strongFeeRate];
|
|
608
|
+
NSString *errorMessage = result[@"error"];
|
|
609
|
+
if (errorMessage != nil) {
|
|
610
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
611
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
612
|
+
if (strongReject) {
|
|
613
|
+
strongReject(errorCode, errorMessage, nil);
|
|
614
|
+
}
|
|
615
|
+
});
|
|
616
|
+
} else {
|
|
617
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
618
|
+
if (strongSelf && strongResolve) {
|
|
619
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
620
|
+
}
|
|
621
|
+
}
|
|
622
|
+
});
|
|
623
|
+
}
|
|
624
|
+
|
|
625
|
+
- (void)drainToEnd:(NSNumber *)walletId
|
|
626
|
+
signedPsbt:(NSString *)signedPsbt
|
|
627
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
628
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
629
|
+
{
|
|
630
|
+
__weak Rgb *weakSelf = self;
|
|
631
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
632
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
633
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
634
|
+
NSString *strongSignedPsbt = [signedPsbt copy];
|
|
635
|
+
|
|
636
|
+
EXEC_ASYNC({
|
|
637
|
+
NSDictionary *result = [RgbSwiftHelper _drainToEnd:strongWalletId signedPsbt:strongSignedPsbt];
|
|
638
|
+
NSString *errorMessage = result[@"error"];
|
|
639
|
+
if (errorMessage != nil) {
|
|
640
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
641
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
642
|
+
if (strongReject) {
|
|
643
|
+
strongReject(errorCode, errorMessage, nil);
|
|
644
|
+
}
|
|
645
|
+
});
|
|
646
|
+
} else {
|
|
647
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
648
|
+
if (strongSelf && strongResolve) {
|
|
649
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"txid"]];
|
|
650
|
+
}
|
|
651
|
+
}
|
|
652
|
+
});
|
|
653
|
+
}
|
|
654
|
+
|
|
655
|
+
- (void)failTransfers:(NSNumber *)walletId
|
|
656
|
+
batchTransferIdx:(NSNumber *)batchTransferIdx
|
|
657
|
+
noAssetOnly:(NSNumber *)noAssetOnly
|
|
658
|
+
skipSync:(NSNumber *)skipSync
|
|
659
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
660
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
661
|
+
{
|
|
662
|
+
__weak Rgb *weakSelf = self;
|
|
663
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
664
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
665
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
666
|
+
NSNumber *strongBatchTransferIdx = batchTransferIdx ? [batchTransferIdx copy] : nil;
|
|
667
|
+
NSNumber *strongNoAssetOnly = [noAssetOnly copy];
|
|
668
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
669
|
+
|
|
670
|
+
EXEC_ASYNC({
|
|
671
|
+
NSDictionary *result = [RgbSwiftHelper _failTransfers:strongWalletId
|
|
672
|
+
batchTransferIdx:strongBatchTransferIdx
|
|
673
|
+
noAssetOnly:strongNoAssetOnly
|
|
674
|
+
skipSync:strongSkipSync];
|
|
675
|
+
NSString *errorMessage = result[@"error"];
|
|
676
|
+
if (errorMessage != nil) {
|
|
677
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
678
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
679
|
+
if (strongReject) {
|
|
680
|
+
strongReject(errorCode, errorMessage, nil);
|
|
681
|
+
}
|
|
682
|
+
});
|
|
683
|
+
} else {
|
|
684
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
685
|
+
if (strongSelf && strongResolve) {
|
|
686
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"failed"]];
|
|
687
|
+
}
|
|
688
|
+
}
|
|
689
|
+
});
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
- (void)finalizePsbt:(NSNumber *)walletId
|
|
693
|
+
signedPsbt:(NSString *)signedPsbt
|
|
694
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
695
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
696
|
+
{
|
|
697
|
+
__weak Rgb *weakSelf = self;
|
|
698
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
699
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
700
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
701
|
+
NSString *strongSignedPsbt = [signedPsbt copy];
|
|
702
|
+
|
|
703
|
+
EXEC_ASYNC({
|
|
704
|
+
NSDictionary *result = [RgbSwiftHelper _finalizePsbt:strongWalletId signedPsbt:strongSignedPsbt];
|
|
705
|
+
NSString *errorMessage = result[@"error"];
|
|
706
|
+
if (errorMessage != nil) {
|
|
707
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
708
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
709
|
+
if (strongReject) {
|
|
710
|
+
strongReject(errorCode, errorMessage, nil);
|
|
711
|
+
}
|
|
712
|
+
});
|
|
713
|
+
} else {
|
|
714
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
715
|
+
if (strongSelf && strongResolve) {
|
|
716
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
717
|
+
}
|
|
718
|
+
}
|
|
719
|
+
});
|
|
720
|
+
}
|
|
721
|
+
|
|
722
|
+
- (void)getAddress:(NSNumber *)walletId
|
|
723
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
724
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
725
|
+
{
|
|
726
|
+
__weak Rgb *weakSelf = self;
|
|
727
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
728
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
729
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
730
|
+
|
|
731
|
+
EXEC_ASYNC({
|
|
732
|
+
NSDictionary *result = [RgbSwiftHelper _getAddress:strongWalletId];
|
|
733
|
+
NSString *errorMessage = result[@"error"];
|
|
734
|
+
if (errorMessage != nil) {
|
|
735
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
736
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
737
|
+
if (strongReject) {
|
|
738
|
+
strongReject(errorCode, errorMessage, nil);
|
|
739
|
+
}
|
|
740
|
+
});
|
|
741
|
+
} else {
|
|
742
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
743
|
+
if (strongSelf && strongResolve) {
|
|
744
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"address"]];
|
|
745
|
+
}
|
|
746
|
+
}
|
|
747
|
+
});
|
|
748
|
+
}
|
|
749
|
+
|
|
750
|
+
- (void)getAssetBalance:(NSNumber *)walletId
|
|
751
|
+
assetId:(NSString *)assetId
|
|
752
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
753
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
754
|
+
{
|
|
755
|
+
__weak Rgb *weakSelf = self;
|
|
756
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
757
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
758
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
759
|
+
NSString *strongAssetId = [assetId copy];
|
|
760
|
+
|
|
761
|
+
EXEC_ASYNC({
|
|
762
|
+
NSDictionary *result = [RgbSwiftHelper _getAssetBalance:strongWalletId assetId:strongAssetId];
|
|
763
|
+
NSString *errorMessage = result[@"error"];
|
|
764
|
+
if (errorMessage != nil) {
|
|
765
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
766
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
767
|
+
if (strongReject) {
|
|
768
|
+
strongReject(errorCode, errorMessage, nil);
|
|
769
|
+
}
|
|
770
|
+
});
|
|
771
|
+
} else {
|
|
772
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
773
|
+
if (strongSelf && strongResolve) {
|
|
774
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
775
|
+
}
|
|
776
|
+
}
|
|
777
|
+
});
|
|
778
|
+
}
|
|
779
|
+
|
|
780
|
+
- (void)getAssetMetadata:(NSNumber *)walletId
|
|
781
|
+
assetId:(NSString *)assetId
|
|
782
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
783
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
784
|
+
{
|
|
785
|
+
__weak Rgb *weakSelf = self;
|
|
786
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
787
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
788
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
789
|
+
NSString *strongAssetId = [assetId copy];
|
|
790
|
+
|
|
791
|
+
EXEC_ASYNC({
|
|
792
|
+
NSDictionary *result = [RgbSwiftHelper _getAssetMetadata:strongWalletId assetId:strongAssetId];
|
|
793
|
+
NSString *errorMessage = result[@"error"];
|
|
794
|
+
if (errorMessage != nil) {
|
|
795
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
796
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
797
|
+
if (strongReject) {
|
|
798
|
+
strongReject(errorCode, errorMessage, nil);
|
|
799
|
+
}
|
|
800
|
+
});
|
|
801
|
+
} else {
|
|
802
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
803
|
+
if (strongSelf && strongResolve) {
|
|
804
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
805
|
+
}
|
|
806
|
+
}
|
|
807
|
+
});
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
- (void)getFeeEstimation:(NSNumber *)walletId
|
|
811
|
+
blocks:(NSNumber *)blocks
|
|
812
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
813
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
814
|
+
{
|
|
815
|
+
__weak Rgb *weakSelf = self;
|
|
816
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
817
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
818
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
819
|
+
NSNumber *strongBlocks = [blocks copy];
|
|
820
|
+
|
|
821
|
+
EXEC_ASYNC({
|
|
822
|
+
NSDictionary *result = [RgbSwiftHelper _getFeeEstimation:strongWalletId blocks:strongBlocks];
|
|
823
|
+
NSString *errorMessage = result[@"error"];
|
|
824
|
+
if (errorMessage != nil) {
|
|
825
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
826
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
827
|
+
if (strongReject) {
|
|
828
|
+
strongReject(errorCode, errorMessage, nil);
|
|
829
|
+
}
|
|
830
|
+
});
|
|
831
|
+
} else {
|
|
832
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
833
|
+
if (strongSelf && strongResolve) {
|
|
834
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"feeRate"]];
|
|
835
|
+
}
|
|
836
|
+
}
|
|
837
|
+
});
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
- (void)getMediaDir:(NSNumber *)walletId
|
|
841
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
842
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
843
|
+
{
|
|
844
|
+
__weak Rgb *weakSelf = self;
|
|
845
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
846
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
847
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
848
|
+
|
|
849
|
+
EXEC_ASYNC({
|
|
850
|
+
NSDictionary *result = [RgbSwiftHelper _getMediaDir:strongWalletId];
|
|
851
|
+
NSString *errorMessage = result[@"error"];
|
|
852
|
+
if (errorMessage != nil) {
|
|
853
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
854
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
855
|
+
if (strongReject) {
|
|
856
|
+
strongReject(errorCode, errorMessage, nil);
|
|
857
|
+
}
|
|
858
|
+
});
|
|
859
|
+
} else {
|
|
860
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
861
|
+
if (strongSelf && strongResolve) {
|
|
862
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"mediaDir"]];
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
});
|
|
866
|
+
}
|
|
867
|
+
|
|
868
|
+
- (void)getWalletData:(NSNumber *)walletId
|
|
869
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
870
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
871
|
+
{
|
|
872
|
+
__weak Rgb *weakSelf = self;
|
|
873
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
874
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
875
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
876
|
+
|
|
877
|
+
EXEC_ASYNC({
|
|
878
|
+
NSDictionary *result = [RgbSwiftHelper _getWalletData:strongWalletId];
|
|
879
|
+
NSString *errorMessage = result[@"error"];
|
|
880
|
+
if (errorMessage != nil) {
|
|
881
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
882
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
883
|
+
if (strongReject) {
|
|
884
|
+
strongReject(errorCode, errorMessage, nil);
|
|
885
|
+
}
|
|
886
|
+
});
|
|
887
|
+
} else {
|
|
888
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
889
|
+
if (strongSelf && strongResolve) {
|
|
890
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
891
|
+
}
|
|
892
|
+
}
|
|
893
|
+
});
|
|
894
|
+
}
|
|
895
|
+
|
|
896
|
+
- (void)getWalletDir:(NSNumber *)walletId
|
|
897
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
898
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
899
|
+
{
|
|
900
|
+
__weak Rgb *weakSelf = self;
|
|
901
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
902
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
903
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
904
|
+
|
|
905
|
+
EXEC_ASYNC({
|
|
906
|
+
NSDictionary *result = [RgbSwiftHelper _getWalletDir:strongWalletId];
|
|
907
|
+
NSString *errorMessage = result[@"error"];
|
|
908
|
+
if (errorMessage != nil) {
|
|
909
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
910
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
911
|
+
if (strongReject) {
|
|
912
|
+
strongReject(errorCode, errorMessage, nil);
|
|
913
|
+
}
|
|
914
|
+
});
|
|
915
|
+
} else {
|
|
916
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
917
|
+
if (strongSelf && strongResolve) {
|
|
918
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"walletDir"]];
|
|
919
|
+
}
|
|
920
|
+
}
|
|
921
|
+
});
|
|
922
|
+
}
|
|
923
|
+
|
|
924
|
+
- (void)inflate:(NSNumber *)walletId
|
|
925
|
+
assetId:(NSString *)assetId
|
|
926
|
+
inflationAmounts:(NSArray<NSNumber *> *)inflationAmounts
|
|
927
|
+
feeRate:(NSNumber *)feeRate
|
|
928
|
+
minConfirmations:(NSNumber *)minConfirmations
|
|
929
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
930
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
931
|
+
{
|
|
932
|
+
__weak Rgb *weakSelf = self;
|
|
933
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
934
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
935
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
936
|
+
NSString *strongAssetId = [assetId copy];
|
|
937
|
+
NSArray *strongInflationAmounts = [inflationAmounts copy];
|
|
938
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
939
|
+
NSNumber *strongMinConfirmations = [minConfirmations copy];
|
|
940
|
+
|
|
941
|
+
EXEC_ASYNC({
|
|
942
|
+
NSDictionary *result = [RgbSwiftHelper _inflate:strongWalletId
|
|
943
|
+
assetId:strongAssetId
|
|
944
|
+
inflationAmounts:strongInflationAmounts
|
|
945
|
+
feeRate:strongFeeRate
|
|
946
|
+
minConfirmations:strongMinConfirmations];
|
|
947
|
+
NSString *errorMessage = result[@"error"];
|
|
948
|
+
if (errorMessage != nil) {
|
|
949
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
950
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
951
|
+
if (strongReject) {
|
|
952
|
+
strongReject(errorCode, errorMessage, nil);
|
|
953
|
+
}
|
|
954
|
+
});
|
|
955
|
+
} else {
|
|
956
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
957
|
+
if (strongSelf && strongResolve) {
|
|
958
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
959
|
+
}
|
|
960
|
+
}
|
|
961
|
+
});
|
|
962
|
+
}
|
|
963
|
+
|
|
964
|
+
- (void)inflateBegin:(NSNumber *)walletId
|
|
965
|
+
assetId:(NSString *)assetId
|
|
966
|
+
inflationAmounts:(NSArray<NSNumber *> *)inflationAmounts
|
|
967
|
+
feeRate:(NSNumber *)feeRate
|
|
968
|
+
minConfirmations:(NSNumber *)minConfirmations
|
|
969
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
970
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
971
|
+
{
|
|
972
|
+
__weak Rgb *weakSelf = self;
|
|
973
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
974
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
975
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
976
|
+
NSString *strongAssetId = [assetId copy];
|
|
977
|
+
NSArray *strongInflationAmounts = [inflationAmounts copy];
|
|
978
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
979
|
+
NSNumber *strongMinConfirmations = [minConfirmations copy];
|
|
980
|
+
|
|
981
|
+
EXEC_ASYNC({
|
|
982
|
+
NSDictionary *result = [RgbSwiftHelper _inflateBegin:strongWalletId
|
|
983
|
+
assetId:strongAssetId
|
|
984
|
+
inflationAmounts:strongInflationAmounts
|
|
985
|
+
feeRate:strongFeeRate
|
|
986
|
+
minConfirmations:strongMinConfirmations];
|
|
987
|
+
NSString *errorMessage = result[@"error"];
|
|
988
|
+
if (errorMessage != nil) {
|
|
989
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
990
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
991
|
+
if (strongReject) {
|
|
992
|
+
strongReject(errorCode, errorMessage, nil);
|
|
993
|
+
}
|
|
994
|
+
});
|
|
995
|
+
} else {
|
|
996
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
997
|
+
if (strongSelf && strongResolve) {
|
|
998
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
999
|
+
}
|
|
1000
|
+
}
|
|
1001
|
+
});
|
|
1002
|
+
}
|
|
1003
|
+
|
|
1004
|
+
- (void)inflateEnd:(NSNumber *)walletId
|
|
1005
|
+
signedPsbt:(NSString *)signedPsbt
|
|
1006
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1007
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1008
|
+
{
|
|
1009
|
+
__weak Rgb *weakSelf = self;
|
|
1010
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1011
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1012
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1013
|
+
NSString *strongSignedPsbt = [signedPsbt copy];
|
|
1014
|
+
|
|
1015
|
+
EXEC_ASYNC({
|
|
1016
|
+
NSDictionary *result = [RgbSwiftHelper _inflateEnd:strongWalletId signedPsbt:strongSignedPsbt];
|
|
1017
|
+
NSString *errorMessage = result[@"error"];
|
|
1018
|
+
if (errorMessage != nil) {
|
|
1019
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1020
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1021
|
+
if (strongReject) {
|
|
1022
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1023
|
+
}
|
|
1024
|
+
});
|
|
1025
|
+
} else {
|
|
1026
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1027
|
+
if (strongSelf && strongResolve) {
|
|
1028
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1029
|
+
}
|
|
1030
|
+
}
|
|
1031
|
+
});
|
|
1032
|
+
}
|
|
1033
|
+
|
|
1034
|
+
- (void)issueAssetCfa:(NSNumber *)walletId
|
|
1035
|
+
name:(NSString *)name
|
|
1036
|
+
details:(NSString *)details
|
|
1037
|
+
precision:(NSNumber *)precision
|
|
1038
|
+
amounts:(NSArray<NSNumber *> *)amounts
|
|
1039
|
+
filePath:(NSString *)filePath
|
|
1040
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1041
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1042
|
+
{
|
|
1043
|
+
__weak Rgb *weakSelf = self;
|
|
1044
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1045
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1046
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1047
|
+
NSString *strongName = [name copy];
|
|
1048
|
+
NSString *strongDetails = details ? [details copy] : nil;
|
|
1049
|
+
NSNumber *strongPrecision = [precision copy];
|
|
1050
|
+
NSArray *strongAmounts = [amounts copy];
|
|
1051
|
+
NSString *strongFilePath = filePath ? [filePath copy] : nil;
|
|
1052
|
+
|
|
1053
|
+
EXEC_ASYNC({
|
|
1054
|
+
NSDictionary *result = [RgbSwiftHelper _issueAssetCfa:strongWalletId
|
|
1055
|
+
name:strongName
|
|
1056
|
+
details:strongDetails
|
|
1057
|
+
precision:strongPrecision
|
|
1058
|
+
amounts:strongAmounts
|
|
1059
|
+
filePath:strongFilePath];
|
|
1060
|
+
NSString *errorMessage = result[@"error"];
|
|
1061
|
+
if (errorMessage != nil) {
|
|
1062
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1063
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1064
|
+
if (strongReject) {
|
|
1065
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1066
|
+
}
|
|
1067
|
+
});
|
|
1068
|
+
} else {
|
|
1069
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1070
|
+
if (strongSelf && strongResolve) {
|
|
1071
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
});
|
|
1075
|
+
}
|
|
1076
|
+
|
|
1077
|
+
- (void)issueAssetIfa:(NSNumber *)walletId
|
|
1078
|
+
ticker:(NSString *)ticker
|
|
1079
|
+
name:(NSString *)name
|
|
1080
|
+
precision:(NSNumber *)precision
|
|
1081
|
+
amounts:(NSArray<NSNumber *> *)amounts
|
|
1082
|
+
inflationAmounts:(NSArray<NSNumber *> *)inflationAmounts
|
|
1083
|
+
replaceRightsNum:(NSNumber *)replaceRightsNum
|
|
1084
|
+
rejectListUrl:(NSString *)rejectListUrl
|
|
1085
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1086
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1087
|
+
{
|
|
1088
|
+
__weak Rgb *weakSelf = self;
|
|
1089
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1090
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1091
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1092
|
+
NSString *strongTicker = [ticker copy];
|
|
1093
|
+
NSString *strongName = [name copy];
|
|
1094
|
+
NSNumber *strongPrecision = [precision copy];
|
|
1095
|
+
NSArray *strongAmounts = [amounts copy];
|
|
1096
|
+
NSArray *strongInflationAmounts = [inflationAmounts copy];
|
|
1097
|
+
NSNumber *strongReplaceRightsNum = [replaceRightsNum copy];
|
|
1098
|
+
NSString *strongRejectListUrl = rejectListUrl ? [rejectListUrl copy] : nil;
|
|
1099
|
+
|
|
1100
|
+
EXEC_ASYNC({
|
|
1101
|
+
NSDictionary *result = [RgbSwiftHelper _issueAssetIfa:strongWalletId
|
|
1102
|
+
ticker:strongTicker
|
|
1103
|
+
name:strongName
|
|
1104
|
+
precision:strongPrecision
|
|
1105
|
+
amounts:strongAmounts
|
|
1106
|
+
inflationAmounts:strongInflationAmounts
|
|
1107
|
+
replaceRightsNum:strongReplaceRightsNum
|
|
1108
|
+
rejectListUrl:strongRejectListUrl];
|
|
1109
|
+
NSString *errorMessage = result[@"error"];
|
|
1110
|
+
if (errorMessage != nil) {
|
|
1111
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1112
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1113
|
+
if (strongReject) {
|
|
1114
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1115
|
+
}
|
|
1116
|
+
});
|
|
1117
|
+
} else {
|
|
1118
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1119
|
+
if (strongSelf && strongResolve) {
|
|
1120
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1121
|
+
}
|
|
1122
|
+
}
|
|
1123
|
+
});
|
|
1124
|
+
}
|
|
1125
|
+
|
|
1126
|
+
- (void)issueAssetNia:(NSNumber *)walletId
|
|
1127
|
+
ticker:(NSString *)ticker
|
|
1128
|
+
name:(NSString *)name
|
|
1129
|
+
precision:(NSNumber *)precision
|
|
1130
|
+
amounts:(NSArray<NSNumber *> *)amounts
|
|
1131
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1132
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1133
|
+
{
|
|
1134
|
+
__weak Rgb *weakSelf = self;
|
|
1135
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1136
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1137
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1138
|
+
NSString *strongTicker = [ticker copy];
|
|
1139
|
+
NSString *strongName = [name copy];
|
|
1140
|
+
NSNumber *strongPrecision = [precision copy];
|
|
1141
|
+
NSArray *strongAmounts = [amounts copy];
|
|
1142
|
+
|
|
1143
|
+
EXEC_ASYNC({
|
|
1144
|
+
NSDictionary *result = [RgbSwiftHelper _issueAssetNia:strongWalletId
|
|
1145
|
+
ticker:strongTicker
|
|
1146
|
+
name:strongName
|
|
1147
|
+
precision:strongPrecision
|
|
1148
|
+
amounts:strongAmounts];
|
|
1149
|
+
NSString *errorMessage = result[@"error"];
|
|
1150
|
+
if (errorMessage != nil) {
|
|
1151
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1152
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1153
|
+
if (strongReject) {
|
|
1154
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1155
|
+
}
|
|
1156
|
+
});
|
|
1157
|
+
} else {
|
|
1158
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1159
|
+
if (strongSelf && strongResolve) {
|
|
1160
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1161
|
+
}
|
|
1162
|
+
}
|
|
1163
|
+
});
|
|
1164
|
+
}
|
|
1165
|
+
|
|
1166
|
+
- (void)issueAssetUda:(NSNumber *)walletId
|
|
1167
|
+
ticker:(NSString *)ticker
|
|
1168
|
+
name:(NSString *)name
|
|
1169
|
+
details:(NSString *)details
|
|
1170
|
+
precision:(NSNumber *)precision
|
|
1171
|
+
mediaFilePath:(NSString *)mediaFilePath
|
|
1172
|
+
attachmentsFilePaths:(NSArray<NSString *> *)attachmentsFilePaths
|
|
1173
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1174
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1175
|
+
{
|
|
1176
|
+
__weak Rgb *weakSelf = self;
|
|
1177
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1178
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1179
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1180
|
+
NSString *strongTicker = [ticker copy];
|
|
1181
|
+
NSString *strongName = [name copy];
|
|
1182
|
+
NSString *strongDetails = details ? [details copy] : nil;
|
|
1183
|
+
NSNumber *strongPrecision = [precision copy];
|
|
1184
|
+
NSString *strongMediaFilePath = mediaFilePath ? [mediaFilePath copy] : nil;
|
|
1185
|
+
NSArray *strongAttachmentsFilePaths = [attachmentsFilePaths copy];
|
|
1186
|
+
|
|
1187
|
+
EXEC_ASYNC({
|
|
1188
|
+
NSDictionary *result = [RgbSwiftHelper _issueAssetUda:strongWalletId
|
|
1189
|
+
ticker:strongTicker
|
|
1190
|
+
name:strongName
|
|
1191
|
+
details:strongDetails
|
|
1192
|
+
precision:strongPrecision
|
|
1193
|
+
mediaFilePath:strongMediaFilePath
|
|
1194
|
+
attachmentsFilePaths:strongAttachmentsFilePaths];
|
|
1195
|
+
NSString *errorMessage = result[@"error"];
|
|
1196
|
+
if (errorMessage != nil) {
|
|
1197
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1198
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1199
|
+
if (strongReject) {
|
|
1200
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1201
|
+
}
|
|
1202
|
+
});
|
|
1203
|
+
} else {
|
|
1204
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1205
|
+
if (strongSelf && strongResolve) {
|
|
1206
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1207
|
+
}
|
|
1208
|
+
}
|
|
1209
|
+
});
|
|
1210
|
+
}
|
|
1211
|
+
|
|
1212
|
+
- (void)listAssets:(NSNumber *)walletId
|
|
1213
|
+
filterAssetSchemas:(NSArray<NSString *> *)filterAssetSchemas
|
|
1214
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1215
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1216
|
+
{
|
|
1217
|
+
__weak Rgb *weakSelf = self;
|
|
1218
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1219
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1220
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1221
|
+
NSArray *strongFilterAssetSchemas = [filterAssetSchemas copy];
|
|
1222
|
+
|
|
1223
|
+
EXEC_ASYNC({
|
|
1224
|
+
NSDictionary *result = [RgbSwiftHelper _listAssets:strongWalletId filterAssetSchemas:strongFilterAssetSchemas];
|
|
1225
|
+
NSString *errorMessage = result[@"error"];
|
|
1226
|
+
if (errorMessage != nil) {
|
|
1227
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1228
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1229
|
+
if (strongReject) {
|
|
1230
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1231
|
+
}
|
|
1232
|
+
});
|
|
1233
|
+
} else {
|
|
1234
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1235
|
+
if (strongSelf && strongResolve) {
|
|
1236
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1237
|
+
}
|
|
1238
|
+
}
|
|
1239
|
+
});
|
|
1240
|
+
}
|
|
1241
|
+
|
|
1242
|
+
- (void)listTransactions:(NSNumber *)walletId
|
|
1243
|
+
skipSync:(NSNumber *)skipSync
|
|
1244
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1245
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1246
|
+
{
|
|
1247
|
+
__weak Rgb *weakSelf = self;
|
|
1248
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1249
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1250
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1251
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1252
|
+
|
|
1253
|
+
EXEC_ASYNC({
|
|
1254
|
+
NSDictionary *result = [RgbSwiftHelper _listTransactions:strongWalletId skipSync:strongSkipSync];
|
|
1255
|
+
NSString *errorMessage = result[@"error"];
|
|
1256
|
+
if (errorMessage != nil) {
|
|
1257
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1258
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1259
|
+
if (strongReject) {
|
|
1260
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1261
|
+
}
|
|
1262
|
+
});
|
|
1263
|
+
} else {
|
|
1264
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1265
|
+
if (strongSelf && strongResolve) {
|
|
1266
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"transactions"]];
|
|
1267
|
+
}
|
|
1268
|
+
}
|
|
1269
|
+
});
|
|
1270
|
+
}
|
|
1271
|
+
|
|
1272
|
+
- (void)listTransfers:(NSNumber *)walletId
|
|
1273
|
+
assetId:(NSString *)assetId
|
|
1274
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1275
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1276
|
+
{
|
|
1277
|
+
__weak Rgb *weakSelf = self;
|
|
1278
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1279
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1280
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1281
|
+
NSString *strongAssetId = assetId ? [assetId copy] : nil;
|
|
1282
|
+
|
|
1283
|
+
EXEC_ASYNC({
|
|
1284
|
+
NSDictionary *result = [RgbSwiftHelper _listTransfers:strongWalletId assetId:strongAssetId];
|
|
1285
|
+
NSString *errorMessage = result[@"error"];
|
|
1286
|
+
if (errorMessage != nil) {
|
|
1287
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1288
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1289
|
+
if (strongReject) {
|
|
1290
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1291
|
+
}
|
|
1292
|
+
});
|
|
1293
|
+
} else {
|
|
1294
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1295
|
+
if (strongSelf && strongResolve) {
|
|
1296
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"transfers"]];
|
|
1297
|
+
}
|
|
1298
|
+
}
|
|
1299
|
+
});
|
|
1300
|
+
}
|
|
1301
|
+
|
|
1302
|
+
- (void)listUnspents:(NSNumber *)walletId
|
|
1303
|
+
settledOnly:(NSNumber *)settledOnly
|
|
1304
|
+
skipSync:(NSNumber *)skipSync
|
|
1305
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1306
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1307
|
+
{
|
|
1308
|
+
__weak Rgb *weakSelf = self;
|
|
1309
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1310
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1311
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1312
|
+
NSNumber *strongSettledOnly = [settledOnly copy];
|
|
1313
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1314
|
+
|
|
1315
|
+
EXEC_ASYNC({
|
|
1316
|
+
NSDictionary *result = [RgbSwiftHelper _listUnspents:strongWalletId
|
|
1317
|
+
settledOnly:strongSettledOnly
|
|
1318
|
+
skipSync:strongSkipSync];
|
|
1319
|
+
NSString *errorMessage = result[@"error"];
|
|
1320
|
+
if (errorMessage != nil) {
|
|
1321
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1322
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1323
|
+
if (strongReject) {
|
|
1324
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1325
|
+
}
|
|
1326
|
+
});
|
|
1327
|
+
} else {
|
|
1328
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1329
|
+
if (strongSelf && strongResolve) {
|
|
1330
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"unspents"]];
|
|
1331
|
+
}
|
|
1332
|
+
}
|
|
1333
|
+
});
|
|
1334
|
+
}
|
|
1335
|
+
|
|
1336
|
+
- (void)refresh:(NSNumber *)walletId
|
|
1337
|
+
assetId:(NSString *)assetId
|
|
1338
|
+
filter:(NSArray<NSDictionary *> *)filter
|
|
1339
|
+
skipSync:(NSNumber *)skipSync
|
|
1340
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1341
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1342
|
+
{
|
|
1343
|
+
__weak Rgb *weakSelf = self;
|
|
1344
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1345
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1346
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1347
|
+
NSString *strongAssetId = assetId ? [assetId copy] : nil;
|
|
1348
|
+
NSArray *strongFilter = [filter copy];
|
|
1349
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1350
|
+
|
|
1351
|
+
EXEC_ASYNC({
|
|
1352
|
+
NSDictionary *result = [RgbSwiftHelper _refresh:strongWalletId
|
|
1353
|
+
assetId:strongAssetId
|
|
1354
|
+
filter:strongFilter
|
|
1355
|
+
skipSync:strongSkipSync];
|
|
1356
|
+
NSString *errorMessage = result[@"error"];
|
|
1357
|
+
if (errorMessage != nil) {
|
|
1358
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1359
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1360
|
+
if (strongReject) {
|
|
1361
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1362
|
+
}
|
|
1363
|
+
});
|
|
1364
|
+
} else {
|
|
1365
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1366
|
+
if (strongSelf && strongResolve) {
|
|
1367
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1368
|
+
}
|
|
1369
|
+
}
|
|
1370
|
+
});
|
|
1371
|
+
}
|
|
1372
|
+
|
|
1373
|
+
- (void)send:(NSNumber *)walletId
|
|
1374
|
+
recipientMap:(NSDictionary *)recipientMap
|
|
1375
|
+
donation:(NSNumber *)donation
|
|
1376
|
+
feeRate:(NSNumber *)feeRate
|
|
1377
|
+
minConfirmations:(NSNumber *)minConfirmations
|
|
1378
|
+
skipSync:(NSNumber *)skipSync
|
|
1379
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1380
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1381
|
+
{
|
|
1382
|
+
__weak Rgb *weakSelf = self;
|
|
1383
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1384
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1385
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1386
|
+
NSDictionary *strongRecipientMap = [recipientMap copy];
|
|
1387
|
+
NSNumber *strongDonation = [donation copy];
|
|
1388
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
1389
|
+
NSNumber *strongMinConfirmations = [minConfirmations copy];
|
|
1390
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1391
|
+
|
|
1392
|
+
EXEC_ASYNC({
|
|
1393
|
+
NSDictionary *result = [RgbSwiftHelper _send:strongWalletId
|
|
1394
|
+
recipientMap:strongRecipientMap
|
|
1395
|
+
donation:strongDonation
|
|
1396
|
+
feeRate:strongFeeRate
|
|
1397
|
+
minConfirmations:strongMinConfirmations
|
|
1398
|
+
skipSync:strongSkipSync];
|
|
1399
|
+
NSString *errorMessage = result[@"error"];
|
|
1400
|
+
if (errorMessage != nil) {
|
|
1401
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1402
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1403
|
+
if (strongReject) {
|
|
1404
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1405
|
+
}
|
|
1406
|
+
});
|
|
1407
|
+
} else {
|
|
1408
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1409
|
+
if (strongSelf && strongResolve) {
|
|
1410
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1411
|
+
}
|
|
1412
|
+
}
|
|
1413
|
+
});
|
|
1414
|
+
}
|
|
1415
|
+
|
|
1416
|
+
- (void)sendBegin:(NSNumber *)walletId
|
|
1417
|
+
recipientMap:(NSDictionary *)recipientMap
|
|
1418
|
+
donation:(NSNumber *)donation
|
|
1419
|
+
feeRate:(NSNumber *)feeRate
|
|
1420
|
+
minConfirmations:(NSNumber *)minConfirmations
|
|
1421
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1422
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1423
|
+
{
|
|
1424
|
+
__weak Rgb *weakSelf = self;
|
|
1425
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1426
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1427
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1428
|
+
NSDictionary *strongRecipientMap = [recipientMap copy];
|
|
1429
|
+
NSNumber *strongDonation = [donation copy];
|
|
1430
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
1431
|
+
NSNumber *strongMinConfirmations = [minConfirmations copy];
|
|
1432
|
+
|
|
1433
|
+
EXEC_ASYNC({
|
|
1434
|
+
NSDictionary *result = [RgbSwiftHelper _sendBegin:strongWalletId
|
|
1435
|
+
recipientMap:strongRecipientMap
|
|
1436
|
+
donation:strongDonation
|
|
1437
|
+
feeRate:strongFeeRate
|
|
1438
|
+
minConfirmations:strongMinConfirmations];
|
|
1439
|
+
NSString *errorMessage = result[@"error"];
|
|
1440
|
+
if (errorMessage != nil) {
|
|
1441
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1442
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1443
|
+
if (strongReject) {
|
|
1444
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1445
|
+
}
|
|
1446
|
+
});
|
|
1447
|
+
} else {
|
|
1448
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1449
|
+
if (strongSelf && strongResolve) {
|
|
1450
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
1451
|
+
}
|
|
1452
|
+
}
|
|
1453
|
+
});
|
|
1454
|
+
}
|
|
1455
|
+
|
|
1456
|
+
- (void)sendBtc:(NSNumber *)walletId
|
|
1457
|
+
address:(NSString *)address
|
|
1458
|
+
amount:(NSNumber *)amount
|
|
1459
|
+
feeRate:(NSNumber *)feeRate
|
|
1460
|
+
skipSync:(NSNumber *)skipSync
|
|
1461
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1462
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1463
|
+
{
|
|
1464
|
+
__weak Rgb *weakSelf = self;
|
|
1465
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1466
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1467
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1468
|
+
NSString *strongAddress = [address copy];
|
|
1469
|
+
NSNumber *strongAmount = [amount copy];
|
|
1470
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
1471
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1472
|
+
|
|
1473
|
+
EXEC_ASYNC({
|
|
1474
|
+
NSDictionary *result = [RgbSwiftHelper _sendBtc:strongWalletId
|
|
1475
|
+
address:strongAddress
|
|
1476
|
+
amount:strongAmount
|
|
1477
|
+
feeRate:strongFeeRate
|
|
1478
|
+
skipSync:strongSkipSync];
|
|
1479
|
+
NSString *errorMessage = result[@"error"];
|
|
1480
|
+
if (errorMessage != nil) {
|
|
1481
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1482
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1483
|
+
if (strongReject) {
|
|
1484
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1485
|
+
}
|
|
1486
|
+
});
|
|
1487
|
+
} else {
|
|
1488
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1489
|
+
if (strongSelf && strongResolve) {
|
|
1490
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"txid"]];
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1493
|
+
});
|
|
1494
|
+
}
|
|
1495
|
+
|
|
1496
|
+
- (void)sendBtcBegin:(NSNumber *)walletId
|
|
1497
|
+
address:(NSString *)address
|
|
1498
|
+
amount:(NSNumber *)amount
|
|
1499
|
+
feeRate:(NSNumber *)feeRate
|
|
1500
|
+
skipSync:(NSNumber *)skipSync
|
|
1501
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1502
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1503
|
+
{
|
|
1504
|
+
__weak Rgb *weakSelf = self;
|
|
1505
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1506
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1507
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1508
|
+
NSString *strongAddress = [address copy];
|
|
1509
|
+
NSNumber *strongAmount = [amount copy];
|
|
1510
|
+
NSNumber *strongFeeRate = [feeRate copy];
|
|
1511
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1512
|
+
|
|
1513
|
+
EXEC_ASYNC({
|
|
1514
|
+
NSDictionary *result = [RgbSwiftHelper _sendBtcBegin:strongWalletId
|
|
1515
|
+
address:strongAddress
|
|
1516
|
+
amount:strongAmount
|
|
1517
|
+
feeRate:strongFeeRate
|
|
1518
|
+
skipSync:strongSkipSync];
|
|
1519
|
+
NSString *errorMessage = result[@"error"];
|
|
1520
|
+
if (errorMessage != nil) {
|
|
1521
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1522
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1523
|
+
if (strongReject) {
|
|
1524
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1525
|
+
}
|
|
1526
|
+
});
|
|
1527
|
+
} else {
|
|
1528
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1529
|
+
if (strongSelf && strongResolve) {
|
|
1530
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
1531
|
+
}
|
|
1532
|
+
}
|
|
1533
|
+
});
|
|
1534
|
+
}
|
|
1535
|
+
|
|
1536
|
+
- (void)sendBtcEnd:(NSNumber *)walletId
|
|
1537
|
+
signedPsbt:(NSString *)signedPsbt
|
|
1538
|
+
skipSync:(NSNumber *)skipSync
|
|
1539
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1540
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1541
|
+
{
|
|
1542
|
+
__weak Rgb *weakSelf = self;
|
|
1543
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1544
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1545
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1546
|
+
NSString *strongSignedPsbt = [signedPsbt copy];
|
|
1547
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1548
|
+
|
|
1549
|
+
EXEC_ASYNC({
|
|
1550
|
+
NSDictionary *result = [RgbSwiftHelper _sendBtcEnd:strongWalletId signedPsbt:strongSignedPsbt skipSync:strongSkipSync];
|
|
1551
|
+
NSString *errorMessage = result[@"error"];
|
|
1552
|
+
if (errorMessage != nil) {
|
|
1553
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1554
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1555
|
+
if (strongReject) {
|
|
1556
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1557
|
+
}
|
|
1558
|
+
});
|
|
1559
|
+
} else {
|
|
1560
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1561
|
+
if (strongSelf && strongResolve) {
|
|
1562
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"txid"]];
|
|
1563
|
+
}
|
|
1564
|
+
}
|
|
1565
|
+
});
|
|
1566
|
+
}
|
|
1567
|
+
|
|
1568
|
+
- (void)sendEnd:(NSNumber *)walletId
|
|
1569
|
+
signedPsbt:(NSString *)signedPsbt
|
|
1570
|
+
skipSync:(NSNumber *)skipSync
|
|
1571
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1572
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1573
|
+
{
|
|
1574
|
+
__weak Rgb *weakSelf = self;
|
|
1575
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1576
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1577
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1578
|
+
NSString *strongSignedPsbt = [signedPsbt copy];
|
|
1579
|
+
NSNumber *strongSkipSync = [skipSync copy];
|
|
1580
|
+
|
|
1581
|
+
EXEC_ASYNC({
|
|
1582
|
+
NSDictionary *result = [RgbSwiftHelper _sendEnd:strongWalletId signedPsbt:strongSignedPsbt skipSync:strongSkipSync];
|
|
1583
|
+
NSString *errorMessage = result[@"error"];
|
|
1584
|
+
if (errorMessage != nil) {
|
|
1585
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1586
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1587
|
+
if (strongReject) {
|
|
1588
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1589
|
+
}
|
|
1590
|
+
});
|
|
1591
|
+
} else {
|
|
1592
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1593
|
+
if (strongSelf && strongResolve) {
|
|
1594
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1595
|
+
}
|
|
1596
|
+
}
|
|
1597
|
+
});
|
|
1598
|
+
}
|
|
1599
|
+
|
|
1600
|
+
- (void)signPsbt:(NSNumber *)walletId
|
|
1601
|
+
unsignedPsbt:(NSString *)unsignedPsbt
|
|
1602
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1603
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1604
|
+
{
|
|
1605
|
+
__weak Rgb *weakSelf = self;
|
|
1606
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1607
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1608
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1609
|
+
NSString *strongUnsignedPsbt = [unsignedPsbt copy];
|
|
1610
|
+
|
|
1611
|
+
EXEC_ASYNC({
|
|
1612
|
+
NSDictionary *result = [RgbSwiftHelper _signPsbt:strongWalletId unsignedPsbt:strongUnsignedPsbt];
|
|
1613
|
+
NSString *errorMessage = result[@"error"];
|
|
1614
|
+
if (errorMessage != nil) {
|
|
1615
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1616
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1617
|
+
if (strongReject) {
|
|
1618
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1619
|
+
}
|
|
1620
|
+
});
|
|
1621
|
+
} else {
|
|
1622
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1623
|
+
if (strongSelf && strongResolve) {
|
|
1624
|
+
[strongSelf resolvePromise:strongResolve withResult:result[@"psbt"]];
|
|
1625
|
+
}
|
|
1626
|
+
}
|
|
1627
|
+
});
|
|
1628
|
+
}
|
|
1629
|
+
|
|
1630
|
+
- (void)sync:(NSNumber *)walletId
|
|
1631
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1632
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1633
|
+
{
|
|
1634
|
+
__weak Rgb *weakSelf = self;
|
|
1635
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1636
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1637
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1638
|
+
|
|
1639
|
+
EXEC_ASYNC({
|
|
1640
|
+
NSDictionary *result = [RgbSwiftHelper _sync:strongWalletId];
|
|
1641
|
+
NSString *errorMessage = result[@"error"];
|
|
1642
|
+
if (errorMessage != nil) {
|
|
1643
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1644
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1645
|
+
if (strongReject) {
|
|
1646
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1647
|
+
}
|
|
1648
|
+
});
|
|
1649
|
+
} else {
|
|
1650
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1651
|
+
if (strongSelf && strongResolve) {
|
|
1652
|
+
[strongSelf resolvePromise:strongResolve withResult:nil];
|
|
1653
|
+
}
|
|
1654
|
+
}
|
|
1655
|
+
});
|
|
1656
|
+
}
|
|
1657
|
+
|
|
1658
|
+
- (void)witnessReceive:(NSNumber *)walletId
|
|
1659
|
+
assetId:(NSString *)assetId
|
|
1660
|
+
assignment:(NSDictionary *)assignment
|
|
1661
|
+
durationSeconds:(NSNumber *)durationSeconds
|
|
1662
|
+
transportEndpoints:(NSArray<NSString *> *)transportEndpoints
|
|
1663
|
+
minConfirmations:(NSNumber *)minConfirmations
|
|
1664
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1665
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1666
|
+
{
|
|
1667
|
+
__weak Rgb *weakSelf = self;
|
|
1668
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1669
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1670
|
+
NSNumber *strongWalletId = [walletId copy];
|
|
1671
|
+
NSString *strongAssetId = assetId ? [assetId copy] : nil;
|
|
1672
|
+
NSDictionary *strongAssignment = [assignment copy];
|
|
1673
|
+
NSNumber *strongDurationSeconds = durationSeconds ? [durationSeconds copy] : nil;
|
|
1674
|
+
NSArray *strongTransportEndpoints = [transportEndpoints copy];
|
|
1675
|
+
NSNumber *strongMinConfirmations = [minConfirmations copy];
|
|
1676
|
+
|
|
1677
|
+
EXEC_ASYNC({
|
|
1678
|
+
NSDictionary *result = [RgbSwiftHelper _witnessReceive:strongWalletId
|
|
1679
|
+
assetId:strongAssetId
|
|
1680
|
+
assignment:strongAssignment
|
|
1681
|
+
durationSeconds:strongDurationSeconds
|
|
1682
|
+
transportEndpoints:strongTransportEndpoints
|
|
1683
|
+
minConfirmations:strongMinConfirmations];
|
|
1684
|
+
NSString *errorMessage = result[@"error"];
|
|
1685
|
+
if (errorMessage != nil) {
|
|
1686
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1687
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1688
|
+
if (strongReject) {
|
|
1689
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1690
|
+
}
|
|
1691
|
+
});
|
|
1692
|
+
} else {
|
|
1693
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1694
|
+
if (strongSelf && strongResolve) {
|
|
1695
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1696
|
+
}
|
|
1697
|
+
}
|
|
1698
|
+
});
|
|
1699
|
+
}
|
|
1700
|
+
|
|
1701
|
+
- (void)decodeInvoice:(NSString *)invoice
|
|
1702
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
1703
|
+
reject:(RCTPromiseRejectBlock)reject
|
|
1704
|
+
{
|
|
1705
|
+
__weak Rgb *weakSelf = self;
|
|
1706
|
+
RCTPromiseResolveBlock strongResolve = resolve;
|
|
1707
|
+
RCTPromiseRejectBlock strongReject = reject;
|
|
1708
|
+
NSString *strongInvoice = [invoice copy];
|
|
1709
|
+
|
|
1710
|
+
EXEC_ASYNC({
|
|
1711
|
+
NSDictionary *result = [RgbSwiftHelper _decodeInvoice:strongInvoice];
|
|
1712
|
+
NSString *errorMessage = result[@"error"];
|
|
1713
|
+
if (errorMessage != nil) {
|
|
1714
|
+
NSString *errorCode = result[@"errorCode"] ?: @"ERROR";
|
|
1715
|
+
dispatch_async(dispatch_get_main_queue(), ^{
|
|
1716
|
+
if (strongReject) {
|
|
1717
|
+
strongReject(errorCode, errorMessage, nil);
|
|
1718
|
+
}
|
|
1719
|
+
});
|
|
1720
|
+
} else {
|
|
1721
|
+
__strong Rgb *strongSelf = weakSelf;
|
|
1722
|
+
if (strongSelf && strongResolve) {
|
|
1723
|
+
[strongSelf resolvePromise:strongResolve withResult:result];
|
|
1724
|
+
}
|
|
1725
|
+
}
|
|
1726
|
+
});
|
|
1727
|
+
}
|
|
1728
|
+
|
|
1729
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
1730
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
1731
|
+
{
|
|
1732
|
+
return std::make_shared<facebook::react::NativeRgbSpecJSI>(params);
|
|
1733
|
+
}
|
|
1734
|
+
|
|
1735
|
+
+ (NSString *)moduleName
|
|
1736
|
+
{
|
|
1737
|
+
return @"Rgb";
|
|
1738
|
+
}
|
|
1739
|
+
|
|
1740
|
+
@end
|