diff --git a/js/models/core/Wallet.js b/js/models/core/Wallet.js index 7cfc6033d..cec091c8c 100644 --- a/js/models/core/Wallet.js +++ b/js/models/core/Wallet.js @@ -268,6 +268,11 @@ Wallet.fromObj = function(o, storage, network, blockchain) { return w; }; +Wallet.prototype.toEncryptedObj = function() { + var walletObj = this.toObj(); + return this.storage.export(walletObj); +}; + Wallet.prototype.sendTxProposals = function(recipients) { this.log('### SENDING txProposals TO:', recipients || 'All', this.txProposals); diff --git a/js/models/core/WalletFactory.js b/js/models/core/WalletFactory.js index a757c340a..8ffbc8403 100644 --- a/js/models/core/WalletFactory.js +++ b/js/models/core/WalletFactory.js @@ -68,6 +68,12 @@ WalletFactory.prototype.fromObj = function(obj) { return w; }; +WalletFactory.prototype.fromEncryptedObj = function(base64, password) { + this.storage._setPassphrase(password); + var walletObj = this.storage.import(base64); + return this.fromObj(walletObj); +}; + WalletFactory.prototype.read = function(walletId) { if (! this._checkRead(walletId)) return false; diff --git a/js/models/storage/LocalEncrypted.js b/js/models/storage/LocalEncrypted.js index 14a05ad12..cfeb1d2c5 100644 --- a/js/models/storage/LocalEncrypted.js +++ b/js/models/storage/LocalEncrypted.js @@ -157,4 +157,14 @@ Storage.prototype.clearAll = function() { localStorage.clear(); }; +Storage.prototype.export = function(obj) { + var encryptedObj = this._encryptObj(obj); + return encryptedObj; +}; + +Storage.prototype.import = function(base64) { + var decryptedObj = this._decryptObj(base64); + return decryptedObj; +}; + module.exports = require('soop')(Storage);