2015-08-12 11:08:33 -03:00
|
|
|
'use strict';
|
|
|
|
|
angular.module('copayApp.services')
|
2016-01-22 17:42:49 -03:00
|
|
|
.factory('bwsError', function bwcErrorService($log, gettextCatalog) {
|
2015-08-12 11:08:33 -03:00
|
|
|
var root = {};
|
2015-12-08 12:29:10 -03:00
|
|
|
|
|
|
|
|
root.msg = function(err, prefix) {
|
2016-01-22 17:42:49 -03:00
|
|
|
var name;
|
2016-01-22 16:51:46 -03:00
|
|
|
|
2016-01-22 17:42:49 -03:00
|
|
|
if (err.name == 'Error')
|
|
|
|
|
name = err.message
|
|
|
|
|
else
|
|
|
|
|
|
|
|
|
|
if (err.name)
|
|
|
|
|
name = err.name.replace(/^bwc.Error/g, '');
|
|
|
|
|
else
|
|
|
|
|
name = err;
|
2016-01-22 16:51:46 -03:00
|
|
|
|
2015-08-12 11:08:33 -03:00
|
|
|
var body = '';
|
|
|
|
|
prefix = prefix || '';
|
|
|
|
|
|
2016-01-22 17:42:49 -03:00
|
|
|
if (err && name) {
|
|
|
|
|
switch (name) {
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'INVALID_BACKUP':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'WALLET_DOES_NOT_EXIST':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'MISSING_PRIVATE_KEY':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'ENCRYPTED_PRIVATE_KEY':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'SERVER_COMPROMISED':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'COULD_NOT_BUILD_TRANSACTION':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'INSUFFICIENT_FUNDS':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'CONNECTION_ERROR':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'NOT_FOUND':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'ECONNRESET_ERROR':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'BAD_RESPONSE_CODE':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'WALLET_ALREADY_EXISTS':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2016-01-22 13:08:43 -03:00
|
|
|
break;
|
|
|
|
|
case 'COPAYER_IN_WALLET':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2016-01-22 13:08:43 -03:00
|
|
|
break;
|
|
|
|
|
case 'WALLET_FULL':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2016-01-22 13:08:43 -03:00
|
|
|
break;
|
|
|
|
|
case 'WALLET_NOT_FOUND':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2016-01-22 13:08:43 -03:00
|
|
|
break;
|
|
|
|
|
case 'INSUFFICIENT_FUNDS_FOR_FEE':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'LOCKED_FUNDS':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2016-01-22 13:08:43 -03:00
|
|
|
break;
|
|
|
|
|
case 'COPAYER_VOTED':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'NOT_AUTHORIZED':
|
2016-01-22 16:51:46 -03:00
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'TX_ALREADY_BROADCASTED':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('Transaction already broadcasted');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'TX_CANNOT_CREATE':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('Locktime in effect. Please wait to create a new spend proposal');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'TX_CANNOT_REMOVE':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('Locktime in effect. Please wait to remove this spend proposal');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'TX_NOT_ACCEPTED':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('Spend proposal is not accepted');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'TX_NOT_FOUND':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('Spend proposal not found');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'TX_NOT_PENDING':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('The spend proposal is not pending');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'UPGRADE_NEEDED':
|
2015-08-13 16:47:10 -03:00
|
|
|
body = gettextCatalog.getString('Please upgrade Copay to perform this action');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'BAD_SIGNATURES':
|
|
|
|
|
body = gettextCatalog.getString('Signatures rejected by server');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'COPAYER_DATA_MISMATCH':
|
|
|
|
|
body = gettextCatalog.getString('Copayer data mismatch');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'DUST_AMOUNT':
|
|
|
|
|
body = gettextCatalog.getString('Amount below dust threshold');
|
2015-08-12 11:08:33 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'INCORRECT_ADDRESS_NETWORK':
|
|
|
|
|
body = gettextCatalog.getString('Incorrect address network');
|
2015-09-02 15:56:00 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'COPAYER_REGISTERED':
|
|
|
|
|
body = gettextCatalog.getString('Key already associated with an existing wallet');
|
2015-09-02 15:56:00 -03:00
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'INVALID_ADDRESS':
|
|
|
|
|
body = gettextCatalog.getString('Invalid address');
|
2015-09-02 15:56:00 -03:00
|
|
|
break;
|
2015-11-04 16:17:04 -03:00
|
|
|
case 'MAIN_ADDRESS_GAP_REACHED':
|
2015-11-04 16:47:58 -03:00
|
|
|
body = gettextCatalog.getString('Empty addresses limit reached. New addresses cannot be generated.');
|
2015-11-04 16:17:04 -03:00
|
|
|
break;
|
2015-12-08 12:29:10 -03:00
|
|
|
case 'WALLET_LOCKED':
|
|
|
|
|
body = gettextCatalog.getString('Wallet is locked');
|
|
|
|
|
break;
|
2016-01-22 13:08:43 -03:00
|
|
|
case 'WALLET_NOT_COMPLETE':
|
|
|
|
|
body = gettextCatalog.getString('Wallet is not complete');
|
|
|
|
|
break;
|
2015-09-08 00:57:07 -03:00
|
|
|
case 'ERROR':
|
|
|
|
|
body = (err.message || err.error);
|
|
|
|
|
break;
|
|
|
|
|
|
2015-09-02 15:56:00 -03:00
|
|
|
default:
|
2016-01-22 17:42:49 -03:00
|
|
|
$log.warn('Unknown error type:', name);
|
|
|
|
|
body = err.message || name;
|
2015-09-02 15:56:00 -03:00
|
|
|
break;
|
2015-08-12 11:08:33 -03:00
|
|
|
}
|
2015-09-25 17:24:15 -03:00
|
|
|
} else if (err.message) {
|
|
|
|
|
body = gettextCatalog.getString(err.message);
|
2015-09-14 12:12:24 -03:00
|
|
|
} else {
|
|
|
|
|
body = gettextCatalog.getString(err);
|
2015-08-12 11:08:33 -03:00
|
|
|
}
|
|
|
|
|
|
2015-12-08 12:29:10 -03:00
|
|
|
var msg = prefix + (body ? (prefix ? ': ' : '') + body : '');
|
2015-08-12 11:08:33 -03:00
|
|
|
return msg;
|
|
|
|
|
};
|
|
|
|
|
|
2015-12-08 12:29:10 -03:00
|
|
|
root.cb = function(err, prefix, cb) {
|
2015-08-12 11:08:33 -03:00
|
|
|
return cb(root.msg(err, prefix))
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
return root;
|
|
|
|
|
});
|