Merge remote-tracking branch 'origin/wallet/task/514' into wallet/task/427

This commit is contained in:
Sebastiaan Pasma 2018-08-07 15:06:54 +02:00
commit 01a7024b52
No known key found for this signature in database
GPG key ID: 9A2B0C8B95A1D26F
61 changed files with 3583 additions and 924 deletions

View file

@ -318,5 +318,33 @@ div.slide-success__background.fill-screen {
display: block;
float: left;
max-height: 100%;
max-width: 100%;
max-width: 100%;
}
.bitpay-banner {
background: #1A3A8B;
padding: 10px;
box-shadow: 0px 5px 10px 0px #cccccc;
height: 5em;
}
.bitpay-logo {
display: block;
max-height: 100%;
width: 100%;
height: 4em;
}
.egifter-banner {
background: #066EAA;
padding: 10px;
box-shadow: 0px 5px 10px 0px #cccccc;
height: 5em;
text-align: center;
}
.egifter-logo {
max-height: 100%;
max-width: 100%;
height: 4em;
}

View file

@ -10037,6 +10037,11 @@ ion-view.deflash-blue:before, ion-view#view-amount:before, ion-view#view-confirm
.big-icon-svg.theme-circle > .bg.icon-faucet {
background-image: url("../img/icon-faucet.svg");
background-size: 70%; }
.big-icon-svg.theme-circle > .bg.icon-wallet {
background-color: #FAB915;
background-image: url("../img/icon-wallet.svg");
border: none;
box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.3) inset; }
.big-icon-svg.theme-circle-services > .bg {
border: 1px solid #191919; }
.big-icon-svg.theme-circle-community > .bg {
@ -10077,7 +10082,7 @@ ion-view.deflash-blue:before, ion-view#view-amount:before, ion-view#view-confirm
.onboarding .button.button-light.button-standard,
.onboarding .button.button-white.button-standard,
.onboarding .button.button-green.button-standard,
.onboarding .button.button-assertive.button-standard {
.onboarding .button.button-assertive.button-standard, #shapeshift .button-shapeshift {
width: 85%;
max-width: 300px;
margin-left: auto;
@ -10287,6 +10292,15 @@ qrcode {
top: 50%;
left: 50%; }
.third-party-notice {
font-size: 12px;
margin: 0px 14px;
font-weight: 600;
color: #6F6F70; }
@media (min-width: 768px) {
.third-party-notice {
text-align: center; } }
.tabs .tab-item .icon {
background-repeat: no-repeat;
background-position: center;
@ -10344,7 +10358,7 @@ qrcode {
padding: 10px; }
#view-amount {
background: #494949; }
background: #f2f2f2; }
#view-amount .recipient-label {
font-size: 14px;
padding-bottom: 0;
@ -10537,6 +10551,16 @@ qrcode {
display: flex;
flex-direction: column;
justify-content: center; }
#view-amount .scroll-content .send-amount .send-amount-header-footer {
flex: 1 1 auto;
min-height: 20px; }
#view-amount .scroll-content .send-amount .send-amount-header-footer .warning {
font-weight: bold;
font-size: 12px;
padding: 0 6px 6px 6px;
text-align: center; }
#view-amount .scroll-content .send-amount .send-amount-header-footer__max {
float: right; }
#view-amount .scroll-content .send-amount .send-amount-tool {
flex: 0 1 auto; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input {
@ -10548,53 +10572,56 @@ qrcode {
-moz-user-select: text;
-ms-user-select: text;
user-select: text; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
font-size: 1.8em; }
@media (min-width: 375px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
font-size: 2.1em; } }
@media (min-width: 414px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
font-size: 2.4em; } }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display {
font-size: 1.6em; }
@media (min-width: 375px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display {
font-size: 1.8em; } }
@media (min-width: 414px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display {
font-size: 2em; } }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display {
font-size: 0.9em; }
@media (min-width: 375px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display {
font-size: 1.3em; } }
@media (min-width: 414px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display {
font-size: 1.4em; } }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input {
border: 0;
padding: 0;
white-space: normal;
background: none;
line-height: 1;
box-sizing: content-box;
display: inline-block;
vertical-align: middle;
margin: 0;
height: 1em;
margin-right: 5px;
font-family: 'ProximaNova'; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit,
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
display: inline-block;
vertical-align: middle;
line-height: 1em; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount {
color: #333;
font-weight: bold; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
margin-right: 5px;
word-break: break-all; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
font-size: 1.8em; }
@media (min-width: 375px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
font-size: 2.1em; } }
@media (min-width: 414px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
font-size: 2.4em; } }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display {
font-size: 1.6em; }
@media (min-width: 375px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display {
font-size: 1.8em; } }
@media (min-width: 414px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.long .primary-amount-display {
font-size: 2em; } }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display {
font-size: 0.9em; }
@media (min-width: 375px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display {
font-size: 1.3em; } }
@media (min-width: 414px) {
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long input, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .unit, #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount.very-long .primary-amount-display {
font-size: 1.4em; } }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount input {
border: 0;
padding: 0;
white-space: normal;
background: none;
line-height: 1;
box-sizing: content-box;
display: inline-block;
vertical-align: middle;
margin: 0;
height: 1em;
margin-right: 5px;
font-family: 'ProximaNova'; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .unit,
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
display: inline-block;
vertical-align: middle;
line-height: 1em; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
margin-right: 5px;
word-break: break-all; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .alternative-amount {
color: #6F6F70; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .switch-currencies {
position: absolute;
right: 0;
@ -10603,20 +10630,40 @@ qrcode {
padding: 15px; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .switch-currencies img {
width: 18px; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-actions {
margin-top: 15px;
display: flex;
align-items: center;
justify-content: center; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-actions .button {
flex: 1 1 auto;
line-height: 1.2em; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-actions .button + .button {
margin-left: 10px; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-actions .button span {
display: flex;
align-items: center;
justify-content: center; }
#view-amount .scroll-content .send-amount-extras {
display: flex;
flex: 0 0 auto;
/* So that if only one item is present, it appears on the right. */
flex-direction: row-reverse;
font-size: 12px;
align-items: center;
justify-content: space-between;
margin: 0 14px; }
#view-amount .scroll-content .send-amount-extras .available-funds {
color: #6F6F70; }
#view-amount .scroll-content .send-amount-extras .warning {
color: #b7664d; }
#view-amount .scroll-content .send-amount-extras .extra,
#view-amount .scroll-content .send-amount-extras button.extra {
/*display: flex;*/
flex: 0 1 auto; }
#view-amount .scroll-content .send-amount-extras button.extra {
background: none;
border: none;
color: #000;
font-family: 'ProximaNova';
font-size: 14px;
line-height: normal;
min-height: auto;
min-width: auto;
padding: 0; }
#view-amount .scroll-content .send-amount-extras .button .icon:before {
font-size: 14px;
line-height: normal; }
#view-amount .scroll-content .send-amount-extras .button span {
display: flex;
align-items: center;
justify-content: center; }
#view-amount .scroll-content .button.no-margin {
margin: 0; }
#view-amount .scroll-content .notification-warning {
@ -10628,26 +10675,39 @@ qrcode {
line-height: 1.4em;
margin-bottom: 20px; }
#view-amount .scroll-content .keypad-container {
position: relative; }
position: relative;
font-size: 18px;
line-height: 2em; }
@media (min-height: 667px) {
#view-amount .scroll-content .keypad-container {
font-size: 24px; } }
@media (max-height: 480px) {
#view-amount .scroll-content .keypad-container {
font-size: 12px; } }
#view-amount .scroll-content .keypad-container .sendmax {
background: #262424; }
#view-amount .scroll-content .keypad-container .sendmax .button {
color: white;
background: black;
border: 1px solid #262424;
border-radius: 0;
font-size: 0.8em;
line-height: 2em;
width: 100%; }
#view-amount .scroll-content .keypad-container .sendmax .button .available-funds-amount {
color: #C9C9C9; }
#view-amount .scroll-content .keypad-container .sendmax .button:active {
background-color: #445; }
#view-amount .scroll-content .keypad-container .keypad {
text-align: center;
font-size: 18px;
font-weight: lighter;
position: absolute;
bottom: 0;
width: 100%;
color: #667; }
@media (min-height: 667px) {
#view-amount .scroll-content .keypad-container .keypad {
font-size: 24px; } }
color: #fff; }
#view-amount .scroll-content .keypad-container .keypad .row {
padding: 0 !important;
margin: 0 !important; }
#view-amount .scroll-content .keypad-container .keypad .col {
line-height: 38px; }
@media (min-height: 667px) {
#view-amount .scroll-content .keypad-container .keypad .col {
line-height: 45px; } }
#view-amount .scroll-content .keypad-container .keypad .row:last-child .col {
padding-bottom: 10px; }
#view-amount .scroll-content .keypad-container .keypad .operator {
@ -10666,14 +10726,20 @@ qrcode {
background-color: #eaeaea; }
#view-amount .scroll-content .keypad-container .keypad .digit {
cursor: pointer;
border-top: 1px solid #f2f2f2;
border-left: 1px solid #f2f2f2;
background-color: #000;
border: 1px solid #262424;
transition: all 0.1s ease; }
#view-amount .scroll-content .keypad-container .keypad .digit:active {
background-color: #f2f2f2; }
@media (max-height: 480px) {
#view-amount .scroll-content .keypad-container .keypad {
font-size: 12px; } }
background-color: #445; }
#view-amount .scroll-content .button-primary {
background-color: #fab915;
border-radius: 0;
font-weight: bold; }
#view-amount .scroll-content .button-primary[disabled] {
background-color: #667;
opacity: 1; }
#view-amount .warning {
color: #b7664d; }
#view-amount ion-content {
margin-bottom: constant(safe-area-inset-bottom);
/* iOS 11.0 */
@ -11113,7 +11179,9 @@ qrcode {
#tab-send .send-wrapper .buttons .button-clipboard-paste.contains-address .icon, #tab-send .send-wrapper .buttons .button-clipboard-paste.contains-content .icon {
background: url(../img/icon-clipboard-paste-white.svg); }
#tab-send .send-wrapper .buttons .button-clipboard-paste.contains-address.contains-address .address, #tab-send .send-wrapper .buttons .button-clipboard-paste.contains-content.contains-address .address {
display: inline; }
display: inline;
border: none;
background-color: transparent; }
#tab-send .send-wrapper .buttons .button-clipboard-paste.contains-address.contains-address .non-address, #tab-send .send-wrapper .buttons .button-clipboard-paste.contains-content.contains-address .non-address {
display: none; }
#tab-send .send-wrapper .buttons .button span {
@ -11237,6 +11305,61 @@ qrcode {
#tab-send #tab-send-contacts.ios {
height: calc(100vh - 270px - 50px - 44px - 18px); } }
#wallet-origin-destination .header--request {
padding: 30px 24px;
width: 100%;
height: 139px;
background-color: #fff; }
#wallet-origin-destination .header--request__title {
width: 46px;
height: 20px;
font-size: 16px;
font-weight: 600;
letter-spacing: -0.4px;
color: #000000; }
#wallet-origin-destination .header--request__amount {
font-size: 29px;
font-weight: 600;
letter-spacing: -0.7px;
color: #000000;
margin: 11px 0 2px; }
#wallet-origin-destination .header--request__amount-alt {
opacity: 0.45;
font-size: 16px;
font-weight: 600;
letter-spacing: -0.4px;
color: #000000; }
#wallet-origin-destination .wallets-header {
margin: 20px 14px 0px; }
#wallet-origin-destination .wallets-header .title {
font-size: 16px;
font-weight: bold;
color: #445;
margin-bottom: -12px; }
#wallet-origin-destination .card {
font-size: 12px;
margin: 20px 14px 0px; }
#wallet-origin-destination .card .item-heading {
font-weight: 600; }
#wallet-origin-destination .card .item-heading .subtitle {
font-size: 12px; }
#wallet-origin-destination .card-insufficient .wallet {
opacity: 0.4; }
#wallet-origin-destination .card-insufficient .item-heading {
font-size: 12px; }
#wallet-origin-destination .card-insufficient .item-heading > div {
display: inline-block;
vertical-align: text-bottom; }
#wallet-origin-destination .card-insufficient__dot {
display: inline-block;
width: 16px;
height: 16px;
background-color: #ec5959;
border-radius: 8px;
margin: 2px 6px 2px 2px; }
.settings .icon-bitpay {
background-image: url("../img/icon-bitpay.svg"); }
@ -11906,6 +12029,73 @@ a.item {
color: #667;
font-size: 0.9em; }
#shapeshift .swap-image {
width: auto;
max-width: 400px;
max-height: 25vh; }
#shapeshift .empty-case {
padding-top: 5vh;
text-align: center; }
#shapeshift .empty-case .item {
border-style: none; }
#shapeshift .empty-case > .title {
font-size: 20px;
color: #445;
margin: 20px 10px; }
#shapeshift .empty-case > .subtitle {
font-size: 1rem;
line-height: 1.5em;
font-weight: 300;
color: #6F6F70;
margin: 20px 1em 2.5em; }
#shapeshift .empty-case .big-icon-svg .bg.green {
padding: 0 10px;
box-shadow: none; }
#shapeshift .empty-case .buttons {
margin-top: 18px; }
#shapeshift .empty-case .buttons .button {
font-weight: bold;
font-size: 19px; }
#shapeshift .empty-case .button-first-contact img {
height: 19px;
width: 19px;
margin-right: 6px;
vertical-align: sub; }
#shapeshift .button-shapeshift {
border-color: #FFF;
background-color: #243F5D;
color: #FFF;
border: 0px;
box-shadow: 0 2px 11px 0 #C1C1C1; }
#shapeshift .button-shapeshift:hover {
color: #FFF;
text-decoration: none; }
#shapeshift .button-shapeshift.active, #shapeshift .button-shapeshift.activated {
border-color: #FFF;
background-color: #606060; }
#shapeshift .button-shapeshift.button-clear {
border-color: transparent;
background: none;
box-shadow: none;
color: #FFF; }
#shapeshift .button-shapeshift.button-icon {
border-color: transparent;
background: none; }
#shapeshift .button-shapeshift.button-outline {
border-color: #C1C1C1;
background: transparent;
color: #C1C1C1; }
#shapeshift .button-shapeshift.button-outline.active, #shapeshift .button-shapeshift.button-outline.activated {
background-color: #C1C1C1;
box-shadow: none;
color: #fff; }
.header.shapeshift {
background: url(../img/shapeshiftbg.jpg) center center repeat #28394d;
opacity: 0.99; }
#bitpayCard {
background: white; }
#bitpayCard .status-label {
@ -15062,10 +15252,191 @@ log-options #check-bar .checkbox-icon {
#cash-scan a {
cursor: pointer; }
#view-review {
background-color: #494949; }
#view-review slide-to-accept, #view-review slide-to-accept-success {
margin-bottom: constant(safe-area-inset-bottom);
/* iOS 11.0 */
margin-bottom: env(safe-area-inset-bottom);
/* iOS 11.2 */ }
#view-review .fee-summary {
position: absolute;
bottom: 92px; }
#view-review .shapeshift-banner, #view-review .bitpay-banner, #view-review .egifter-banner {
box-shadow: none; }
#view-review .warning {
color: #b7664d; }
.gravatar {
border-radius: 3px;
display: inline-block; }
.elastic {
width: 100%;
font-size: 14px; }
/*
* Extends Ionic v1 item
*/
.item.item-compact {
padding: 11px 13px; }
.item.item-gutterless {
padding: 0; }
.item .item-content.item-content-avatar {
min-height: 69px;
padding: 13px 11px 13px 68px; }
.item .item-content.item-content-avatar > img:first-child,
.item .item-content.item-content-avatar > i:first-child {
position: absolute;
max-width: 40px;
max-height: 40px;
width: 100%;
height: 100%;
border-radius: 50%;
left: 13px;
top: 50%;
padding: 0;
transform: translate(0, -50%); }
.item .item-content.item-content-compact {
min-height: 0;
padding: 13px 11px; }
.item .item-content .highlight {
color: #FAB915; }
.item .item-content + .item-content {
padding-top: 0; }
/*
* Extends Ionic v1 ion-content
*/
ion-content.bg-neutral {
background-color: #F2F2F2; }
ion-content.padded-bottom-cta {
bottom: 92px; }
ion-content.padded-bottom-cta-with-summary {
bottom: 134px; }
.card.card-gutter-compact {
margin: 10px 12px; }
.header {
padding: 29px 12px 61px;
background-color: #fab915;
color: #FFFFFF; }
.header.btc {
background-color: #535353; }
.header .title {
font-size: 18px;
font-weight: 400;
line-height: 1em;
color: #FFFFFF;
text-align: center; }
.header .title + .content {
margin-top: 23px; }
.header .content {
text-align: center; }
.header .content p {
margin: 0;
line-height: 1em;
font-size: 18px; }
.header .content p.large {
font-size: 29px;
font-weight: 600; }
.header .content p + p {
margin-top: 8px; }
.content-frame.negative-top {
margin-top: -40px; }
.content-frame.negative-top .card:first-child {
margin-top: 0; }
.address-frame {
background-color: #F8F8F8;
border: 0.5px solid #EDEBEB;
border-radius: 3px;
padding: 9px;
text-align: center;
font-size: 14px;
overflow: hidden;
text-overflow: ellipsis; }
.address-frame.expanded {
white-space: pre-wrap;
word-break: break-all; }
.address-frame .prefix {
color: #000000; }
.address-frame .mid {
color: #919191; }
.address-frame .suffix {
color: #000000; }
.action-minor {
margin: 20px 14px;
font-size: 14px; }
.action-minor.mt-negative {
margin-top: 0; }
.action-minor.text-right {
text-align: right; }
.action-minor > .action-icon {
width: 15px;
height: 15px;
vertical-align: middle;
margin-right: 3px; }
.action-minor > .action-text {
vertical-align: middle;
color: #444444; }
.expand-content-frame {
position: relative; }
.expand-content-frame .expand-content-trigger {
position: absolute;
top: 0;
transition: opacity 0.3s ease;
right: 0; }
.expand-content-frame .expand-content-trigger.expand-content-revealed {
opacity: 0; }
.expand-content-frame .expand-content {
opacity: 0;
transform-origin: 100% 0%;
transform: scale(0, 0);
transition: opacity 0.3s ease, transform 0.3s ease; }
.expand-content-frame .expand-content.expand-content-revealed {
opacity: 1;
transform: scale(1, 1); }
.fee-summary {
position: relative;
display: flex;
flex-direction: column;
width: 100%;
padding: 5px 12px 15px;
box-sizing: border-box;
background-color: #F2F2F2; }
.fee-summary:before {
content: '';
position: absolute;
left: 0;
top: -15px;
width: 100%;
height: 15px;
background: linear-gradient(to bottom, rgba(242, 242, 242, 0) 0%, #f2f2f2 100%); }
.fee-summary .amount {
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%; }
.fee-summary .amount .fee-fiat.positive {
color: #70955F; }
.fee-summary .amount .fee-fiat.negative {
color: #C24633; }
.fee-summary .amount .fee-crypto {
color: #A7A7A7; }
.amount .start,
.amount .middle,
.amount .end,

13
www/img/bitpay_banner.svg Normal file

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
www/img/egifter_banner.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.6 KiB

View file

@ -0,0 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<svg width="17px" height="17px" viewBox="0 0 17 17" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<!-- Generator: sketchtool 40.1 (33804) - http://www.bohemiancoding.com/sketch -->
<title>3A719124-019D-470F-908A-5D61F117A295</title>
<desc>Created with sketchtool.</desc>
<defs></defs>
<g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
<g id="Icons" transform="translate(-324.000000, -770.000000)" stroke="#000000" stroke-width="0.7">
<g id="icons/list-items/sync" transform="translate(324.000000, 770.000000)">
<g id="Group" transform="translate(0.365217, 0.365217)">
<polyline id="Shape" points="10.5913043 11.6869565 0 11.6869565 0 0 16.0695652 0 16.0695652 7.96173913"></polyline>
<ellipse id="Oval" cx="8.03478261" cy="5.84347826" rx="1.46086957" ry="1.46086957"></ellipse>
<path d="M13.8782609,6.57391304 L13.8782609,4.3826087 C12.6365217,4.3826087 11.6869565,3.43304348 11.6869565,2.19130435 L4.3826087,2.19130435 C4.3826087,3.43304348 3.43304348,4.3826087 2.19130435,4.3826087 L2.19130435,7.30434783 C3.43304348,7.30434783 4.3826087,8.25391304 4.3826087,9.49565217 L10.5913043,9.49565217" id="Shape"></path>
<path d="M15.0469565,13.5130435 C15.6313043,13.8052174 16.0695652,14.1704348 16.0695652,14.6086957 C16.0695652,15.4121739 14.7547826,16.0695652 13.1478261,16.0695652 C11.5408696,16.0695652 10.226087,15.4121739 10.226087,14.6086957 C10.226087,14.1704348 10.5913043,13.8052174 11.2486957,13.5130435" id="Shape"></path>
<path d="M15.0469565,11.3217391 C15.6313043,11.613913 16.0695652,11.9791304 16.0695652,12.4173913 C16.0695652,13.2208696 14.7547826,13.8782609 13.1478261,13.8782609 C11.5408696,13.8782609 10.226087,13.2208696 10.226087,12.4173913 C10.226087,11.9791304 10.5913043,11.613913 11.1756522,11.3217391" id="Shape"></path>
<path d="M15.0469565,9.13043478 C15.6313043,9.4226087 16.0695652,9.78782609 16.0695652,10.226087 C16.0695652,11.0295652 14.7547826,11.6869565 13.1478261,11.6869565 C11.5408696,11.6869565 10.226087,11.0295652 10.226087,10.226087 C10.226087,9.78782609 10.5913043,9.4226087 11.1756522,9.13043478" id="Shape"></path>
<ellipse id="Oval" cx="13.1478261" cy="8.03478261" rx="2.92173913" ry="1.46086957"></ellipse>
</g>
</g>
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 2.5 KiB

11
www/img/icon-bookmark.svg Normal file
View file

@ -0,0 +1,11 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 11.25 15">
<defs>
<style>
.cls-1 {
fill: #444;
opacity: 0.564;
}
</style>
</defs>
<path id="_ionicons_svg_md-bookmark" class="cls-1" d="M121.688,64h-8.125A1.567,1.567,0,0,0,112,65.563V79l5.625-2.5L123.25,79V65.563A1.567,1.567,0,0,0,121.688,64Z" transform="translate(-112 -64)"/>
</svg>

After

Width:  |  Height:  |  Size: 381 B

BIN
www/img/icon-egifter.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

BIN
www/img/shapeshift_swap.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB

View file

@ -1,82 +1,95 @@
<ion-view id="view-amount" hide-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
{{'Enter amount' | translate}}
{{'Enter Amount' | translate}}
</ion-nav-title>
<ion-nav-back-button ng-click="goBack()"></ion-nav-back-button>
<ion-nav-back-button ng-click="vm.goBack()"></ion-nav-back-button>
</ion-nav-bar>
<ion-content scroll="false" style="background: #fff;">
<ion-content scroll="false">
<div ng-if="vm.thirdParty && vm.thirdParty.id === 'shapeshift'" ng-include="'views/thirdparty/shapeshift-header.html'"></div>
<div style="order: 0; position: relative;">
<div class="item send-amount">
<div ng-if="shapeshiftOrderId">
Minimum amount: {{minShapeshiftAmount}} <br/>
Maximum amount: {{maxShapeshiftAmount}} <br/>
<div class="card item send-amount">
<div class="send-amount-header-footer">
<span class="send-amount-header-footer__min" ng-if="vm.minAmount">Min: {{vm.minAmount}}</span> <span class="send-amount-header-footer__max" ng-if="vm.maxAmount">Max: {{vm.maxAmount}}</span>
</div>
<div class="send-amount-tool">
<div class="send-amount-tool-input amount">
<div class="primary-amount"
ng-class="{long: amountModel.amount.length > 5, 'very-long': amountModel.amount.length > 10}">
<span class="primary-amount-display text-selectable">{{ amountModel.amount || 0 }}</span><span class="unit">{{unit}}</span>
ng-class="{long: vm.amount.length > 5, 'very-long': vm.amount.length > 10}">
<span class="primary-amount-display text-selectable">{{vm.amount || '0'}} {{vm.unit}}</span>
</div>
<span ng-show="globalResult">{{globalResult}} {{unit}}</span>
<span ng-show="vm.globalResult">{{vm.globalResult}} {{vm.unit}}</span>
<div class="alternative-amount">
<span class="text-selectable">{{alternativeAmount || '0.00'}}</span> <span>{{alternativeUnit}}</span>
<span class="text-selectable">{{vm.alternativeAmount || '0.00'}}</span> <span>{{vm.alternativeUnit}}</span>
</div>
<div class="switch-currencies" ng-click="changeUnit()"><img src="img/icon-convert.svg"></div>
<div class="switch-currencies" ng-click="vm.changeUnit()"><img src="img/icon-convert.svg"></div>
</div>
<div class="send-amount-actions text-center">
<button class="button button-sendmax" ng-click="sendMax()">
<span>
<i class="icon ion-ios-speedometer-outline"></i>&emsp;
<span translate>Send max amount</span>
</span>
</button>
<button class="button button-sendmax" ng-click="openPopup()">
<span>
<i class="icon ion-social-usd"></i>&emsp;
<span translate>Change currency</span>
</span>
</button>
<div class="send-amount-header-footer">
<div class="warning" ng-show="vm.errorMessage">
{{vm.errorMessage}}
</div>
</div>
</div>
</div>
</div>
<div class="send-amount-extras text-center">
<button class="extra button" ng-click="vm.openPopup()">
<span>
<img src="img/icon-alternative-currency-black.svg"/>
&ensp;
<span translate>Change Currency</span>
</span>
</button>
<div class="extra available-funds"
ng-class="{warning: vm.fundsAreInsufficient}"
ng-if="!vm.isRequestingSpecificAmount" translate>
<span>Available Funds:</span>&ensp;<span>{{vm.availableFunds}}</span>
</div>
</div>
</div>
<div class="keypad-container" style="background: #fff; position: absolute; bottom: 0; margin-bottom: 57px; width: 100%;">
<div class="keypad" style="background: #f2f2f2; position: relative;">
<div class="sendmax" ng-if="vm.availableFunds && !vm.isRequestingSpecificAmount">
<button class="button button-sendmax" ng-click="vm.sendMax()">
<span>
<span translate>Use All Available Funds</span>&ensp;
<span class="available-funds-amount">({{vm.availableFunds}})</span>
</span>
</button>
</div>
<div class="keypad" style="position: relative;">
<div class="row">
<div class="col digit" ng-click="pushDigit('7')">7</div>
<div class="col digit" ng-click="pushDigit('8')">8</div>
<div class="col digit" ng-click="pushDigit('9')">9</div>
<div class="col digit" ng-click="vm.pushDigit('7')">7</div>
<div class="col digit" ng-click="vm.pushDigit('8')">8</div>
<div class="col digit" ng-click="vm.pushDigit('9')">9</div>
</div>
<div class="row">
<div class="col digit" ng-click="pushDigit('4')">4</div>
<div class="col digit" ng-click="pushDigit('5')">5</div>
<div class="col digit" ng-click="pushDigit('6')">6</div>
<div class="col digit" ng-click="vm.pushDigit('4')">4</div>
<div class="col digit" ng-click="vm.pushDigit('5')">5</div>
<div class="col digit" ng-click="vm.pushDigit('6')">6</div>
</div>
<div class="row">
<div class="col digit" ng-click="pushDigit('1')">1</div>
<div class="col digit" ng-click="pushDigit('2')">2</div>
<div class="col digit" ng-click="pushDigit('3')">3</div>
<div class="col digit" ng-click="vm.pushDigit('1')">1</div>
<div class="col digit" ng-click="vm.pushDigit('2')">2</div>
<div class="col digit" ng-click="vm.pushDigit('3')">3</div>
</div>
<div class="row">
<div class="col digit" ng-click="pushDigit('.')">.</div>
<div class="col digit" ng-click="pushDigit('0')">0</div>
<div class="col digit icon ion-backspace-outline" ng-click="removeDigit()"></div>
<div class="col digit" ng-click="vm.pushDigit('.')">.</div>
<div class="col digit" ng-click="vm.pushDigit('0')">0</div>
<div class="col digit icon ion-backspace-outline" ng-click="vm.removeDigit()"></div>
</div>
</div>
</div>
<button
class="button button-full button-primary no-margin"
ng-disabled="!allowSend"
ng-click="finish()"
ng-disabled="!vm.allowSend"
ng-click="vm.finish()"
style="position: absolute; bottom: 0;"
translate>
Next

View file

@ -105,13 +105,13 @@
</ion-content>
<click-to-accept
ng-click="approve(tx, wallet, statusChangeHandler)"
ng-if="(!isCordova || isWindowsPhoneApp) && wallet"
ng-if="(!isCordova) && wallet"
click-send-status="sendStatus"
is-disabled="!wallet">
{{buttonText}}
</click-to-accept>
<slide-to-accept
ng-if="isCordova && !isWindowsPhoneApp && wallet"
ng-if="isCordova && wallet"
slide-on-confirm="approve(tx, wallet, statusChangeHandler)"
slide-send-status="sendStatus"
is-disabled="!wallet">

View file

@ -3,7 +3,7 @@
<div class="title">
{{'Alternative Currency'|translate}}
</div>
<button class="button button-clear" ng-click="close()" translate>
<button class="button button-clear" ng-click="vm.close()" translate>
{{'Close'|translate}}
</button>
</ion-header-bar>
@ -11,23 +11,23 @@
<div class="bar bar-header item-input-inset m20b">
<label class="item-input-wrapper">
<i class="icon ion-ios-search placeholder-icon"></i>
<input type="search" ng-init="searchedAltCurrency = ''" ng-model="searchedAltCurrency" ng-change="findCurrency(searchedAltCurrency)"
<input type="search" ng-init="searchedAltCurrency = ''" ng-model="searchedAltCurrency" ng-change="vm.findCurrency(searchedAltCurrency)"
placeholder="{{'Search your currency' | translate}}">
</label>
</div>
<div class="list" ng-if="lastUsedPopularList[0] && searchedAltCurrency.length == 0">
<ion-radio class="alt-currency-radio" ng-repeat="lastUsedAltCurrency in lastUsedPopularList" ng-value="lastUsedAltCurrency.isoCode" ng-model="currentCurrency"
ng-click="save(lastUsedAltCurrency)">{{lastUsedAltCurrency.name}} <span class="item-note">{{lastUsedAltCurrency.isoCode}}</span>
<div class="list" ng-if="vm.lastUsedPopularList[0] && searchedAltCurrency.length == 0">
<ion-radio class="alt-currency-radio" ng-repeat="lastUsedAltCurrency in vm.lastUsedPopularList" ng-value="lastUsedAltCurrency.isoCode" ng-model="currentCurrency"
ng-click="vm.save(lastUsedAltCurrency)">{{lastUsedAltCurrency.name}} <span class="item-note">{{lastUsedAltCurrency.isoCode}}</span>
</ion-radio>
</div>
<div class="list">
<div class="item" ng-repeat="altCurrency in altCurrencyList" ng-value="altCurrency.isoCode" ng-model="currentCurrency"
ng-click="save(altCurrency)">{{altCurrency.name}} <span class="item-note">{{altCurrency.isoCode}}</span>
<div class="item" ng-repeat="altCurrency in vm.altCurrencyList" ng-value="altCurrency.isoCode" ng-model="currentCurrency"
ng-click="vm.save(altCurrency)">{{altCurrency.name}} <span class="item-note">{{altCurrency.isoCode}}</span>
</div>
</div>
<ion-infinite-scroll
ng-if="!listComplete"
on-infinite="loadMore()"
ng-if="!vm.listComplete"
on-infinite="vm.loadMore()"
distance="50%">
</ion-infinite-scroll>
</ion-content>

119
www/views/review.html Normal file
View file

@ -0,0 +1,119 @@
<ion-view id="view-review" hide-tabs>
<ion-nav-bar class="bar-royal {{vm.origin.currency.toLowerCase()}}">
<ion-nav-title>
{{'Review Transaction' | translate}}
</ion-nav-title>
<ion-nav-back-button>
</ion-nav-back-button>
</ion-nav-bar>
<ion-content class="padded-bottom-cta-with-summary bg-neutral">
<div ng-if="vm.thirdParty && vm.thirdParty.id === 'shapeshift'" ng-include="'views/thirdparty/shapeshift-header.html'"></div>
<div class="header {{vm.origin.currency.toLowerCase()}}" ng-class="vm.thirdParty.id">
<div class="content">
<p>{{vm.sendingTitle}}</p>
<p class="large">{{vm.primaryAmount}} {{vm.primaryCurrency}}</p>
<p ng-show="vm.secondaryAmount">{{vm.secondaryAmount}} {{vm.secondaryCurrency}}</p>
</div>
</div>
<div class="content-frame negative-top">
<div class="card card-gutter-compact">
<div class="item item-compact" translate>From:</div>
<div class="item item-gutterless item-complex item-avatar">
<div class="item-content item-content-avatar">
<i class="icon big-icon-svg theme-circle theme-circle-services">
<div class="bg icon-wallet"
style="background-color: {{vm.originWallet.color}}"
></div>
</i>
<h2>{{vm.originWallet.name}} <span class="highlight" style="color: {{vm.origin.currencyColor}}">({{vm.origin.currency}})</span></h2>
<p ng-show="vm.origin.balanceAmount">{{vm.origin.balanceAmount}} {{vm.origin.balanceCurrency}}</p>
</div>
</div>
</div>
<div class="card card-gutter-compact">
<div class="item item-compact" translate>To:</div>
<div class="item item-gutterless item-complex item-avatar">
<div class="item-content item-content-avatar"
ng-if="vm.destination.kind === 'contact' || vm.destination.kind === 'wallet' || vm.destination.kind == 'shapeshift'">
<img src="img/contact-placeholder.svg" class="bg" ng-if="vm.destination.kind === 'contact'">
<i class="icon big-icon-svg theme-circle theme-circle-services" ng-if="vm.destination.kind === 'wallet' || vm.destination.kind === 'shapeshift'">
<div class="bg icon-wallet"
style="background-color: {{vm.destination.color}}"
></div>
</i>
<h2>{{vm.destination.name}}<span class="highlight" style="color: {{vm.destination.currencyColor}}" ng-if="vm.destination.currency"> ({{vm.destination.currency}})</span></h2></h2>
<p ng-if="vm.destination.balanceAmount">{{vm.destination.balanceAmount}} {{vm.destination.balanceCurrency}}</p>
</div>
<div class="item-content item-content-avatar"
ng-if="vm.thirdParty && vm.thirdParty.id === 'bip70'
&& (vm.thirdParty.name === 'BitPay' || vm.thirdParty.name === 'eGifter')">
<img ng-if="vm.thirdParty.name === 'BitPay'" src="img/icon-bitpay.svg" class="bg">
<img ng-if="vm.thirdParty.name === 'eGifter'" src="img/icon-egifter.png" class="bg">
<h2>{{vm.destination.name}}</h2>
<p translate ng-if="!vm.paymentExpired">Payment expires: {{vm.remainingTimeStr}}</p>
<p class="warning" translate ng-if="vm.paymentExpired">Payment request has expired</p>
</div>
<div class="item-content item-content-compact" ng-init="addressExpanded = false" ng-if="vm.destination.kind === 'address' && !vm.thirdParty">
<div class="address-frame" ng-class="{ 'expanded': addressExpanded }" ng-click="addressExpanded = !addressExpanded">
<span class="prefix">{{vm.destination.address.substring(0,5)}}</span><span class="mid">{{vm.destination.address.substring(5,vm.destination.address.length-4)}}</span><span class="suffix">{{vm.destination.address.substring(vm.destination.address.length-4)}}</span>
</div>
</div>
</div>
</div>
<div class="expand-content-frame">
<div class="action-minor mt-negative text-right expand-content-trigger"
ng-class="{ 'expand-content-revealed': vm.memoExpanded }"
ng-click="vm.memoExpanded = !vm.memoExpanded">
<img src="img/icon-bookmark.svg" class="action-icon">
<span class="action-text">Add personal note</span>
</div>
<div class="card card-gutter-compact expand-content"
ng-class="{ 'expand-content-revealed': vm.memoExpanded }">
<div class="item item-compact" translate>Personal Note:</div>
<div class="item">
<div class="item-content">
<textarea elastic placeholder="{{btx.note.body || btx.message || 'Enter text here'}}" class="elastic" ng-model="vm.memo"></textarea>
</div>
</div>
</div>
</div>
</div>
</ion-content>
<div class="fee-summary">
<div ng-if="vm.thirdParty && vm.thirdParty.id === 'bip70'" translate="">Suggested by merchant:</div>
<div class="amount">
<div class="fee-fiat positive" ng-if="vm.feeLessThanACent">Fee: Less than 1 cent</div>
<div class="fee-fiat" ng-class="vm.feeIsHigh ? 'negative' : 'positive'" ng-if="!vm.feeLessThanACent">Fee: {{vm.feeFiat}} {{vm.feeCurrency}}</div>
<div class="fee-crypto" ng-if="vm.feeCrypto">
{{vm.feeCrypto}} {{vm.origin.currency}}
</div>
</div>
</div>
<click-to-accept
ng-click="vm.approve()"
ng-if="!vm.isCordova"
click-send-status="vm.sendStatus"
is-disabled="!vm.readyToSend">
{{vm.buttonText}}
</click-to-accept>
<slide-to-accept
ng-if="vm.isCordova"
slide-on-confirm="vm.approve()"
slide-send-status="vm.sendStatus"
is-disabled="!vm.readyToSend">
{{vm.buttonText}}
</slide-to-accept>
<slide-to-accept-success
slide-success-show="vm.sendStatus === 'success'"
slide-success-on-confirm="vm.onSuccessConfirm()"
slide-success-hide-on-confirm="true">
<span ng-show="vm.originWallet.m == 1 && (vm.originWallet.canSign() || vm.originWallet.isPrivKeyExternal())" translate>Payment Sent</span>
<span ng-show="vm.originWallet.m > 1 && (vm.originWallet.canSign() || vm.originWallet.isPrivKeyExternal())" translate>Proposal Created</span>
<span ng-show="!vm.originWallet.canSign() && !vm.originWallet.isPrivKeyExternal()" translate>Transaction Created</span>
</slide-to-accept-success>
</ion-view>

View file

@ -1,4 +1,4 @@
<ion-view class="settings" show-tabs>
<ion-view id="shapeshift" class="settings" show-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>
{{'Shapeshift'|translate}}
@ -7,14 +7,29 @@
</ion-nav-back-button>
</ion-nav-bar>
<ion-content>
<div class="send-header-wrapper shapeshift-banner">
<img class="shapeshift-logo" src="img/shapeshiftlogo.svg"/>
</div>
<div class="list card ng-hide" ng-show="fromWallets.length == 0 || toWallets.length == 0">
<div class="item item-heading">
<span translate>No available wallets to convert between.</span>
<div ng-include="'views/thirdparty/shapeshift-header.html'"></div>
<div class="list card empty-case">
<div>
<img class="swap-image" src="img/shapeshift_swap.png"/>
</div>
<div class="subtitle">
<p translate>Exchange your BTC to BCH in minutes.</p>
<div ng-show="!walletsWithFunds.length">
<p translate>To start the process you need to add funds to your wallet.</p>
</div>
<div ng-show="walletsWithFunds.length">
<p translate>The process is fast and you will receive the exchanged amount in your wallet.</p>
</div>
<div ng-show="!hasWallets" translate>To get started, you'll need to create a bitcoin wallet and get some bitcoin.</div>
<div class="padding buttons">
<button class="button button-standard button-green" ng-click="buyBitcoin()" ng-show="!walletsWithFunds.length" translate>Buy Bitcoin now</button>
<button class="button button-standard button-green" ng-click="createWallet()" ng-show="!hasWallets" translate>Create bitcoin wallet</button>
<button class="button button-standard button-shapeshift track_shapeshift_start_click" ng-click="shapeshift()" ng-show="walletsWithFunds.length" translate>Start ShapeShift</button>
</div>
</div>
</div>
<div class="third-party-notice" translate>This service is provided by the third-party ShapeShift, who will charge a small fee for the service. The fee will be shown before you start the transaction.</div>
<shapeshift-coin-trader class="ng-hide" ng-show="fromWallets.length > 0 && toWallets.length > 0">
<div class="list card">
<div class="item item-heading">
@ -94,21 +109,21 @@
</shapeshift-coin-trader>
</ion-content>
<wallet-selector
wallet-selector-title="fromWalletSelectorTitle"
wallet-selector-wallets="fromWallets"
wallet-selector-selected-wallet="fromWallet"
wallet-selector-show="showFromWallets"
wallet-selector-on-select="onFromWalletSelect"
wallet-selector-always-display-bitcoin-core="true">
</wallet-selector>
<!--<wallet-selector-->
<!--wallet-selector-title="fromWalletSelectorTitle"-->
<!--wallet-selector-wallets="fromWallets"-->
<!--wallet-selector-selected-wallet="fromWallet"-->
<!--wallet-selector-show="showFromWallets"-->
<!--wallet-selector-on-select="onFromWalletSelect"-->
<!--wallet-selector-always-display-bitcoin-core="true">-->
<!--</wallet-selector>-->
<wallet-selector
wallet-selector-title="toWalletSelectorTitle"
wallet-selector-wallets="toWallets"
wallet-selector-selected-wallet="toWallet"
wallet-selector-show="showToWallets"
wallet-selector-on-select="onToWalletSelect"
wallet-selector-always-display-bitcoin-core="true">
</wallet-selector>
</ion-view>
<!--<wallet-selector-->
<!--wallet-selector-title="toWalletSelectorTitle"-->
<!--wallet-selector-wallets="toWallets"-->
<!--wallet-selector-selected-wallet="toWallet"-->
<!--wallet-selector-show="showToWallets"-->
<!--wallet-selector-on-select="onToWalletSelect"-->
<!--wallet-selector-always-display-bitcoin-core="true">-->
<!--</wallet-selector>-->
<!--</ion-view>-->

View file

@ -22,7 +22,7 @@
</button>
</div>
<div class="col-60">
<button class="button button-standard button-primary button-outline" ng-click="showWalletSelector()">
<button class="button button-standard button-primary button-outline" ui-sref="tabs.send.wallet-to-wallet">
<img src="img/icon-w2w.svg"/><br/>
<span translate>Wallet to Wallet Transfer</span>
</button>
@ -90,7 +90,7 @@
</div>
<div class="list">
<a class="item item-icon-left item-icon-right" ng-repeat="item in list"
ng-if="!item.isWallet && item.recipientType != 'wallet'" ng-click="goToAmount(item)">
ng-if="!item.isWallet && item.recipientType != 'wallet'" ng-click="sendToContact(item)">
<i class="icon big-icon-svg">
<gravatar class="send-gravatar" name="{{item.name}}" width="120" email="{{item.email}}"></gravatar>
</i>
@ -105,31 +105,31 @@
</div>
</div>
</ion-content>
<wallet-selector
wallet-selector-title="walletSelectorTitleFrom"
wallet-selector-force-title="walletSelectorTitleForce"
wallet-selector-wallets="walletsWithFunds"
wallet-selector-selected-wallet="wallet"
wallet-selector-show="showWallets"
wallet-selector-on-select="onWalletSelect"
wallet-selector-display-balance-as-fiat="displayBalanceAsFiat">
</wallet-selector>
<wallet-selector
wallet-selector-on-hide=""
wallet-selector-title="walletSelectorTitleTo"
wallet-selector-wallets="walletsBch"
wallet-selector-selected-wallet="wallet"
wallet-selector-show="showWalletsBch"
wallet-selector-on-select="onWalletSelect"
wallet-selector-display-balance-as-fiat="displayBalanceAsFiat">
</wallet-selector>
<wallet-selector
wallet-selector-on-hide=""
wallet-selector-title="walletSelectorTitleTo"
wallet-selector-wallets="walletsBtc"
wallet-selector-selected-wallet="wallet"
wallet-selector-show="showWalletsBtc"
wallet-selector-on-select="onWalletSelect"
wallet-selector-display-balance-as-fiat="displayBalanceAsFiat">
</wallet-selector>
<!--<wallet-selector-->
<!--wallet-selector-title="walletSelectorTitleFrom"-->
<!--wallet-selector-force-title="walletSelectorTitleForce"-->
<!--wallet-selector-wallets="walletsWithFunds"-->
<!--wallet-selector-selected-wallet="wallet"-->
<!--wallet-selector-show="showWallets"-->
<!--wallet-selector-on-select="onWalletSelect"-->
<!--wallet-selector-display-balance-as-fiat="displayBalanceAsFiat">-->
<!--</wallet-selector>-->
<!--<wallet-selector-->
<!--wallet-selector-on-hide=""-->
<!--wallet-selector-title="walletSelectorTitleTo"-->
<!--wallet-selector-wallets="walletsBch"-->
<!--wallet-selector-selected-wallet="wallet"-->
<!--wallet-selector-show="showWalletsBch"-->
<!--wallet-selector-on-select="onWalletSelect"-->
<!--wallet-selector-display-balance-as-fiat="displayBalanceAsFiat">-->
<!--</wallet-selector>-->
<!--<wallet-selector-->
<!--wallet-selector-on-hide=""-->
<!--wallet-selector-title="walletSelectorTitleTo"-->
<!--wallet-selector-wallets="walletsBtc"-->
<!--wallet-selector-selected-wallet="wallet"-->
<!--wallet-selector-show="showWalletsBtc"-->
<!--wallet-selector-on-select="onWalletSelect"-->
<!--wallet-selector-display-balance-as-fiat="displayBalanceAsFiat">-->
<!--</wallet-selector>-->
</ion-view>

View file

@ -0,0 +1,3 @@
<div class="send-header-wrapper bitpay-banner">
<img class="bitpay-logo" src="img/bitpay_banner.svg"/>
</div>

View file

@ -0,0 +1,3 @@
<div class="send-header-wrapper egifter-banner">
<img class="egifter-logo" src="img/egifter_banner.png"/>
</div>

View file

@ -0,0 +1,3 @@
<div class="send-header-wrapper shapeshift-banner">
<img class="shapeshift-logo" src="img/shapeshiftlogo.svg"/>
</div>

View file

@ -0,0 +1,59 @@
<ion-view id="wallet-origin-destination" show-tabs>
<ion-nav-bar class="bar-royal">
<ion-nav-title>{{sendFlowTitle}}</ion-nav-title>
<ion-nav-back-button ng-click="goBack()"></ion-nav-back-button>
</ion-nav-bar>
<ion-content>
<div ng-if="thirdParty && thirdParty.id === 'shapeshift'" ng-include="'views/thirdparty/shapeshift-header.html'"></div>
<div ng-if="thirdParty && thirdParty.id === 'bip70' && thirdParty.name === 'BitPay'" ng-include="'views/thirdparty/bitpay-header.html'"></div>
<div ng-if="thirdParty && thirdParty.id === 'bip70' && thirdParty.name === 'eGifter'" ng-include="'views/thirdparty/egifter-header.html'"></div>
<div class="header--request" ng-if="isPaymentRequest">
<div class="header--request__title" translate>Paying</div>
<div class="header--request__amount" translate>{{requestAmount}} {{requestCurrency}}</div>
<div class="header--request__amount-alt" ng-show="requestAmountSecondary" translate>{{requestAmountSecondary}} {{requestCurrencySecondary}}</div>
</div>
<div class="wallets-header">
<div class="title">
{{headerTitle}}
</div>
</div>
<div class="list card" ng-if="walletsBch.length > 0">
<div class="item item-icon-right item-heading">
<div translate>Bitcoin Cash (BCH)</div>
<div translate class="subtitle">Instant transactions with low fees</div>
</div>
<div>
<a ng-repeat="wallet in walletsBch track by $index"
class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet"
ng-click="useWallet(wallet)">
<span ng-include="'views/includes/walletList.html'"></span>
</a>
</div>
</div>
<div class="list card" ng-if="walletsBtc.length > 0">
<div class="item item-icon-right item-heading">
<div translate>Bitcoin Core (BTC)</div>
</div>
<div>
<a ng-repeat="wallet in walletsBtc track by $index"
class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet"
ng-click="useWallet(wallet)">
<span ng-include="'views/includes/walletList.html'"></span>
</a>
</div>
</div>
<div class="list card card-insufficient" ng-if="walletsInsufficientFunds.length > 0">
<div class="item item-icon-right item-heading">
<span class="card-insufficient__dot"></span><div translate>Insufficient funds</div>
</div>
<div>
<a ng-repeat="wallet in walletsInsufficientFunds track by $index"
class="item item-sub item-icon-left item-big-icon-left item-icon-right wallet">
<span ng-include="'views/includes/walletList.html'"></span>
</a>
</div>
</div>
</ion-content>
</ion-view>