mirror of https://github.com/BTCPrivate/copay.git
Merge pull request #6872 from JDonadio/new/create-single-wallet-02
Create wallet - show form fields depending on wallet key selected, ref names/folders
This commit is contained in:
commit
a364d215da
|
@ -25,7 +25,7 @@ import { CopayApp } from './app.component';
|
||||||
|
|
||||||
/* Pages */
|
/* Pages */
|
||||||
import { AddPage } from '../pages/add/add';
|
import { AddPage } from '../pages/add/add';
|
||||||
import { SingleWalletPage } from '../pages/add/single-wallet/single-wallet';
|
import { SingleWalletPage } from '../pages/add/create-wallet/single-wallet/single-wallet';
|
||||||
import { BackupRequestPage } from '../pages/onboarding/backup-request/backup-request';
|
import { BackupRequestPage } from '../pages/onboarding/backup-request/backup-request';
|
||||||
import { DisclaimerPage } from '../pages/onboarding/disclaimer/disclaimer';
|
import { DisclaimerPage } from '../pages/onboarding/disclaimer/disclaimer';
|
||||||
import { EmailPage } from '../pages/onboarding/email/email';
|
import { EmailPage } from '../pages/onboarding/email/email';
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
import { Component } from '@angular/core';
|
import { Component } from '@angular/core';
|
||||||
import { NavController } from 'ionic-angular';
|
import { NavController } from 'ionic-angular';
|
||||||
import { SingleWalletPage } from "./single-wallet/single-wallet";
|
import { SingleWalletPage } from "./create-wallet/single-wallet/single-wallet";
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'page-add',
|
selector: 'page-add',
|
||||||
|
|
|
@ -31,9 +31,14 @@
|
||||||
</ion-select>
|
</ion-select>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
|
<ion-item *ngIf="formData.selectedSeed.id == 'set'">
|
||||||
|
<ion-label stacked>Wallet recovery phrase</ion-label>
|
||||||
|
<ion-input type="text" [(ngModel)]="formData.recoveryPhrase" formControlName="recoveryPhrase"></ion-input>
|
||||||
|
</ion-item>
|
||||||
|
|
||||||
<ion-item>
|
<ion-item>
|
||||||
<ion-label stacked>Add a password</ion-label>
|
<ion-label stacked>Add a password</ion-label>
|
||||||
<ion-toggle [(ngModel)]="formData.addPassword" formControlName="addPassword" (ionChange)="resetPasswordFields()"></ion-toggle>
|
<ion-toggle [(ngModel)]="formData.addPassword" formControlName="addPassword" (ionChange)="resetFormFields()"></ion-toggle>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
<div *ngIf="formData.addPassword">
|
<div *ngIf="formData.addPassword">
|
||||||
|
@ -55,13 +60,18 @@
|
||||||
|
|
||||||
<ion-item>
|
<ion-item>
|
||||||
<ion-label stacked>I have written it down</ion-label>
|
<ion-label stacked>I have written it down</ion-label>
|
||||||
<ion-checkbox [(ngModel)]="formData.writtenDown" formControlName="writtenDown" checked="false"></ion-checkbox>
|
<ion-checkbox [(ngModel)]="formData.recoveryPhraseBackedUp" formControlName="recoveryPhraseBackedUp" checked="false"></ion-checkbox>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<ion-item>
|
<ion-item *ngIf="formData.selectedSeed.id == 'new'">
|
||||||
<ion-label stacked>Testnet</ion-label>
|
<ion-label stacked>Testnet</ion-label>
|
||||||
<ion-toggle [(ngModel)]="formData.testnet" formControlName="testnet"></ion-toggle>
|
<ion-toggle [(ngModel)]="formData.testnet" formControlName="testnet" (ionChange)="setDerivationPath()"></ion-toggle>
|
||||||
|
</ion-item>
|
||||||
|
|
||||||
|
<ion-item *ngIf="formData.selectedSeed.id == 'set'">
|
||||||
|
<ion-label stacked>Derivation path</ion-label>
|
||||||
|
<ion-input type="text" [(ngModel)]="formData.derivationPath" formControlName="derivationPath"></ion-input>
|
||||||
</ion-item>
|
</ion-item>
|
||||||
|
|
||||||
<ion-item>
|
<ion-item>
|
|
@ -2,7 +2,7 @@ import { Component, OnInit } from '@angular/core';
|
||||||
import { NavController } from 'ionic-angular';
|
import { NavController } from 'ionic-angular';
|
||||||
import { Validators, FormBuilder, FormGroup } from '@angular/forms';
|
import { Validators, FormBuilder, FormGroup } from '@angular/forms';
|
||||||
|
|
||||||
import { AppProvider } from '../../../providers/app/app';
|
import { AppProvider } from '../../../../providers/app/app';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'page-single-wallet',
|
selector: 'page-single-wallet',
|
||||||
|
@ -14,6 +14,8 @@ export class SingleWalletPage implements OnInit{
|
||||||
public seedOptions: any;
|
public seedOptions: any;
|
||||||
|
|
||||||
private appName: string;
|
private appName: string;
|
||||||
|
private derivationPathByDefault: string;
|
||||||
|
private derivationPathForTestnet: string;
|
||||||
private createForm: FormGroup;
|
private createForm: FormGroup;
|
||||||
|
|
||||||
constructor(
|
constructor(
|
||||||
|
@ -21,14 +23,18 @@ export class SingleWalletPage implements OnInit{
|
||||||
private app: AppProvider,
|
private app: AppProvider,
|
||||||
private fb: FormBuilder
|
private fb: FormBuilder
|
||||||
) {
|
) {
|
||||||
|
this.derivationPathByDefault = "m/44'/0'/0'";
|
||||||
|
this.derivationPathForTestnet = "m/44'/1'/0'";
|
||||||
this.showAdvOpts = false;
|
this.showAdvOpts = false;
|
||||||
this.formData = {
|
this.formData = {
|
||||||
walletName: null,
|
walletName: null,
|
||||||
bwsURL: 'https://bws.bitpay.com/bws/api',
|
bwsURL: 'https://bws.bitpay.com/bws/api',
|
||||||
|
recoveryPhrase: null,
|
||||||
addPassword: false,
|
addPassword: false,
|
||||||
password: null,
|
password: null,
|
||||||
confirmPassword: null,
|
confirmPassword: null,
|
||||||
writtenDown: false,
|
recoveryPhraseBackedUp: null,
|
||||||
|
derivationPath: this.derivationPathByDefault,
|
||||||
testnet: false,
|
testnet: false,
|
||||||
singleAddress: false,
|
singleAddress: false,
|
||||||
};
|
};
|
||||||
|
@ -41,10 +47,12 @@ export class SingleWalletPage implements OnInit{
|
||||||
walletName: ['', Validators.required],
|
walletName: ['', Validators.required],
|
||||||
bwsURL: [''],
|
bwsURL: [''],
|
||||||
selectedSeed: [''],
|
selectedSeed: [''],
|
||||||
|
recoveryPhrase: [''],
|
||||||
addPassword: [''],
|
addPassword: [''],
|
||||||
password: [''],
|
password: [''],
|
||||||
confirmPassword: [''],
|
confirmPassword: [''],
|
||||||
writtenDown: ['false'],
|
recoveryPhraseBackedUp: [''],
|
||||||
|
derivationPath: [''],
|
||||||
testnet: [''],
|
testnet: [''],
|
||||||
singleAddress: [''],
|
singleAddress: [''],
|
||||||
});
|
});
|
||||||
|
@ -65,7 +73,7 @@ export class SingleWalletPage implements OnInit{
|
||||||
validatePasswords() {
|
validatePasswords() {
|
||||||
if (this.formData.addPassword) {
|
if (this.formData.addPassword) {
|
||||||
if (this.formData.password == this.formData.confirmPassword) {
|
if (this.formData.password == this.formData.confirmPassword) {
|
||||||
if (this.formData.writtenDown) return false;
|
if (this.formData.recoveryPhraseBackedUp) return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -79,7 +87,7 @@ export class SingleWalletPage implements OnInit{
|
||||||
supportsTestnet: true
|
supportsTestnet: true
|
||||||
}, {
|
}, {
|
||||||
id: 'set',
|
id: 'set',
|
||||||
label: 'Specify Recovery Phrase...',
|
label: 'Specify Recovery Phrase',
|
||||||
supportsTestnet: false
|
supportsTestnet: false
|
||||||
}];
|
}];
|
||||||
this.formData.selectedSeed = {
|
this.formData.selectedSeed = {
|
||||||
|
@ -118,13 +126,20 @@ export class SingleWalletPage implements OnInit{
|
||||||
|
|
||||||
seedOptionsChange(seed: any) {
|
seedOptionsChange(seed: any) {
|
||||||
this.formData.selectedSeed.id = seed;
|
this.formData.selectedSeed.id = seed;
|
||||||
this.resetPasswordFields();
|
this.formData.testnet = false;
|
||||||
|
this.formData.derivationPath = this.derivationPathByDefault;
|
||||||
|
this.resetFormFields();
|
||||||
}
|
}
|
||||||
|
|
||||||
resetPasswordFields() {
|
resetFormFields() {
|
||||||
this.formData.password = null;
|
this.formData.password = null;
|
||||||
this.formData.confirmPassword = null;
|
this.formData.confirmPassword = null;
|
||||||
this.formData.writtenDown = false;
|
this.formData.recoveryPhraseBackedUp = null;
|
||||||
|
this.formData.recoveryPhrase = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
setDerivationPath() {
|
||||||
|
this.formData.derivationPath = this.formData.testnet ? this.derivationPathForTestnet : this.derivationPathByDefault;
|
||||||
}
|
}
|
||||||
|
|
||||||
create() {
|
create() {
|
Loading…
Reference in New Issue