one wallet by default

This commit is contained in:
Matias Alejo Garcia 2014-09-30 16:04:17 -03:00
commit 508a8bfc3c
6 changed files with 25 additions and 10 deletions

View file

@ -3,7 +3,7 @@ var defaultConfig = {
defaultLanguage: 'en', defaultLanguage: 'en',
// DEFAULT network (livenet or testnet) // DEFAULT network (livenet or testnet)
networkName: 'livenet', networkName: 'livenet',
logLevel: 'info', logLevel: 'debug',
// wallet limits // wallet limits

View file

@ -106,13 +106,28 @@ Identity._profileOpen = function(e, p, s, cb) {
* @return {undefined} * @return {undefined}
*/ */
Identity.create = function(email, password, opts, cb) { Identity.create = function(email, password, opts, cb) {
opts = opts || {};
var iden = new Identity(email, password, opts); var iden = new Identity(email, password, opts);
Identity._createProfile(email, password, iden.storage, function(err, profile) { Identity._createProfile(email, password, iden.storage, function(err, profile) {
if (err) return cb(err); if (err) return cb(err);
iden.profile = profile; iden.profile = profile;
return cb(null, iden);
if (opts.noWallets)
cb(null, iden);
// default wallet
var wopts = {
nickname: email,
networkName: opts.networkName,
requiredCopayers: 1,
totalCopayers: 1,
};
iden.createWallet(wopts, function(err, w) {
return cb(null, iden, w);
});
}); });
}; };

View file

@ -8,7 +8,7 @@ function Profile(info, storage) {
preconditions.checkArgument(info.email); preconditions.checkArgument(info.email);
preconditions.checkArgument(info.hash); preconditions.checkArgument(info.hash);
preconditions.checkArgument(storage); preconditions.checkArgument(storage);
preconditions.checkArgument(storage.getItem); preconditions.checkArgument(storage.setPassphrase, 'bad storage');
this.hash = info.hash; this.hash = info.hash;
this.email = info.email; this.email = info.email;
@ -34,8 +34,7 @@ Profile.create = function(email, password, storage, cb) {
email: email, email: email,
hash: Profile.hash(email,password), hash: Profile.hash(email,password),
}, storage); }, storage);
p.store({}, cb);
p.store(cb);
}; };
Profile.open = function(email, password, storage, cb) { Profile.open = function(email, password, storage, cb) {
@ -118,6 +117,7 @@ Profile.prototype.store = function(opts, cb) {
var key = self.key; var key = self.key;
self.storage.get(key, function(val2) { self.storage.get(key, function(val2) {
if (val2 && !opts.overwrite) { if (val2 && !opts.overwrite) {
if (cb) if (cb)
return cb(new Error('PEXISTS: Profile already exist')) return cb(new Error('PEXISTS: Profile already exist'))

View file

@ -27,7 +27,7 @@ function Storage(opts) {
this.db = opts.db || localStorage; this.db = opts.db || localStorage;
this.sessionStorage = opts.sessionStorage || sessionStorage; this.sessionStorage = opts.sessionStorage || sessionStorage;
} catch (e) { } catch (e) {
console.log('Error in storage:', e); //TODO console.log('Error in storage:', e);
}; };
preconditions.checkState(this.db, 'No db defined'); preconditions.checkState(this.db, 'No db defined');

View file

@ -191,7 +191,7 @@ describe('Identity model', function() {
iden.createWallet({ iden.createWallet({
privateKeyHex: priv, privateKeyHex: priv,
}, function(err, w) { }, function(err, w) {
Identity._newWallet.getCall(0).args[0].privateKey.toObj().extendedPrivateKeyString.should.equal(priv); Identity._newWallet.getCall(1).args[0].privateKey.toObj().extendedPrivateKeyString.should.equal(priv);
should.not.exist(err); should.not.exist(err);
done(); done();
}); });
@ -253,7 +253,7 @@ describe('Identity model', function() {
iden.openWallet('dummy', 'xxx', function(err, w) { iden.openWallet('dummy', 'xxx', function(err, w) {
should.not.exist(err); should.not.exist(err);
w.store.calledOnce.should.equal(true); w.store.calledOnce.should.equal(true);
iden.profile.setLastOpenedTs.calledOnce.should.equal(true); iden.profile.setLastOpenedTs.calledTwice.should.equal(true);
iden.migrateWallet.calledOnce.should.equal(true); iden.migrateWallet.calledOnce.should.equal(true);
done(); done();
}); });

View file

@ -19,7 +19,7 @@ describe('Profile model', function() {
}; };
beforeEach(function() { beforeEach(function() {
storage.getItem = sinon.stub(); storage.setPassphrase = sinon.stub();
storage.set = sinon.stub(); storage.set = sinon.stub();
storage.set.yields(null); storage.set.yields(null);
storage.get = sinon.stub().yields(null); storage.get = sinon.stub().yields(null);