copay-crown
Version:
A Secure Crown Wallet
43 lines (36 loc) • 1.14 kB
text/typescript
import { Injectable } from '@angular/core';
import { Logger } from '../../providers/logger/logger';
// providers
import { PersistenceProvider } from '../persistence/persistence';
import * as bitauthService from 'bitauth';
import * as _ from 'lodash';
()
export class AppIdentityProvider {
constructor(
private logger: Logger,
private persistenceProvider: PersistenceProvider,
) {
this.logger.info('AppIdentityProvider initialized.');
}
public getIdentity(network, cb) {
let pubkey;
let isNew;
this.persistenceProvider.getAppIdentity(network).then((data) => {
let appIdentity = data || {};
if (_.isEmpty(appIdentity) || (appIdentity && !appIdentity.priv)) {
isNew = true;
appIdentity = bitauthService.generateSin();
}
try {
pubkey = bitauthService.getPublicKeyFromPrivateKey(appIdentity.priv);
bitauthService.getSinFromPublicKey(pubkey);
if (isNew)
this.persistenceProvider.setAppIdentity(network, appIdentity);
}
catch (e) {
return cb(e);
};
return cb(null, appIdentity);
});
};
}