236 lines
8.5 KiB
HTML
236 lines
8.5 KiB
HTML
<ion-view view-title="Import wallet">
|
|
<ion-nav-bar class="bar-stable">
|
|
<ion-nav-buttons side="primary">
|
|
<a href ui-sref="add" class="button icon-left ion-chevron-left button-clear button-dark">Add</a>
|
|
</ion-nav-buttons>
|
|
</ion-nav-bar>
|
|
|
|
<ion-content ng-controller="importController" ng-init="type='12'">
|
|
|
|
<div class="row">
|
|
<div class="col">
|
|
<button
|
|
ng-class="{'button-dark': type == '12', 'button-stable': type != '12'}"
|
|
class="button button-full button-clear"
|
|
ng-click="setType('12')" translate>
|
|
Recovery Phrase
|
|
</button>
|
|
</div>
|
|
<div class="col">
|
|
<button
|
|
ng-class="{'button-dark': type == 'file', 'button-stable': type != 'file'}"
|
|
class="button button-full button-clear"
|
|
ng-click="setType('file')" translate>
|
|
File/Text
|
|
</button>
|
|
</div>
|
|
<div class="col">
|
|
<button
|
|
ng-class="{'button-dark': type == 'hwWallet', 'button-stable': type != 'hwWallet'}"
|
|
class="button button-full button-clear"
|
|
ng-click="setType('hwWallet')" translate>
|
|
Hardware Wallet
|
|
</button>
|
|
</div>
|
|
</div>
|
|
|
|
<div ng-show="type == '12'">
|
|
|
|
<div ng-show="importErr || error" class="padding assertive" ng-click="importErr = error = null">
|
|
<div ng-show="importErr">
|
|
<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>
|
|
<div translate>
|
|
NOTE: To import a wallet from a 3rd party software, please go to Add Wallet > Create Wallet, and specify the Recovery Phrase there.
|
|
</div>
|
|
</div>
|
|
|
|
<div ng-show="error">
|
|
{{error|translate}}
|
|
</div>
|
|
</div>
|
|
|
|
<form name="importForm12" ng-submit="importMnemonic(importForm12)" novalidate>
|
|
<div class="list">
|
|
|
|
<div class="row">
|
|
<div class="col col-90">
|
|
<label class="item item-input item-stacked-label no-border">
|
|
<span class="input-label" translate>Type the Recovery Phrase (usually 12 words)</span>
|
|
<textarea name="words"
|
|
ng-model="words"
|
|
rows="3"
|
|
autocapitalize="off"
|
|
spellcheck="false"></textarea>
|
|
</label>
|
|
</div>
|
|
<div class="col text-center">
|
|
<qr-scanner class="qr-icon size-24" on-scan="processWalletInfo(data)"></qr-scanner>
|
|
</div>
|
|
</div>
|
|
|
|
<ion-toggle ng-model="showAdv" toggle-class="toggle-stable">
|
|
<span translate ng-show="!showAdv">Show advanced options</span>
|
|
<span translate ng-show="showAdv">Hide advanced options</span>
|
|
</ion-toggle>
|
|
|
|
<div ng-show="showAdv">
|
|
|
|
<label class="item item-input item-stacked-label">
|
|
<span class="input-label">Wallet Service URL</span>
|
|
<input type="text" id="bwsurl" name="bwsurl" ng-model="bwsurl">
|
|
</label>
|
|
|
|
<label class="item item-input item-stacked-label">
|
|
<span class="input-label" translate>Password</span>
|
|
<input type="text"
|
|
placeholder="{{'The recovery phrase could require a password to be imported'|translate}}"
|
|
autocapitalize="off"
|
|
name="passphrase"
|
|
ng-model="passphrase">
|
|
</label>
|
|
|
|
<label class="item item-input item-stacked-label">
|
|
<span class="input-label" translate>Derivation Path</span>
|
|
<input type="text"
|
|
placeholder="{{'BIP32 path for address derivation'|translate}}"
|
|
name="derivationPath"
|
|
ng-model="derivationPath">
|
|
</label>
|
|
|
|
<ion-toggle ng-model="testnetEnabled" ng-change="setDerivationPath(testnetEnabled)" toggle-class="toggle-positive">
|
|
Testnet
|
|
</ion-toggle>
|
|
</div>
|
|
</div>
|
|
|
|
<button type="submit"
|
|
class="button button-block button-positive"
|
|
ng-disabled="importForm12.$invalid" translate>Import</button>
|
|
</form>
|
|
</div>
|
|
|
|
<div ng-show="type == 'file'">
|
|
|
|
<div class="padding assertive" ng-show="error">
|
|
{{error|translate}}
|
|
</div>
|
|
|
|
<form name="importForm" ng-submit="importBlob(importForm)" novalidate>
|
|
|
|
<div class="list">
|
|
|
|
<label class="item item-input item-stacked-label no-border" ng-show="!isSafari && !isCordova">
|
|
<div class="input-label" translate>Choose a backup file from your computer</div>
|
|
<div>
|
|
<input type="file"
|
|
placeholder="{{'Select a backup file'|translate}}"
|
|
name="backupFile"
|
|
ng-model="backupFile" ng-file-select>
|
|
</div>
|
|
</label>
|
|
|
|
<label class="item item-input item-stacked-label" ng-show="index.isSafari || index.isCordova">
|
|
<span class="input-label" translate>Paste the backup plain text code</span>
|
|
<textarea name="backupText" ng-model="backupText" rows="5"></textarea>
|
|
</label>
|
|
|
|
<label class="item item-input item-stacked-label">
|
|
<span class="input-label" translate>Password</span>
|
|
<input type="password"
|
|
placeholder="{{'Your password'|translate}}"
|
|
name="password"
|
|
ng-model="password">
|
|
</label>
|
|
|
|
<ion-toggle ng-model="showAdv" toggle-class="toggle-stable">
|
|
<span translate ng-show="!showAdv">Show advanced options</span>
|
|
<span translate ng-show="showAdv">Hide advanced options</span>
|
|
</ion-toggle>
|
|
|
|
<div ng-show="showAdv">
|
|
|
|
<label class="item item-input item-stacked-label">
|
|
<span class="input-label">Wallet Service URL</span>
|
|
<input type="text" id="bwsurl" name="bwsurl" ng-model="bwsurl">
|
|
</label>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<button type="submit"
|
|
class="button round expand black"
|
|
ng-disabled="importForm.$invalid || !password " translate>
|
|
Import backup
|
|
</button>
|
|
</form>
|
|
</div>
|
|
|
|
<div ng-show="type == 'hwWallet'">
|
|
<div class="padding assertive" ng-show="error">
|
|
{{error|translate}}
|
|
</div>
|
|
|
|
<form name="importForm3" ng-submit="importHW(importForm3)" novalidate>
|
|
|
|
<div class="card" ng-show="!seedOptions[0]">
|
|
<div class="item item-text-wrap" translate>
|
|
No hardware wallets supported on this device
|
|
</div>
|
|
</div>
|
|
|
|
<div ng-show="seedOptions[0]">
|
|
<div class="list">
|
|
|
|
<label class="item item-input item-select">
|
|
<div class="input-label" translate>
|
|
Wallet Type
|
|
</div>
|
|
<select ng-model="seedSource"
|
|
ng-options="seed as seed.label for seed in seedOptions"
|
|
ng-change="setSeedSource()">
|
|
</select>
|
|
</label>
|
|
|
|
<label class="item item-input item-stacked-label"
|
|
ng-show="seedSourceId == 'trezor' || seedSourceId == 'ledger'">
|
|
<span class="input-label" translate>Account Number</span>
|
|
<input type="number" id="account" ng-model="account" ignore-mouse-wheel>
|
|
</label>
|
|
|
|
<ion-toggle ng-show="seedSourceId == 'trezor'"
|
|
ng-model="isMultisig"
|
|
toggle-class="toggle-positive">
|
|
<span translate>Shared Wallet</span>
|
|
</ion-toggle>
|
|
|
|
<ion-toggle ng-model="showAdv" toggle-class="toggle-stable">
|
|
<span translate ng-show="!showAdv">Show advanced options</span>
|
|
<span translate ng-show="showAdv">Hide advanced options</span>
|
|
</ion-toggle>
|
|
|
|
<div ng-show="showAdv">
|
|
|
|
<label class="item item-input item-stacked-label">
|
|
<span class="input-label">Wallet Service URL</span>
|
|
<input type="text" id="bwsurl" name="bwsurl" ng-model="bwsurl">
|
|
</label>
|
|
|
|
</div>
|
|
</div>
|
|
|
|
<button translate type="submit" class="button button-block button-positive">
|
|
Import
|
|
</button>
|
|
</div> <!-- seedoptions show -->
|
|
|
|
</form>
|
|
</div>
|
|
|
|
</ion-content>
|
|
</ion-view>
|
|
|