2016-08-15 06:25:43 -07:00
|
|
|
|
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<ion-view ng-controller="walletDetailsController">
|
2016-08-17 09:07:48 -07:00
|
|
|
<ion-nav-bar class="bar-stable">
|
|
|
|
<ion-nav-title>{{wallet.name}}</ion-nav-title>
|
|
|
|
|
|
|
|
<ion-nav-buttons side="primary">
|
|
|
|
<button class="button" href ui-sref="tabs.home">
|
|
|
|
<i class="ion-arrow-left-c"></i> Back
|
|
|
|
</button>
|
|
|
|
</ion-nav-buttons>
|
|
|
|
<ion-nav-buttons side="secondary">
|
|
|
|
<button class="button button-icon icon ion-ios-settings" href ui-sref="wallet.preferences"></button>
|
|
|
|
</ion-nav-buttons>
|
|
|
|
</ion-nav-bar>
|
2016-08-15 12:07:30 -07:00
|
|
|
|
2016-08-17 11:53:17 -07:00
|
|
|
<ion-content class="has-header" delegate-handle="my-handle" overflow-scroll="true">
|
2016-08-15 12:07:30 -07:00
|
|
|
<div ng-show="!wallet">
|
|
|
|
No Wallet
|
|
|
|
<a href ui-sref="tabs.home" class="button">
|
|
|
|
Go home
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div ng-show="!wallet.isComplete()">
|
|
|
|
Wallet Incomplete.
|
2016-08-17 09:16:06 -07:00
|
|
|
<a href ui-sref="wallet.copayers" class="button">
|
2016-08-15 12:07:30 -07:00
|
|
|
Wait for Copayers
|
|
|
|
</a>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
|
|
<div class="oh pr" ng-show="wallet && wallet.isComplete()">
|
|
|
|
<div ng-style="{'background-color':wallet.color}" class="amount">
|
2016-08-17 14:48:30 -07:00
|
|
|
<div ng-if="!wallet.notAuthorized && !updating">
|
2016-08-15 12:07:30 -07:00
|
|
|
|
|
|
|
<div class="m20t" ng-show="wallet.updateError" ng-click='update()'>
|
|
|
|
<span class="size-12 db m10b">{{wallet.updateError|translate}}</span>
|
|
|
|
<button class="outline white tiny round" translate>Tap to retry</button>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
|
|
|
|
<div ng-show="wallet.walletScanStatus == 'error'" ng-click='wallet.retryScan()'>
|
|
|
|
<span translate>Scan status finished with error</span>
|
|
|
|
<br><span translate>Tap to retry</span>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
|
|
|
|
|
2016-08-17 14:48:30 -07:00
|
|
|
<div ng-click='updateAll({triggerTxUpdate: true})' ng-show="!updateError && wallet.walletScanStatus != 'error' && !hideBalance" on-hold="hideToggle()">
|
|
|
|
<strong class="size-36">{{status.totalBalanceStr}}</strong>
|
|
|
|
<div class="size-14" ng-if="wallet.totalBalanceAlternative">{{status.totalBalanceAlternative}} {{status.alternativeIsoCode}}</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="size-14" ng-if="wallet.pendingAmount">
|
2016-08-17 14:48:30 -07:00
|
|
|
<span translate>Pending Confirmation</span>: {{status.pendingAmountStr}}
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
</div>
|
|
|
|
|
|
|
|
<div ng-show="!wallet.updateError && wallet.walletScanStatus != 'error' && wallet.shouldHideBalance" on-hold="wallet.hideToggle()">
|
|
|
|
<strong class="size-24" translate>[Balance Hidden]</strong>
|
|
|
|
<div class="size-14" translate>
|
|
|
|
Tap and hold to show
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-17 14:48:30 -07:00
|
|
|
<div ng-if="updating">
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="size-36">
|
|
|
|
<strong>...</strong>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
</div> <!-- amount -->
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="wallet-info">
|
|
|
|
<span ng-include="'views/includes/walletInfo.html'"></span>
|
|
|
|
</div>
|
|
|
|
</div> <!-- oh -->
|
|
|
|
|
|
|
|
<div class="p60b" ng-show="wallet && wallet.isComplete()">
|
|
|
|
<div class="oh pr m20t" ng-show="wallet.incorrectDerivation">
|
|
|
|
<div class="text-center text-warning">
|
|
|
|
<i class="fi-alert"></i>
|
|
|
|
<span translate>
|
|
|
|
WARNING: Key derivation is not working on this device/wallet. Actions cannot be performed on this wallet.
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-17 14:48:30 -07:00
|
|
|
<div class="oh pr m20t" ng-show="wallet.notAuthorized && !updating">
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="text-center text-warning">
|
|
|
|
<i class="fi-alert"></i>
|
|
|
|
<span translate>
|
|
|
|
WARNING: Wallet not registered
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
<div class="text-center text-gray m15r m15l" translate>
|
|
|
|
This wallet is not registered at the given Bitcore Wallet Service (BWS). You can recreate it from the local information.
|
|
|
|
</div>
|
|
|
|
<div class="text-center m10t ">
|
|
|
|
<span class="button outline round dark-gray tiny"
|
|
|
|
ng-click="wallet.recreate()">
|
|
|
|
<span translate>Recreate</span>
|
|
|
|
</span>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="release size-12" ng-show="newRelease" ng-click="$root.openExternalLink('https://github.com/bitpay/copay/releases/latest')">
|
|
|
|
<span>{{newRelease}}</span><i class="icon-arrow-right3 right size-18"></i>
|
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div ng-if="wallet.txps[0]">
|
|
|
|
<h4 ng-show="wallet.requiresMultipleSignatures" class="title m0" translate>Payment Proposals</h4>
|
|
|
|
<h4 ng-show="!wallet.requiresMultipleSignatures" class="title m0" translate>Unsent transactions</h4>
|
|
|
|
<div ng-repeat="tx in wallet.txps">
|
|
|
|
<div ng-include="wallet.txTemplateUrl"></div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="text-gray text-center size-12 p10t"
|
|
|
|
ng-show="wallet.lockedBalanceSat">
|
|
|
|
<span translate>Total Locked Balance</span>:
|
|
|
|
<b>{{wallet.lockedBalanceStr}} </b>
|
|
|
|
<span> {{wallet.lockedBalanceAlternative}}
|
|
|
|
{{wallet.alternativeIsoCode}} </span>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<!-- Activity -->
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<h4 class="title" ng-click="wallet.startSearch(); openSearchModal()" ng-show="!wallet.notAuthorized">
|
|
|
|
<span translate>Activity</span>
|
|
|
|
<i class="dib m5l size-16 pointer fi-magnifying-glass"></i>
|
|
|
|
</h4>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="oh pr m20t text-gray size-12 text-center"
|
2016-08-17 14:48:30 -07:00
|
|
|
ng-show="!wallet.loadingWallet && !txHistory[0] && !wallet.updatingTxHistory && !wallet.txHistoryError && !wallet.updateError && !wallet.notAuthorized"
|
2016-08-15 12:07:30 -07:00
|
|
|
translate>No transactions yet ZZZZ {{wallet.totalBalanceStr}}
|
|
|
|
</div>
|
|
|
|
|
2016-08-17 14:48:30 -07:00
|
|
|
<div class="oh pr" ng-show="(txHistory[0] || wallet.txProgress > 5) && !wallet.notAuthorized">
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div ng-show="wallet.updatingTxHistory && wallet.txProgress > 5">
|
|
|
|
<div class="row p20 text-center">
|
|
|
|
<div class="columns large-12 medium-12 small-12 m10b">
|
|
|
|
<ion-spinner class="spinner-dark" icon="lines"></ion-spinner>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="size-12 text-gray m20t">
|
|
|
|
<div translate>{{wallet.txProgress}} transactions downloaded</div>
|
|
|
|
<div translate>Updating transaction history. Please stand by.</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-17 14:48:30 -07:00
|
|
|
<div ng-if="txHistory[0] && wallet.updatingTxHistory && wallet.newTx" class="row collapse last-transactions-content animated fadeInDown">
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="large-6 medium-6 small-6 columns size-14">
|
|
|
|
<div class="m10r left">
|
|
|
|
<img src="img/icon-new.svg" width="40">
|
|
|
|
</div>
|
|
|
|
<div class="m10t" style="background:#eee; width: 8em; margin-left: 52px; line-height:0.6em">
|
|
|
|
<span> </span>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
<div style="margin-top:5px; background:#eee; width: 6em; margin-left: 52px; line-height:0.6em">
|
|
|
|
<span> </span>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-17 14:48:30 -07:00
|
|
|
<div ng-repeat="btx in txHistory track by btx.txid"
|
2016-08-15 12:07:30 -07:00
|
|
|
ng-click="openTxModal(btx)"
|
|
|
|
class="row collapse last-transactions-content">
|
|
|
|
<div class="large-6 medium-6 small-6 columns size-14">
|
|
|
|
<div class="m10r left">
|
|
|
|
<img src="img/icon-receive-history.svg" alt="sync" width="40" ng-show="btx.action == 'received'">
|
|
|
|
<img src="img/icon-sent-history.svg" alt="sync" width="40" ng-show="btx.action == 'sent'">
|
|
|
|
<img src="img/icon-moved.svg" alt="sync" width="40" ng-show="btx.action == 'moved'">
|
|
|
|
</div>
|
|
|
|
<div class="m10t">
|
|
|
|
<span ng-show="btx.action == 'received'">
|
|
|
|
<span class="ellipsis">
|
|
|
|
<span ng-if="btx.note.body">{{btx.note.body}}</span>
|
|
|
|
<span ng-if="!btx.note.body" translate> Received</span>
|
2016-08-15 06:25:43 -07:00
|
|
|
</span>
|
2016-08-15 12:07:30 -07:00
|
|
|
</span>
|
|
|
|
<span ng-show="btx.action == 'sent'">
|
|
|
|
<span class="ellipsis">
|
|
|
|
<span ng-if="btx.message">{{btx.message}}</span>
|
|
|
|
<span ng-if="!btx.message && btx.note.body">{{btx.note.body}}</span>
|
|
|
|
<span ng-if="!btx.message && !btx.note.body && wallet.addressbook[btx.addressTo]">{{wallet.addressbook[btx.addressTo]}}</span>
|
|
|
|
<span ng-if="!btx.message && !btx.note.body && !wallet.addressbook[btx.addressTo]" translate> Sent</span>
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<span ng-show="btx.action == 'moved'">
|
|
|
|
<span class="ellipsis">
|
|
|
|
<span ng-if="btx.note.body">{{btx.note.body}}</span>
|
|
|
|
<span ng-if="!btx.note.body" translate>Moved</span>
|
|
|
|
</span>
|
|
|
|
|
|
|
|
</span>
|
|
|
|
<span class="label tu warning radius" ng-show="btx.action == 'invalid'" translate>Invalid</span>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="large-5 medium-5 small-5 columns text-right" >
|
|
|
|
<span class="size-16" ng-class="{'text-bold': btx.recent}">
|
|
|
|
<span ng-if="btx.action == 'received'">+</span>
|
|
|
|
<span ng-if="btx.action == 'sent'">-</span>
|
|
|
|
<span class="size-12" ng-if="btx.action == 'invalid'" translate>
|
|
|
|
(possible double spend)
|
|
|
|
</span>
|
|
|
|
<span ng-if="btx.action != 'invalid'">
|
|
|
|
{{btx.amountStr}}
|
|
|
|
</span>
|
|
|
|
</span>
|
|
|
|
<div class="size-12 text-gray">
|
|
|
|
<time ng-if="btx.time">{{btx.time * 1000 | amTimeAgo}}</time>
|
|
|
|
<span translate class="text-warning"
|
|
|
|
ng-show="!btx.time && (!btx.confirmations || btx.confirmations == 0)">
|
|
|
|
Unconfirmed
|
|
|
|
</span>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
2016-08-15 12:07:30 -07:00
|
|
|
</div>
|
|
|
|
<div class="large-1 medium-1 small-1 columns text-right m10t">
|
|
|
|
<i class="icon-arrow-right3 size-18"></i>
|
|
|
|
</div>
|
|
|
|
</div>
|
2016-08-15 06:25:43 -07:00
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<div class="row m20t text-center" ng-show="wallet.historyRendering && !wallet.ching">
|
|
|
|
<div class="columns large-12 medium-12 small-12">
|
|
|
|
<ion-spinner class="spinner-stable" icon="lines"></ion-spinner>
|
2016-08-15 06:25:43 -07:00
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
2016-08-15 12:07:30 -07:00
|
|
|
<ion-infinite-scroll
|
2016-08-17 14:02:47 -07:00
|
|
|
ng-if="wallet.historyShowMore"
|
2016-08-15 12:07:30 -07:00
|
|
|
on-infinite="showMore()"
|
|
|
|
distance="1%">
|
|
|
|
</ion-infinite-scroll>
|
|
|
|
</div>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
</ion-content>
|
|
|
|
</ion-view>
|