diff --git a/js/amount.js b/js/amount.js index b5c54228..10c9ffb3 100644 --- a/js/amount.js +++ b/js/amount.js @@ -136,8 +136,8 @@ UInt160.json_rewrite = function (j) { // Return a new UInt160 from j. UInt160.from_json = function (j) { return 'string' === typeof j - ? (new UInt160()).parse_json(j) - : j.clone(); + ? (new UInt160()).parse_json(j) + : j.clone(); }; UInt160.prototype.clone = function() { @@ -238,7 +238,9 @@ Currency.json_rewrite = function(j) { }; Currency.from_json = function (j) { - return (new Currency()).parse_json(j); + return 'string' === typeof j + ? (new Currency()).parse_json(j) + : j.clone(); }; Currency.prototype.clone = function() { diff --git a/js/remote.js b/js/remote.js index 1b0fe5a2..9e0b4fed 100644 --- a/js/remote.js +++ b/js/remote.js @@ -914,6 +914,17 @@ Transaction.prototype.submit = function () { var self = this; var transaction = this.transaction; + if ('string' !== typeof transaction.Account) + { + this.emit('error', { + 'error' : 'invalidAccount', + 'error_message' : 'Bad account.' + }); + return; + } + + // YYY Might check paths for invalid accounts. + if (undefined === transaction.Fee) { if ('Payment' === transaction.TransactionType && transaction.Flags & Remote.flags.Payment.CreateAccount) { @@ -989,8 +1000,10 @@ Transaction._path_rewrite = function (path) { if ('account' in node) node_new.account = UInt160.json_rewrite(node.account); + if ('issuer' in node) node_new.issuer = UInt160.json_rewrite(node.issuer); + if ('currency' in node) node_new.currency = Currency.json_rewrite(node.currency);