Merge pull request #6933 from gabrielbazan7/fix/promises

fix reject and resolve promises
This commit is contained in:
Gustavo Maximiliano Cortez 2017-10-19 12:44:33 -03:00 committed by GitHub
commit 98e9f4472b
1 changed files with 133 additions and 133 deletions

View File

@ -141,11 +141,11 @@ export class WalletProvider {
}, (err, ret) => { }, (err, ret) => {
if (err) { if (err) {
if (err instanceof this.errors.NOT_AUTHORIZED) { if (err instanceof this.errors.NOT_AUTHORIZED) {
reject('WALLET_NOT_REGISTERED'); return reject('WALLET_NOT_REGISTERED');
} }
reject(err); return reject(err);
} }
resolve(null); return resolve(null);
}); });
}) })
}; };
@ -201,11 +201,11 @@ export class WalletProvider {
this.getAddress(wallet, true).then((addr) => { this.getAddress(wallet, true).then((addr) => {
this.logger.debug('New address: ', addr); this.logger.debug('New address: ', addr);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
} }
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
this.rateProvider.whenAvailable().then(() => { this.rateProvider.whenAvailable().then(() => {
@ -252,7 +252,7 @@ export class WalletProvider {
this.logger.debug('Wallet status cache hit:' + wallet.id); this.logger.debug('Wallet status cache hit:' + wallet.id);
cacheStatus(wallet.cachedStatus); cacheStatus(wallet.cachedStatus);
processPendingTxps(wallet.cachedStatus); processPendingTxps(wallet.cachedStatus);
resolve(wallet.cachedStatus); return resolve(wallet.cachedStatus);
}; };
tries = tries || 0; tries = tries || 0;
@ -276,9 +276,9 @@ export class WalletProvider {
wallet.scanning = status.wallet && status.wallet.scanStatus == 'running'; wallet.scanning = status.wallet && status.wallet.scanStatus == 'running';
resolve(status); return resolve(status);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
@ -296,9 +296,9 @@ export class WalletProvider {
let used = lodash.find(byAddress, { let used = lodash.find(byAddress, {
address: addr address: addr
}); });
resolve(used); return resolve(used);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -306,22 +306,22 @@ export class WalletProvider {
private getAddress(wallet: any, forceNew: boolean): Promise<any> { private getAddress(wallet: any, forceNew: boolean): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.persistenceProvider.getLastAddress(wallet.id).then((addr) => { this.persistenceProvider.getLastAddress(wallet.id).then((addr) => {
if (!forceNew && addr) resolve(addr); if (!forceNew && addr) return resolve(addr);
if (!wallet.isComplete()) if (!wallet.isComplete())
reject('WALLET_NOT_COMPLETE'); return reject('WALLET_NOT_COMPLETE');
this.createAddress(wallet).then((_addr) => { this.createAddress(wallet).then((_addr) => {
this.persistenceProvider.storeLastAddress(wallet.id, _addr).then(() => { this.persistenceProvider.storeLastAddress(wallet.id, _addr).then(() => {
resolve(_addr); return resolve(_addr);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -345,15 +345,15 @@ export class WalletProvider {
reverse: true, reverse: true,
limit: 1 limit: 1
}, (err, addr) => { }, (err, addr) => {
if (err) reject(err); if (err) return reject(err);
resolve(addr[0].address); return resolve(addr[0].address);
}); });
}; };
this.bwcErrorProvider.cb(err, prefix).then((msg) => { this.bwcErrorProvider.cb(err, prefix).then((msg) => {
reject(msg); return reject(msg);
}); });
}; };
resolve(addr.address); return resolve(addr.address);
}); });
}); });
} }
@ -365,7 +365,7 @@ export class WalletProvider {
let localTxs = []; let localTxs = [];
if (!txs) { if (!txs) {
resolve(localTxs); return resolve(localTxs);
}; };
try { try {
@ -373,9 +373,9 @@ export class WalletProvider {
} catch (ex) { } catch (ex) {
this.logger.warn(ex); this.logger.warn(ex);
}; };
resolve(lodash.compact(localTxs)); return resolve(lodash.compact(localTxs));
}).catch((err: Error) => { }).catch((err: Error) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -388,10 +388,10 @@ export class WalletProvider {
skip: skip, skip: skip,
limit: limit limit: limit
}, (err: Error, txsFromServer: Array<any>) => { }, (err: Error, txsFromServer: Array<any>) => {
if (err) reject(err); if (err) return reject(err);
if (!txsFromServer.length) if (!txsFromServer.length)
resolve(); return resolve();
res = lodash.takeWhile(txsFromServer, (tx) => { res = lodash.takeWhile(txsFromServer, (tx) => {
return tx.txid != endingTxid; return tx.txid != endingTxid;
@ -402,7 +402,7 @@ export class WalletProvider {
shouldContinue: res.length >= limit shouldContinue: res.length >= limit
}; };
resolve(result); return resolve(result);
}); });
}); });
} }
@ -469,13 +469,13 @@ export class WalletProvider {
}); });
if (foundLimitTx) { if (foundLimitTx) {
this.logger.debug('Found limitTX: ' + opts.limitTx); this.logger.debug('Found limitTX: ' + opts.limitTx);
resolve(foundLimitTx); return resolve(foundLimitTx);
} }
} }
// </HACK> // </HACK>
if (!shouldContinue) { if (!shouldContinue) {
this.logger.debug('Finished Sync: New / soft confirmed Txs: ' + newTxs.length); this.logger.debug('Finished Sync: New / soft confirmed Txs: ' + newTxs.length);
resolve(newTxs); return resolve(newTxs);
}; };
requestLimit = LIMIT; requestLimit = LIMIT;
@ -484,11 +484,11 @@ export class WalletProvider {
this.logger.warn(this.bwcErrorProvider.msg(err, 'Server Error')); //TODO this.logger.warn(this.bwcErrorProvider.msg(err, 'Server Error')); //TODO
if (err instanceof this.errors.CONNECTION_ERROR || (err.message && err.message.match(/5../))) { if (err instanceof this.errors.CONNECTION_ERROR || (err.message && err.message.match(/5../))) {
this.logger.info('Retrying history download in 5 secs...'); this.logger.info('Retrying history download in 5 secs...');
reject(setTimeout(() => { return reject(setTimeout(() => {
return getNewTxs(newTxs, skip); return getNewTxs(newTxs, skip);
}, 5000)); }, 5000));
}; };
reject(err); return reject(err);
}); });
}); });
}; };
@ -503,7 +503,7 @@ export class WalletProvider {
let updateNotes = (): Promise<any> => { let updateNotes = (): Promise<any> => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!endingTs) resolve(); if (!endingTs) return resolve();
this.logger.debug('Syncing notes from: ' + endingTs); this.logger.debug('Syncing notes from: ' + endingTs);
wallet.getTxNotes({ wallet.getTxNotes({
@ -511,7 +511,7 @@ export class WalletProvider {
}, (err: any, notes: any) => { }, (err: any, notes: any) => {
if (err) { if (err) {
this.logger.warn(err); this.logger.warn(err);
reject(err); return reject(err);
}; };
lodash.each(notes, (note: any) => { lodash.each(notes, (note: any) => {
this.logger.debug('Note for ' + note.txid); this.logger.debug('Note for ' + note.txid);
@ -522,7 +522,7 @@ export class WalletProvider {
}; };
}); });
}); });
resolve(); return resolve();
}); });
}); });
}; };
@ -542,7 +542,7 @@ export class WalletProvider {
// <HACK> // <HACK>
if (foundLimitTx) { if (foundLimitTx) {
this.logger.debug('Tx history read until limitTx: ' + opts.limitTx); this.logger.debug('Tx history read until limitTx: ' + opts.limitTx);
resolve(newHistory); return resolve(newHistory);
} }
// </HACK> // </HACK>
@ -559,18 +559,18 @@ export class WalletProvider {
return this.persistenceProvider.setTxHistory(historyToSave, walletId).then(() => { return this.persistenceProvider.setTxHistory(historyToSave, walletId).then(() => {
this.logger.debug('Tx History saved.'); this.logger.debug('Tx History saved.');
resolve(); return resolve();
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -668,8 +668,8 @@ export class WalletProvider {
wallet.getTxNote({ wallet.getTxNote({
txid: txid txid: txid
}, (err: any, note: any) => { }, (err: any, note: any) => {
if (err) reject(err); if (err) return reject(err);
resolve(note); return resolve(note);
}); });
}); });
} }
@ -677,8 +677,8 @@ export class WalletProvider {
public editTxNote(wallet: any, args: any): Promise<any> { public editTxNote(wallet: any, args: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
wallet.editTxNote(args, (err: any, res: any) => { wallet.editTxNote(args, (err: any, res: any) => {
if (err) reject(err); if (err) return reject(err);
resolve(res); return resolve(res);
}); });
}); });
} }
@ -686,8 +686,8 @@ export class WalletProvider {
public getTxp(wallet: any, txpid: string): Promise<any> { public getTxp(wallet: any, txpid: string): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
wallet.getTx(txpid, (err: any, txp: any) => { wallet.getTx(txpid, (err: any, txp: any) => {
if (err) reject(err); if (err) return reject(err);
resolve(txp); return resolve(txp);
}); });
}); });
} }
@ -699,8 +699,8 @@ export class WalletProvider {
txid: txid txid: txid
}); });
if (!tx) reject('Could not get transaction'); if (!tx) return reject('Could not get transaction');
resolve(tx); return resolve(tx);
}; };
if (wallet.completeHistory && wallet.completeHistory.isValid) { if (wallet.completeHistory && wallet.completeHistory.isValid) {
@ -712,7 +712,7 @@ export class WalletProvider {
this.getTxHistory(wallet, opts).then((txHistory: any) => { this.getTxHistory(wallet, opts).then((txHistory: any) => {
finish(txHistory); finish(txHistory);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}; };
}); });
@ -723,24 +723,24 @@ export class WalletProvider {
opts = opts ? opts : {}; opts = opts ? opts : {};
let walletId = wallet.credentials.walletId; let walletId = wallet.credentials.walletId;
if (!wallet.isComplete()) resolve(); if (!wallet.isComplete()) return resolve();
let isHistoryCached = () => { let isHistoryCached = () => {
return wallet.completeHistory && wallet.completeHistory.isValid; return wallet.completeHistory && wallet.completeHistory.isValid;
}; };
if (isHistoryCached() && !opts.force) resolve(wallet.completeHistory); if (isHistoryCached() && !opts.force) return resolve(wallet.completeHistory);
this.logger.debug('Updating Transaction History'); this.logger.debug('Updating Transaction History');
this.updateLocalTxHistory(wallet, opts).then((txs: any) => { this.updateLocalTxHistory(wallet, opts).then((txs: any) => {
if (opts.limitTx) { if (opts.limitTx) {
resolve(txs); return resolve(txs);
}; };
wallet.completeHistory.isValid = true; wallet.completeHistory.isValid = true;
resolve(wallet.completeHistory); return resolve(wallet.completeHistory);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -755,13 +755,13 @@ export class WalletProvider {
public createTx(wallet: any, txp: any) { public createTx(wallet: any, txp: any) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (lodash.isEmpty(txp) || lodash.isEmpty(wallet)) if (lodash.isEmpty(txp) || lodash.isEmpty(wallet))
reject('MISSING_PARAMETER'); return reject('MISSING_PARAMETER');
wallet.createTxProposal(txp, (err: any, createdTxp: any) => { wallet.createTxProposal(txp, (err: any, createdTxp: any) => {
if (err) reject(err); if (err) return reject(err);
else { else {
this.logger.debug('Transaction created'); this.logger.debug('Transaction created');
resolve(createdTxp); return resolve(createdTxp);
}; };
}); });
}); });
@ -770,14 +770,14 @@ export class WalletProvider {
public publishTx(wallet: any, txp: any): Promise<any> { public publishTx(wallet: any, txp: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (lodash.isEmpty(txp) || lodash.isEmpty(wallet)) if (lodash.isEmpty(txp) || lodash.isEmpty(wallet))
reject('MISSING_PARAMETER'); return reject('MISSING_PARAMETER');
wallet.publishTxProposal({ wallet.publishTxProposal({
txp: txp txp: txp
}, (err: any, publishedTx: any) => { }, (err: any, publishedTx: any) => {
if (err) reject(err); if (err) return reject(err);
else { else {
this.logger.debug('Transaction published'); this.logger.debug('Transaction published');
resolve(publishedTx); return resolve(publishedTx);
}; };
}); });
}); });
@ -786,17 +786,17 @@ export class WalletProvider {
signTx(wallet: any, txp: any, password: string): Promise<any> { signTx(wallet: any, txp: any, password: string): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!wallet || !txp) if (!wallet || !txp)
reject('MISSING_PARAMETER'); return reject('MISSING_PARAMETER');
try { try {
wallet.signTxProposal(txp, password, (err: any, signedTxp: any) => { wallet.signTxProposal(txp, password, (err: any, signedTxp: any) => {
this.logger.debug('Transaction signed err:' + err); this.logger.debug('Transaction signed err:' + err);
if (err) reject(err); if (err) return reject(err);
resolve(signedTxp); return resolve(signedTxp);
}); });
} catch (e) { } catch (e) {
this.logger.warn('Error at signTxProposal:', e); this.logger.warn('Error at signTxProposal:', e);
reject(e); return reject(e);
}; };
}); });
} }
@ -804,19 +804,19 @@ export class WalletProvider {
public broadcastTx(wallet: any, txp: any): Promise<any> { public broadcastTx(wallet: any, txp: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (lodash.isEmpty(txp) || lodash.isEmpty(wallet)) if (lodash.isEmpty(txp) || lodash.isEmpty(wallet))
reject('MISSING_PARAMETER'); return reject('MISSING_PARAMETER');
if (txp.status != 'accepted') if (txp.status != 'accepted')
reject('TX_NOT_ACCEPTED'); return reject('TX_NOT_ACCEPTED');
wallet.broadcastTxProposal(txp, (err: any, broadcastedTxp: any, memo: any) => { wallet.broadcastTxProposal(txp, (err: any, broadcastedTxp: any, memo: any) => {
if (err) if (err)
reject(err); return reject(err);
this.logger.debug('Transaction broadcasted'); this.logger.debug('Transaction broadcasted');
if (memo) this.logger.info(memo); if (memo) this.logger.info(memo);
resolve(broadcastedTxp); return resolve(broadcastedTxp);
}); });
}); });
} }
@ -824,13 +824,13 @@ export class WalletProvider {
public rejectTx(wallet: any, txp: any): Promise<any> { public rejectTx(wallet: any, txp: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (lodash.isEmpty(txp) || lodash.isEmpty(wallet)) if (lodash.isEmpty(txp) || lodash.isEmpty(wallet))
reject('MISSING_PARAMETER'); return reject('MISSING_PARAMETER');
wallet.rejectTxProposal(txp, null, (err: any, rejectedTxp: any) => { wallet.rejectTxProposal(txp, null, (err: any, rejectedTxp: any) => {
if (err) if (err)
reject(err); return reject(err);
this.logger.debug('Transaction rejected'); this.logger.debug('Transaction rejected');
resolve(rejectedTxp); return resolve(rejectedTxp);
}); });
}); });
} }
@ -838,14 +838,14 @@ export class WalletProvider {
public removeTx(wallet: any, txp: any): Promise<any> { public removeTx(wallet: any, txp: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (lodash.isEmpty(txp) || lodash.isEmpty(wallet)) if (lodash.isEmpty(txp) || lodash.isEmpty(wallet))
reject('MISSING_PARAMETER'); return reject('MISSING_PARAMETER');
wallet.removeTxProposal(txp, (err: any) => { wallet.removeTxProposal(txp, (err: any) => {
this.logger.debug('Transaction removed'); this.logger.debug('Transaction removed');
this.invalidateCache(wallet); this.invalidateCache(wallet);
// $rootScope.$emit('Local/TxAction', wallet.id); // $rootScope.$emit('Local/TxAction', wallet.id);
resolve(err); return resolve(err);
}); });
}); });
} }
@ -860,14 +860,14 @@ export class WalletProvider {
let updateRemotePreferencesFor = (clients: any, prefs: any): Promise<any> => { let updateRemotePreferencesFor = (clients: any, prefs: any): Promise<any> => {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
let wallet = clients.shift(); let wallet = clients.shift();
if (!wallet) resolve(); if (!wallet) return resolve();
this.logger.debug('Saving remote preferences', wallet.credentials.walletName, prefs); this.logger.debug('Saving remote preferences', wallet.credentials.walletName, prefs);
wallet.savePreferences(prefs, (err: any) => { wallet.savePreferences(prefs, (err: any) => {
if (err) { if (err) {
this.popupProvider.ionicAlert(this.bwcErrorProvider.msg(err, 'Could not save preferences on the server')); //TODO Gettextcatalog this.popupProvider.ionicAlert(this.bwcErrorProvider.msg(err, 'Could not save preferences on the server')); //TODO Gettextcatalog
reject(err); return reject(err);
} }
updateRemotePreferencesFor(clients, prefs); updateRemotePreferencesFor(clients, prefs);
@ -892,9 +892,9 @@ export class WalletProvider {
lodash.each(clients, (c: any) => { lodash.each(clients, (c: any) => {
c.preferences = lodash.assign(prefs, c.preferences); c.preferences = lodash.assign(prefs, c.preferences);
}); });
resolve(); return resolve();
}).catch((err: any) => { }).catch((err: any) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -906,8 +906,8 @@ export class WalletProvider {
wallet.recreateWallet((err: any) => { wallet.recreateWallet((err: any) => {
wallet.notAuthorized = false; wallet.notAuthorized = false;
this.ongoingProcess.set('recreating', false); this.ongoingProcess.set('recreating', false);
if (err) reject(err); if (err) return reject(err);
resolve(); return resolve();
}); });
}); });
} }
@ -915,14 +915,14 @@ export class WalletProvider {
public startScan(wallet: any): Promise<any> { public startScan(wallet: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.logger.debug('Scanning wallet ' + wallet.id); this.logger.debug('Scanning wallet ' + wallet.id);
if (!wallet.isComplete()) reject(); if (!wallet.isComplete()) return reject();
wallet.scanning = true; wallet.scanning = true;
wallet.startScan({ wallet.startScan({
includeCopayerBranches: true, includeCopayerBranches: true,
}, (err: any) => { }, (err: any) => {
if (err) reject(err); if (err) return reject(err);
resolve(); return resolve();
}); });
}); });
} }
@ -932,9 +932,9 @@ export class WalletProvider {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.logger.debug('Cleaning Address ' + wallet.id); this.logger.debug('Cleaning Address ' + wallet.id);
this.persistenceProvider.clearLastAddress(wallet.id).then(() => { this.persistenceProvider.clearLastAddress(wallet.id).then(() => {
resolve(); return resolve();
}).catch((err: any) => { }).catch((err: any) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -944,8 +944,8 @@ export class WalletProvider {
opts = opts || {}; opts = opts || {};
opts.reverse = true; opts.reverse = true;
wallet.getMainAddresses(opts, (err, addresses) => { wallet.getMainAddresses(opts, (err, addresses) => {
if (err) reject(err); if (err) return reject(err);
resolve(addresses); return resolve(addresses);
}); });
}); });
} }
@ -954,8 +954,8 @@ export class WalletProvider {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
opts = opts || {}; opts = opts || {};
wallet.getBalance(opts, (err, resp) => { wallet.getBalance(opts, (err, resp) => {
if (err) reject(err); if (err) return reject(err);
resolve(resp); return resolve(resp);
}); });
}); });
} }
@ -965,7 +965,7 @@ export class WalletProvider {
wallet.getUtxos({ wallet.getUtxos({
coin: wallet.coin coin: wallet.coin
}, (err, resp) => { }, (err, resp) => {
if (err || !resp || !resp.length) reject(err); if (err || !resp || !resp.length) return reject(err);
let minFee = this.getMinFee(wallet, levels, resp.length); let minFee = this.getMinFee(wallet, levels, resp.length);
@ -978,7 +978,7 @@ export class WalletProvider {
}); });
let totalLow = lodash.sumBy(lowUtxos, 'satoshis'); let totalLow = lodash.sumBy(lowUtxos, 'satoshis');
resolve({ return resolve({
allUtxos: resp || [], allUtxos: resp || [],
lowUtxos: lowUtxos || [], lowUtxos: lowUtxos || [],
warning: minFee / balance > this.TOTAL_LOW_WARNING_RATIO, warning: minFee / balance > this.TOTAL_LOW_WARNING_RATIO,
@ -1000,9 +1000,9 @@ export class WalletProvider {
private askPassword(name: string, title: string): Promise<any> { private askPassword(name: string, title: string): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.popupProvider.ionicPrompt(title, name, null, null).then((res: any) => { this.popupProvider.ionicPrompt(title, name, null, null).then((res: any) => {
resolve(res); return resolve(res);
}).catch((err: any) => { }).catch((err: any) => {
reject(err); return reject(err);
}); });
}); });
}; };
@ -1012,17 +1012,17 @@ export class WalletProvider {
var title = 'Enter new spending password'; //TODO gettextcatalog var title = 'Enter new spending password'; //TODO gettextcatalog
var warnMsg = 'Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down.'; //TODO gettextcatalog var warnMsg = 'Your wallet key will be encrypted. The Spending Password cannot be recovered. Be sure to write it down.'; //TODO gettextcatalog
this.askPassword(warnMsg, title).then((password: string) => { this.askPassword(warnMsg, title).then((password: string) => {
if (!password) reject('no password'); //TODO gettextcatalog if (!password) return reject('no password'); //TODO gettextcatalog
title = 'Confirm your new spending password'; //TODO gettextcatalog title = 'Confirm your new spending password'; //TODO gettextcatalog
this.askPassword(warnMsg, title).then((password2: string) => { this.askPassword(warnMsg, title).then((password2: string) => {
if (!password2 || password != password2) reject('password mismatch'); if (!password2 || password != password2) return reject('password mismatch');
wallet.encryptPrivateKey(password); wallet.encryptPrivateKey(password);
resolve(); return resolve();
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
@ -1032,38 +1032,38 @@ export class WalletProvider {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.logger.debug('Disabling private key encryption for' + wallet.name); this.logger.debug('Disabling private key encryption for' + wallet.name);
this.askPassword(null, 'Enter Spending Password').then((password: string) => { //TODO gettextcatalog this.askPassword(null, 'Enter Spending Password').then((password: string) => { //TODO gettextcatalog
if (!password) reject('no password'); if (!password) return reject('no password');
try { try {
wallet.decryptPrivateKey(password); wallet.decryptPrivateKey(password);
} catch (e) { } catch (e) {
reject(e); return reject(e);
} }
resolve(); return resolve();
}); });
}); });
} }
public handleEncryptedWallet(wallet: any): Promise<any> { public handleEncryptedWallet(wallet: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!this.isEncrypted(wallet)) reject(); if (!this.isEncrypted(wallet)) return reject();
this.askPassword(wallet.name, 'Enter Spending Password').then((password: string) => { //TODO gettextcatalog this.askPassword(wallet.name, 'Enter Spending Password').then((password: string) => { //TODO gettextcatalog
if (!password) reject('No password'); if (!password) return reject('No password');
if (!wallet.checkPassword(password)) reject('Wrong password'); if (!wallet.checkPassword(password)) return reject('Wrong password');
resolve(password); return resolve(password);
}); });
}); });
} }
public reject(wallet: any, txp: any): Promise<any> { public return reject(wallet: any, txp: any): Promise<any> {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.ongoingProcess.set('rejectTx', true); this.ongoingProcess.set('rejectTx', true);
this.rejectTx(wallet, txp).then((txpr: any) => { this.rejectTx(wallet, txp).then((txpr: any) => {
this.invalidateCache(wallet); this.invalidateCache(wallet);
this.ongoingProcess.set('rejectTx', false); this.ongoingProcess.set('rejectTx', false);
//$rootScope.$emit('Local/TxAction', wallet.id); //$rootScope.$emit('Local/TxAction', wallet.id);
resolve(txpr); return resolve(txpr);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -1075,9 +1075,9 @@ export class WalletProvider {
this.invalidateCache(wallet); this.invalidateCache(wallet);
this.ongoingProcess.set('sendingTx', false, customStatusHandler); this.ongoingProcess.set('sendingTx', false, customStatusHandler);
//$rootScope.$emit('Local/TxAction', wallet.id); //$rootScope.$emit('Local/TxAction', wallet.id);
resolve(); return resolve();
}).catch((err) => { }).catch((err) => {
reject(this.bwcErrorProvider.msg(err)); return reject(this.bwcErrorProvider.msg(err));
}); });
}); });
} }
@ -1086,12 +1086,12 @@ export class WalletProvider {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
this.touchidProvider.checkWallet(wallet).then(() => { this.touchidProvider.checkWallet(wallet).then(() => {
this.handleEncryptedWallet(wallet).then((password: string) => { this.handleEncryptedWallet(wallet).then((password: string) => {
resolve(password); return resolve(password);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
} }
@ -1108,19 +1108,19 @@ export class WalletProvider {
this.broadcastTx(wallet, signedTxp).then((broadcastedTxp: any) => { this.broadcastTx(wallet, signedTxp).then((broadcastedTxp: any) => {
this.ongoingProcess.set('broadcastingTx', false, customStatusHandler); this.ongoingProcess.set('broadcastingTx', false, customStatusHandler);
//$rootScope.$emit('Local/TxAction', wallet.id); //$rootScope.$emit('Local/TxAction', wallet.id);
resolve(broadcastedTxp); return resolve(broadcastedTxp);
}).catch((err) => { }).catch((err) => {
reject(this.bwcErrorProvider.msg(err)); return reject(this.bwcErrorProvider.msg(err));
}); });
} else { } else {
//$rootScope.$emit('Local/TxAction', wallet.id); //$rootScope.$emit('Local/TxAction', wallet.id);
resolve(signedTxp); return resolve(signedTxp);
}; };
}).catch((err) => { }).catch((err) => {
this.logger.warn('sign error:' + err); this.logger.warn('sign error:' + err);
let msg = err && err.message ? err.message : 'The payment was created but could not be completed. Please try again from home screen'; //TODO gettextcatalog let msg = err && err.message ? err.message : 'The payment was created but could not be completed. Please try again from home screen'; //TODO gettextcatalog
//$rootScope.$emit('Local/TxAction', wallet.id); //$rootScope.$emit('Local/TxAction', wallet.id);
reject(msg); return reject(msg);
}); });
}); });
} }
@ -1131,12 +1131,12 @@ export class WalletProvider {
if (txp.status == 'pending') { if (txp.status == 'pending') {
this.prepare(wallet).then((password: string) => { this.prepare(wallet).then((password: string) => {
this.signAndBroadcast(wallet, txp, password, customStatusHandler).then((broadcastedTxp: any) => { this.signAndBroadcast(wallet, txp, password, customStatusHandler).then((broadcastedTxp: any) => {
resolve(broadcastedTxp); return resolve(broadcastedTxp);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
reject(this.bwcErrorProvider.msg(err)); return reject(this.bwcErrorProvider.msg(err));
}); });
} else { } else {
this.prepare(wallet).then((password: string) => { this.prepare(wallet).then((password: string) => {
@ -1144,16 +1144,16 @@ export class WalletProvider {
this.publishTx(wallet, txp).then((publishedTxp: any) => { this.publishTx(wallet, txp).then((publishedTxp: any) => {
this.ongoingProcess.set('sendingTx', false, customStatusHandler); this.ongoingProcess.set('sendingTx', false, customStatusHandler);
this.signAndBroadcast(wallet, publishedTxp, password, customStatusHandler).then((broadcastedTxp: any) => { this.signAndBroadcast(wallet, publishedTxp, password, customStatusHandler).then((broadcastedTxp: any) => {
resolve(broadcastedTxp); return resolve(broadcastedTxp);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}).catch((err) => { }).catch((err) => {
this.ongoingProcess.set('sendingTx', false, customStatusHandler); this.ongoingProcess.set('sendingTx', false, customStatusHandler);
reject(this.bwcErrorProvider.msg(err)); return reject(this.bwcErrorProvider.msg(err));
}); });
}).catch((err) => { }).catch((err) => {
reject(this.bwcErrorProvider.msg(err)); return reject(this.bwcErrorProvider.msg(err));
}); });
}; };
}); });
@ -1171,7 +1171,7 @@ export class WalletProvider {
// not supported yet // not supported yet
if (wallet.credentials.derivationStrategy != 'BIP44' || !wallet.canSign()) if (wallet.credentials.derivationStrategy != 'BIP44' || !wallet.canSign())
reject('Exporting via QR not supported for this wallet'); //TODO gettextcatalog return reject('Exporting via QR not supported for this wallet'); //TODO gettextcatalog
var keys = this.getKeysWithPassword(wallet, password); var keys = this.getKeysWithPassword(wallet, password);
@ -1187,7 +1187,7 @@ export class WalletProvider {
} }
} }
resolve(info.type + '|' + info.data + '|' + wallet.credentials.network.toLowerCase() + '|' + derivationPath + '|' + (wallet.credentials.mnemonicHasPassphrase)); return resolve(info.type + '|' + info.data + '|' + wallet.credentials.network.toLowerCase() + '|' + derivationPath + '|' + (wallet.credentials.mnemonicHasPassphrase));
}); });
} }
@ -1208,12 +1208,12 @@ export class WalletProvider {
this.touchidProvider.checkWallet(wallet).then(() => { this.touchidProvider.checkWallet(wallet).then(() => {
this.configProvider.set(opts); this.configProvider.set(opts);
resolve(); return resolve();
}).catch((err) => { }).catch((err) => {
opts.touchIdFor[wallet.id] = !enabled; opts.touchIdFor[wallet.id] = !enabled;
this.logger.debug('Error with fingerprint:' + err); this.logger.debug('Error with fingerprint:' + err);
this.configProvider.set(opts); this.configProvider.set(opts);
reject(err); return reject(err);
}); });
}); });
} }
@ -1225,11 +1225,11 @@ export class WalletProvider {
try { try {
keys = wallet.getKeys(password); keys = wallet.getKeys(password);
} catch (e) { } catch (e) {
reject(e); return reject(e);
} }
resolve(keys); return resolve(keys);
}).catch((err) => { }).catch((err) => {
reject(err); return reject(err);
}); });
}); });
}; };
@ -1238,8 +1238,8 @@ export class WalletProvider {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
opts = opts || {}; opts = opts || {};
wallet.getSendMaxInfo(opts, (err: any, res: any) => { wallet.getSendMaxInfo(opts, (err: any, res: any) => {
if (err) reject(err); if (err) return reject(err);
resolve(res); return resolve(res);
}); });
}); });
}; };
@ -1261,8 +1261,8 @@ export class WalletProvider {
coin: newWallet.credentials.coin, coin: newWallet.credentials.coin,
}, (err: any) => { }, (err: any) => {
//Ignore error is copayer already in wallet //Ignore error is copayer already in wallet
if (err && !(err instanceof this.errors.COPAYER_IN_WALLET)) reject(err); if (err && !(err instanceof this.errors.COPAYER_IN_WALLET)) return reject(err);
if (++i == wallet.credentials.publicKeyRing.length) resolve(); if (++i == wallet.credentials.publicKeyRing.length) return resolve();
}); });
}); });
}); });