copay-crown
Version:
A Secure Crown Wallet
102 lines (87 loc) • 3.86 kB
HTML
<ion-header>
<ion-navbar>
<ion-title>Import wallet</ion-title>
</ion-navbar>
</ion-header>
<ion-content no-bounce>
<div [attr.padding]="isIOS ? '' : null">
<ion-segment [(ngModel)]="selectedTab" color="primary" (ionChange)="selectTab(selectedTab)">
<ion-segment-button value="words" translate>
Words
</ion-segment-button>
<ion-segment-button value="file" translate>
File
</ion-segment-button>
</ion-segment>
</div>
<ion-card (click)="importErr = false">
<ion-item *ngIf="importErr" class="assertive">
<div translate>Could not access the wallet at the server. Please check:</div>
<ul>
<li translate>The password of the recovery phrase (if set)</li>
<li translate>The derivation path</li>
<li translate>The wallet service URL</li>
</ul>
<small translate>
NOTE: To import a wallet from a 3rd party software, please go to Add Wallet > Create Wallet, and specify the Recovery
Phrase there.
</small>
</ion-item>
</ion-card>
<form [formGroup]="importForm" (ngSubmit)="import()">
<ion-item *ngIf="selectedTab == 'words'">
<ion-label stacked>Type the recovery phrase (usually 12 words)</ion-label>
<ion-textarea formControlName="words" [value]="importForm.value.words"></ion-textarea>
<ion-icon *ngIf="!fromOnboarding" class="scanner-icon" name="qr-scanner" item-right (click)="openScanner()"></ion-icon>
</ion-item>
<div *ngIf="selectedTab == 'file'">
<ion-item *ngIf="!isSafari && !isCordova">
<ion-label stacked>Choose a backup file from your computer</ion-label>
<ion-input type="file" accept="json" [(ngModel)]="formFile" (change)="fileChangeEvent($event)" formControlName="file"></ion-input>
</ion-item>
<ion-item *ngIf="isSafari || isCordova">
<ion-label stacked>Paste the backup plain text code</ion-label>
<ion-textarea formControlName="backupText" rows="5" [value]="importForm.value.backupText"></ion-textarea>
</ion-item>
<ion-item>
<ion-label stacked>Password</ion-label>
<ion-input type="password" formControlName="filePassword"></ion-input>
</ion-item>
</div>
<ion-item *ngIf="selectedTab != 'file'">
<ion-label stacked>{{'Coin' | translate}}</ion-label>
<ion-select formControlName="coin" (ionChange)="testnetEnabled = false">
<ion-option value="btc">BTC</ion-option>
<ion-option value="bch">BCH</ion-option>
</ion-select>
</ion-item>
<ion-item-divider></ion-item-divider>
<ion-item (click)="toggleShowAdvOpts()">
<ion-label *ngIf="!showAdvOpts">Show advanced options</ion-label>
<ion-label *ngIf="showAdvOpts">Hide advanced options</ion-label>
</ion-item>
<div *ngIf="showAdvOpts">
<div *ngIf="selectedTab == 'words'">
<ion-item>
<ion-label stacked>Password</ion-label>
<ion-input type="password" formControlName="mnemonicPassword"></ion-input>
</ion-item>
<ion-item>
<ion-label stacked>Derivation path</ion-label>
<ion-input type="text" formControlName="derivationPath" [value]="importForm.value.derivationPath"></ion-input>
</ion-item>
<ion-item>
<ion-label stacked>Testnet</ion-label>
<ion-toggle color="primary" formControlName="testnet" [(ngModel)]="testnetEnabled" (ionChange)="setDerivationPath()"></ion-toggle>
</ion-item>
</div>
<ion-item>
<ion-label stacked>Wallet service URL</ion-label>
<ion-input type="text" formControlName="bwsURL"></ion-input>
</ion-item>
</div>
</form>
</ion-content>
<ion-footer>
<button ion-button block class="button-footer" (click)="import()" [disabled]="!importForm.valid">Import wallet</button>
</ion-footer>