switch to completeTransactions exposed method

This commit is contained in:
Gustavo Nunes 2017-04-24 22:51:52 -03:00 committed by Roman Volosovskyi
parent 8c262d0b07
commit 441ca66e96
4 changed files with 29 additions and 36 deletions

View File

@ -277,8 +277,8 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
}
@ReactMethod
public void completeTransaction(final String hash, final String password, final Callback callback) {
Log.d(TAG, "completeTransaction");
public void completeTransactions(final String hashes, final String password, final Callback callback) {
Log.d(TAG, "completeTransactions");
if (!checkAvailability()) {
callback.invoke(false);
return;
@ -287,8 +287,7 @@ class StatusModule extends ReactContextBaseJavaModule implements LifecycleEventL
Thread thread = new Thread() {
@Override
public void run() {
String res = Statusgo.CompleteTransaction(hash, password);
String res = Statusgo.CompleteTransactions(hashes, password);
callback.invoke(res);
}
};

View File

@ -249,21 +249,21 @@ RCT_EXPORT_METHOD(login:(NSString *)address
}
////////////////////////////////////////////////////////////////////
#pragma mark - Complete Transaction
//////////////////////////////////////////////////////////////////// completeTransaction
RCT_EXPORT_METHOD(completeTransaction:(NSString *)hash
#pragma mark - Complete Transactions
//////////////////////////////////////////////////////////////////// completeTransactions
RCT_EXPORT_METHOD(completeTransactions:(NSString *)hashes
password:(NSString *)password
callback:(RCTResponseSenderBlock)callback) {
#if DEBUG
NSLog(@"CompleteTransaction() method called");
NSLog(@"CompleteTransactions() method called");
#endif
char * result = CompleteTransaction((char *) [hash UTF8String], (char *) [password UTF8String]);
char * result = CompleteTransactions((char *) [hashes UTF8String], (char *) [password UTF8String]);
callback(@[[NSString stringWithUTF8String: result]]);
}
////////////////////////////////////////////////////////////////////
#pragma mark - Discard Transaction
//////////////////////////////////////////////////////////////////// completeTransaction
//////////////////////////////////////////////////////////////////// discardTransaction
RCT_EXPORT_METHOD(discardTransaction:(NSString *)id) {
#if DEBUG
NSLog(@"DiscardTransaction() method called");

View File

@ -10,6 +10,9 @@
[status-im.i18n :as i]
[status-im.utils.platform :as p]))
(defn cljs->json [data]
(.stringify js/JSON (clj->js data)))
;; if StatusModule is not initialized better to store
;; calls and make them only when StatusModule is ready
;; this flag helps to handle this
@ -108,11 +111,11 @@
(when status
(call-module #(.login status address password on-result))))
(defn complete-transaction
[hash password callback]
(log/debug :complete-transaction (boolean status) hash password)
(defn complete-transactions
[hashes password callback]
(log/debug :complete-transactions (boolean status) hashes password)
(when status
(call-module #(.completeTransaction status (str hash) password callback))))
(call-module #(.completeTransactions status (cljs->json hashes) password callback))))
(defn discard-transaction
[id]
@ -124,9 +127,6 @@
(when status
(call-module #(.parseJail status chat-id file callback))))
(defn cljs->json [data]
(.stringify js/JSON (clj->js data)))
(defn call-jail [chat-id path params callback]
(when status
(call-module

View File

@ -38,27 +38,22 @@
:wrong-password? false)
(assoc-in [:confirm-transactions :password] "")))
(defn on-unlock
[ids password]
(dispatch [:set :wrong-password? false])
(doseq [id ids]
(status/complete-transaction
id
password
#(dispatch [:transaction-completed
{:id id
:response %}]))))
(defn on-transactions-completed [raw-results]
(let [results (:results (t/json->clj raw-results))]
(doseq [result results]
(dispatch [:transaction-completed {:id (name (key result)) :response (second result)}]))))
(register-handler :accept-transactions
(u/side-effect!
(fn [{:keys [transactions]} [_ password]]
(let [ids (keys transactions)]
(on-unlock ids password)))))
(fn [{:keys [transactions]} [_ password]]
(dispatch [:set :wrong-password? false])
(status/complete-transactions (keys transactions) password on-transactions-completed))))
(register-handler :accept-transaction
(u/side-effect!
(fn [{:keys [transactions]} [_ password id]]
(on-unlock (list id) password))))
(fn [_ [_ password id]]
(dispatch [:set :wrong-password? false])
(status/complete-transactions (list id) password on-transactions-completed))))
(register-handler :deny-transactions
(u/side-effect!
@ -146,16 +141,15 @@
(register-handler :transaction-completed
(u/side-effect!
(fn [{:keys [transactions modal]} [_ {:keys [id response]}]]
(let [{:keys [hash error] :as parsed-response} (t/json->clj response)
(let [{:keys [hash error]} response
{:keys [message-id]} (transactions id)]
(log/debug :parsed-response parsed-response)
(log/debug :parsed-response response)
(when-not (and error (string? error) (not (s/blank? error)))
(if (and message-id (not (s/blank? message-id)))
(do (dispatch [::add-transactions-hash {:id id
:hash hash
:message-id message-id}])
(dispatch [::check-completed-transaction!
{:message-id message-id}]))
(dispatch [::check-completed-transaction! {:message-id message-id}]))
(dispatch [::remove-transaction id]))
(when (#{:unsigned-transactions :transaction-details} modal)
(dispatch [:navigate-to-modal :confirmation-success])))))))