mirror of https://github.com/BTCPrivate/copay.git
Adds create profile. Adds BWC but not activated
This commit is contained in:
parent
9a6e6849bd
commit
52834f5d48
|
@ -30,7 +30,7 @@
|
||||||
"@ionic-native/clipboard": "4.1.0",
|
"@ionic-native/clipboard": "4.1.0",
|
||||||
"@ionic-native/core": "3.12.1",
|
"@ionic-native/core": "3.12.1",
|
||||||
"@ionic-native/file": "4.1.0",
|
"@ionic-native/file": "4.1.0",
|
||||||
"@ionic-native/qr-scanner": "^4.1.0",
|
"@ionic-native/qr-scanner": "4.1.0",
|
||||||
"@ionic-native/social-sharing": "4.1.0",
|
"@ionic-native/social-sharing": "4.1.0",
|
||||||
"@ionic-native/splash-screen": "3.12.1",
|
"@ionic-native/splash-screen": "3.12.1",
|
||||||
"@ionic-native/status-bar": "3.12.1",
|
"@ionic-native/status-bar": "3.12.1",
|
||||||
|
@ -39,13 +39,15 @@
|
||||||
"@ngx-translate/core": "6.0.1",
|
"@ngx-translate/core": "6.0.1",
|
||||||
"@nsalaun/ng-logger": "2.0.1",
|
"@nsalaun/ng-logger": "2.0.1",
|
||||||
"ajv": "5.2.2",
|
"ajv": "5.2.2",
|
||||||
|
"angular2-moment": "1.7.0",
|
||||||
"autoprefixer": "7.1.2",
|
"autoprefixer": "7.1.2",
|
||||||
"cordova-android": "^6.2.3",
|
"bitcore-wallet-client": "6.0.0",
|
||||||
|
"cordova-android": "6.2.3",
|
||||||
"cordova-clipboard": "1.0.0",
|
"cordova-clipboard": "1.0.0",
|
||||||
"cordova-ios": "4.4.0",
|
"cordova-ios": "4.4.0",
|
||||||
"cordova-plugin-console": "1.0.5",
|
"cordova-plugin-console": "1.0.5",
|
||||||
"cordova-plugin-device": "1.1.4",
|
"cordova-plugin-device": "1.1.4",
|
||||||
"cordova-plugin-qrscanner": "^2.5.0",
|
"cordova-plugin-qrscanner": "2.5.0",
|
||||||
"cordova-plugin-splashscreen": "4.0.3",
|
"cordova-plugin-splashscreen": "4.0.3",
|
||||||
"cordova-plugin-statusbar": "2.2.2",
|
"cordova-plugin-statusbar": "2.2.2",
|
||||||
"cordova-plugin-whitelist": "1.3.1",
|
"cordova-plugin-whitelist": "1.3.1",
|
||||||
|
|
|
@ -16,6 +16,7 @@ import { NgLoggerModule, Logger, Level } from '@nsalaun/ng-logger';
|
||||||
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
import { TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
||||||
import { TranslatePoHttpLoader } from '@biesbjerg/ngx-translate-po-http-loader';
|
import { TranslatePoHttpLoader } from '@biesbjerg/ngx-translate-po-http-loader';
|
||||||
import { NgxQRCodeModule } from 'ngx-qrcode2';
|
import { NgxQRCodeModule } from 'ngx-qrcode2';
|
||||||
|
import { MomentModule } from 'angular2-moment';
|
||||||
|
|
||||||
/* Copay App */
|
/* Copay App */
|
||||||
import { CopayApp } from './app.component';
|
import { CopayApp } from './app.component';
|
||||||
|
@ -50,6 +51,7 @@ import { ConfigProvider } from '../providers/config/config';
|
||||||
import { LanguageProvider } from '../providers/language/language';
|
import { LanguageProvider } from '../providers/language/language';
|
||||||
import { ScanProvider } from '../providers/scan/scan';
|
import { ScanProvider } from '../providers/scan/scan';
|
||||||
import { ProfileProvider } from '../providers/profile/profile';
|
import { ProfileProvider } from '../providers/profile/profile';
|
||||||
|
import { BwcProvider } from '../providers/bwc/bwc';
|
||||||
|
|
||||||
export function createTranslateLoader(http: Http) {
|
export function createTranslateLoader(http: Http) {
|
||||||
return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
|
return new TranslatePoHttpLoader(http, 'assets/i18n', '.po');
|
||||||
|
@ -79,6 +81,7 @@ export function createTranslateLoader(http: Http) {
|
||||||
HttpModule,
|
HttpModule,
|
||||||
NgLoggerModule.forRoot(Level.LOG),
|
NgLoggerModule.forRoot(Level.LOG),
|
||||||
NgxQRCodeModule,
|
NgxQRCodeModule,
|
||||||
|
MomentModule,
|
||||||
TranslateModule.forRoot({
|
TranslateModule.forRoot({
|
||||||
loader: {
|
loader: {
|
||||||
provide: TranslateLoader,
|
provide: TranslateLoader,
|
||||||
|
@ -136,7 +139,8 @@ export function createTranslateLoader(http: Http) {
|
||||||
LanguageProvider,
|
LanguageProvider,
|
||||||
QRScanner,
|
QRScanner,
|
||||||
ScanProvider,
|
ScanProvider,
|
||||||
ProfileProvider
|
ProfileProvider,
|
||||||
|
BwcProvider
|
||||||
]
|
]
|
||||||
})
|
})
|
||||||
export class AppModule { }
|
export class AppModule { }
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { NavController, NavParams } from 'ionic-angular';
|
import { NavController, NavParams } from 'ionic-angular';
|
||||||
|
|
||||||
|
import { ProfileProvider } from '../../providers/profile/profile';
|
||||||
|
|
||||||
import { TourPage } from './tour/tour';
|
import { TourPage } from './tour/tour';
|
||||||
import { TabsPage } from '../tabs/tabs';
|
import { TabsPage } from '../tabs/tabs';
|
||||||
|
|
||||||
|
@ -12,16 +14,19 @@ export class OnboardingPage {
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
public navCtrl: NavController,
|
public navCtrl: NavController,
|
||||||
public navParams: NavParams
|
public navParams: NavParams,
|
||||||
|
private profile: ProfileProvider
|
||||||
) {
|
) {
|
||||||
}
|
}
|
||||||
|
|
||||||
ionViewDidLoad() {
|
ionViewDidLoad() {
|
||||||
console.log('ionViewDidLoad OnboardingPage');
|
console.log('ionViewDidLoad OnboardingPage');
|
||||||
|
this.createProfile();
|
||||||
}
|
}
|
||||||
|
|
||||||
createProfile() {
|
createProfile() {
|
||||||
// TODO: create a new profile
|
// TODO: create a new profile
|
||||||
|
this.profile.create();
|
||||||
}
|
}
|
||||||
|
|
||||||
getStarted() {
|
getStarted() {
|
||||||
|
|
|
@ -0,0 +1,48 @@
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
|
||||||
|
//import * as BWC from 'bitcore-wallet-client';
|
||||||
|
|
||||||
|
@Injectable()
|
||||||
|
export class BwcProvider {
|
||||||
|
/*
|
||||||
|
public buildTx = BWC.buildTx;
|
||||||
|
public parseSecret = BWC.parseSecret;
|
||||||
|
public Client = BWC;
|
||||||
|
*/
|
||||||
|
constructor() {
|
||||||
|
console.log('Hello BwcProvider Provider');
|
||||||
|
}
|
||||||
|
/*
|
||||||
|
getBitcore() {
|
||||||
|
return BWC.Bitcore;
|
||||||
|
}
|
||||||
|
|
||||||
|
getErrors() {
|
||||||
|
return BWC.errors;
|
||||||
|
}
|
||||||
|
|
||||||
|
getSJCL() {
|
||||||
|
return BWC.sjcl;
|
||||||
|
}
|
||||||
|
|
||||||
|
getUtils() {
|
||||||
|
return BWC.Utils;
|
||||||
|
}
|
||||||
|
|
||||||
|
getClient(walletData, opts) {
|
||||||
|
opts = opts || {};
|
||||||
|
|
||||||
|
//note opts use `bwsurl` all lowercase;
|
||||||
|
let bwc = new BWC({
|
||||||
|
baseUrl: opts.bwsurl || 'https://bws.bitpay.com/bws/api',
|
||||||
|
verbose: opts.verbose,
|
||||||
|
timeout: 100000,
|
||||||
|
transports: ['polling'],
|
||||||
|
});
|
||||||
|
if (walletData)
|
||||||
|
bwc.import(walletData, opts);
|
||||||
|
return bwc;
|
||||||
|
}
|
||||||
|
*/
|
||||||
|
|
||||||
|
}
|
|
@ -1,11 +1,40 @@
|
||||||
import { Injectable } from '@angular/core';
|
import { Injectable } from '@angular/core';
|
||||||
|
import * as moment from 'moment';
|
||||||
|
import * as _ from 'lodash';
|
||||||
import { PersistenceProvider } from '../persistence/persistence';
|
import { PersistenceProvider } from '../persistence/persistence';
|
||||||
|
import { ConfigProvider } from '../config/config';
|
||||||
|
import { BwcProvider } from '../bwc/bwc';
|
||||||
|
|
||||||
|
interface Profile {
|
||||||
|
version: string;
|
||||||
|
createdOn: Number;
|
||||||
|
credentials: Array<any>;
|
||||||
|
disclaimerAccepted: boolean;
|
||||||
|
checked: Object;
|
||||||
|
checkedUA?: Object;
|
||||||
|
}
|
||||||
|
|
||||||
|
class Profile implements Profile {
|
||||||
|
constructor(
|
||||||
|
public version: string = '1.0.0',
|
||||||
|
public createdOn: Number = moment( new Date() ).valueOf(),
|
||||||
|
public credentials: Array<any> = new Array(),
|
||||||
|
public disclaimerAccepted: boolean = false,
|
||||||
|
public checked: Object = new Object()
|
||||||
|
) {
|
||||||
|
// Nothing to do
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ProfileProvider {
|
export class ProfileProvider {
|
||||||
|
public profile: Profile;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
private persistence: PersistenceProvider
|
private persistence: PersistenceProvider,
|
||||||
|
private config: ConfigProvider,
|
||||||
|
private bwc: BwcProvider
|
||||||
) {
|
) {
|
||||||
console.log('Hello ProfileProvider Provider');
|
console.log('Hello ProfileProvider Provider');
|
||||||
}
|
}
|
||||||
|
@ -20,4 +49,45 @@ export class ProfileProvider {
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
create() {
|
||||||
|
this.profile = new Profile();
|
||||||
|
|
||||||
|
console.log('[profile.ts:33]', this.profile); //TODO
|
||||||
|
|
||||||
|
this.persistence.storeNewProfile(this.profile).then(() => {
|
||||||
|
// bindProfile (this.profile)
|
||||||
|
}, (error) => {
|
||||||
|
// Todo: error?
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
bind(profile: Profile) {
|
||||||
|
let l = profile.credentials.length;
|
||||||
|
let i = 0;
|
||||||
|
let totalBound = 0;
|
||||||
|
|
||||||
|
if (!l) return;
|
||||||
|
|
||||||
|
_.each(profile.credentials, function(credentials) {
|
||||||
|
this.bindWallet(credentials, function(err, bound) {
|
||||||
|
i++;
|
||||||
|
totalBound += bound;
|
||||||
|
if (i == l) {
|
||||||
|
console.log('Bound ' + totalBound + ' out of ' + l + ' wallets');
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
bindWallet(credentials) {
|
||||||
|
let defaults = this.config.get();
|
||||||
|
|
||||||
|
/*
|
||||||
|
let client = this.bwc.getClient(JSON.stringify(credentials), {
|
||||||
|
bwsurl: defaults['bws']['url'],
|
||||||
|
});
|
||||||
|
*/
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue