Compare commits

...

27 commits

Author SHA1 Message Date
A R Hansen
8e73e4c16d Merge branch 'develop' 2018-10-12 12:50:54 +02:00
A R Hansen
06f1f4df91 - ll - 2018-10-12 12:48:15 +02:00
A R Hansen
70f520ea43 adding instructions 2018-10-12 12:46:09 +02:00
A R Hansen
f1d2b00b2b set up my own bitcore server and changed the url. for some reason Bitcoin.com's server won't accept 0 fee txs. 2018-10-12 11:53:16 +02:00
A R Hansen
4e524a7500 Not needed. 2018-10-08 02:16:43 +02:00
A R Hansen
c0a14fe11c Merge ZeroFeeTxs 2018-10-08 02:01:15 +02:00
A R Hansen
d47393f160 .. 2018-10-08 02:00:36 +02:00
A R Hansen
898b7d03fe 0 fee transaction feature added. 2018-10-08 01:55:55 +02:00
Jean-Baptiste Dominguez
49a6711970
Merge branch 'wallet/prod' into master 2018-09-22 10:59:24 +02:00
Brendon Duncan
d72a71d920 RC version. 2018-09-21 17:21:59 -07:00
Brendon Duncan
4d623d51d7 Merged sprint 21. 2018-09-21 17:16:18 -07:00
Brendon Duncan
e02368ea3c Incremented version for release candidate. 2018-09-15 18:05:39 +12:00
Brendon Duncan
92c1b4b346 Merged translations from sprint. 2018-09-15 18:02:00 +12:00
Brendon Duncan
f3902ba3f0 Merged sprint to get fix for Wallet Details transaction list. 2018-09-15 17:32:55 +12:00
Brendon Duncan
9438960e24 Hotfix version. 2018-09-12 18:39:56 +12:00
Brendon Duncan
d55fc70e7d Remove Games link. 2018-09-12 18:13:50 +12:00
Brendon Duncan
c1f6e56b56 Increment version. 2018-09-11 15:37:47 +12:00
Brendon Duncan
7d29490b0f Merged sprint. 2018-09-11 15:33:26 +12:00
Jean-Baptiste Dominguez
51c35101a6 appConfig beta release 2018-09-07 17:08:39 +09:00
Brendon Duncan
ce02025991 Merge for building pkg. 2018-09-05 18:03:49 +12:00
Brendon Duncan
d2715016b5 Merge for building pkg. 2018-09-05 18:00:45 +12:00
Brendon Duncan
3afbdf73d3
Merge pull request #323 from Bitcoin-com/wallet/hotfix/578
578 - Shapeshift item on home tab now links to the Shapeshift website.
2018-09-05 15:30:09 +12:00
Brendon Duncan
00e4f8ac39 Hotfix version. 2018-09-05 15:28:10 +12:00
Brendon Duncan
8c62bc445a Shapeshift item on home tab now goes to the Shapeshift website. 2018-09-05 12:37:39 +12:00
Jean-Baptiste Dominguez
1c450418b8
Merge pull request #301 from Bitcoin-com/wallet/prod
5.0
2018-08-27 12:59:17 +09:00
Jean-Baptiste Dominguez
15b161d55d
Merge pull request #269 from Bitcoin-com/wallet/dev
Wallet/dev
2018-08-13 15:36:06 +09:00
Jean-Baptiste Dominguez
e127b81e7c
Merge pull request #242 from Bitcoin-com/wallet/prod
Wallet/prod
2018-08-07 23:01:10 +09:00
11 changed files with 212 additions and 92 deletions

14
.vscode/launch.json vendored Normal file
View file

@ -0,0 +1,14 @@
{
// Use IntelliSense to learn about possible attributes.
// Hover to view descriptions of existing attributes.
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
"version": "0.2.0",
"configurations": [
{
"type": "node",
"request": "launch",
"name": "Launch Program",
"program": "${workspaceFolder}/www/index.html"
}
]
}

View file

@ -1,3 +1,24 @@
This is a fork of the Bitcoin.com wallet to add additional features.
Features included:
- Zero fee transactions (only works for Bitcoin Cash). You will be asked for, if you want to send a transaction as zero fee on the confirmation page.
## Zero fee transactions:
Because most network nodes on the Bitcoin Cash network don't relay zero fee txs, you will experience some strange issues, but don't worry: for me personally the Bitcoin.com pool has included all my zero fee transactions, but please beware that the receiver probably won't see your tx before it has been confirmed and please do also keep in mind, that the transactions coming after it won't confirm or be seen before the zero fee one has been confirmed.
If you do already have a Bitcoin.com wallet, you need to create a new one to use this feature or change the wallet URL to: https://bws.freepages.dk/bws/api
## Disclaimer
Please beware this is my personal experimental project. You are more than welcome to play with it, but I don't take any responsibility of loss of funds due to errors in the code, so please make sure you made a backup before running this software.
## Builds
You can build the software yourself using the instructions below or use prebuilt binaries which can be found here (currently Windows and Linux only): https://ipfs.io/ipfs/QmR1DaS3QsDS48SzAWKUWFfmtMfJc4tgMtkSk3JFmuzewe
##
The Bitcoin.com wallet is a fork of the Copay Wallet (https://github.com/bitpay/copay). The Bitcoin.com wallet is a fork of the Copay Wallet (https://github.com/bitpay/copay).
The Bitcoin.com wallet is a secure bitcoin wallet platform for both desktop and mobile devices. It uses [Bitcore Wallet Service](https://github.com/Bitcoin-com/bitcore-wallet-service) (our fork of the [Bitpay Bitcore Wallet Service](https://github.com/bitpay/bitcore-wallet-service)) (BWS) for peer synchronization and network interfacing. The Bitcoin.com wallet is a secure bitcoin wallet platform for both desktop and mobile devices. It uses [Bitcore Wallet Service](https://github.com/Bitcoin-com/bitcore-wallet-service) (our fork of the [Bitpay Bitcore Wallet Service](https://github.com/bitpay/bitcore-wallet-service)) (BWS) for peer synchronization and network interfacing.

View file

@ -24,9 +24,9 @@
"windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c", "windowsAppId": "804636ee-b017-4cad-8719-e58ac97ffa5c",
"pushSenderId": "1036948132229", "pushSenderId": "1036948132229",
"description": "A Secure Bitcoin Wallet", "description": "A Secure Bitcoin Wallet",
"version": "5.0.2", "version": "5.1.3",
"fullVersion": "5.0-rc3", "fullVersion": "5.1-rc2",
"androidVersion": "500200", "androidVersion": "501003",
"_extraCSS": "", "_extraCSS": "",
"_enabledExtensions": { "_enabledExtensions": {
"coinbase": false, "coinbase": false,

View file

@ -517,7 +517,8 @@ angular.module('copayApp.controllers').controller('confirmController', function(
if (!lodash.isEmpty(warningMsg)) if (!lodash.isEmpty(warningMsg))
msg += '\n' + warningMsg; msg += '\n' + warningMsg;
popupService.showAlert(null, msg, function() {}); popupService.showAlert(null, msg, function() {});
}; };
$scope.onWalletSelect = function(wallet) { $scope.onWalletSelect = function(wallet) {

View file

@ -718,14 +718,23 @@ angular
if (tx.paypro) if (tx.paypro)
startExpirationTimer(tx.paypro.expires); startExpirationTimer(tx.paypro.expires);
updateTx(tx, vm.originWallet, { popupService.showConfirm(null, 'Do you want this transaction to be sent without a fee?', 'Yes', 'No', function(ok) {
dryRun: true if(ok){
}, function(err) { tx.feeRate = 0;
$timeout(function() { // tx.feeLevel = 'free';
$scope.$apply(); usingCustomFee = true;
}, 10); }
updateTx(tx, vm.originWallet, {
dryRun: true
}, function(err) {
$timeout(function() {
$scope.$apply();
}, 10);
});
});
});
// setWalletSelector(tx.coin, tx.network, tx.amount, function(err) { // setWalletSelector(tx.coin, tx.network, tx.amount, function(err) {
// if (err) { // if (err) {
@ -778,6 +787,7 @@ angular
msg += '\n' + warningMsg; msg += '\n' + warningMsg;
popupService.showAlert(null, msg, function() {}); popupService.showAlert(null, msg, function() {});
//popupService.showConfirm(null, msg, null, null, function() {});
}; };
function statusChangeHandler(processName, showName, isOn) { function statusChangeHandler(processName, showName, isOn) {
@ -855,7 +865,11 @@ angular
} }
var msg; var msg;
if (usingCustomFee) { // if (tx.feeLevel == 'free'){
// tx.feeRate = 0;
// }
// else
if (usingCustomFee) {
msg = gettextCatalog.getString('Custom'); msg = gettextCatalog.getString('Custom');
tx.feeLevelName = msg; tx.feeLevelName = msg;
} else if (usingMerchantFee) { } else if (usingMerchantFee) {
@ -865,8 +879,10 @@ angular
} else { } else {
tx.feeLevelName = feeService.feeOpts[tx.feeLevel]; tx.feeLevelName = feeService.feeOpts[tx.feeLevel];
tx.feeRate = feeRate; tx.feeRate = feeRate;
} }
getSendMaxInfo(lodash.clone(tx), wallet, function(err, sendMaxInfo) { getSendMaxInfo(lodash.clone(tx), wallet, function(err, sendMaxInfo) {
if (err) { if (err) {
ongoingProcess.set('calculatingFee', false); ongoingProcess.set('calculatingFee', false);

View file

@ -1,6 +1,6 @@
'use strict'; 'use strict';
angular.module('copayApp.controllers').controller('servicesController', function($scope, $ionicScrollDelegate, $timeout, servicesService, configService) { angular.module('copayApp.controllers').controller('servicesController', function(externalLinkService, $scope, $ionicScrollDelegate, $timeout, servicesService, configService) {
$scope.hide = false; $scope.hide = false;
configService.whenAvailable(function(config) { configService.whenAvailable(function(config) {
@ -20,4 +20,8 @@ angular.module('copayApp.controllers').controller('servicesController', function
}, 10); }, 10);
}; };
$scope.open = function(url) {
externalLinkService.open(url, false);
}
}); });

View file

@ -18,7 +18,7 @@ angular.module('copayApp.services').factory('configService', function(storageSer
}, },
bwscash: { bwscash: {
url: 'https://bwscash.bitcoin.com/bws/api' url: 'https://bws.freepages.dk/bws/api'
}, },
download: { download: {

View file

@ -12,6 +12,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou
normal: gettext('Normal'), normal: gettext('Normal'),
economy: gettext('Economy'), economy: gettext('Economy'),
superEconomy: gettext('Super Economy'), superEconomy: gettext('Super Economy'),
// free: gettext('No fee (works only for BCH)'),
custom: gettext('Custom') custom: gettext('Custom')
}; };
@ -31,6 +32,7 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou
root.getFeeRate = function(coin, network, feeLevel, cb) { root.getFeeRate = function(coin, network, feeLevel, cb) {
if (feeLevel == 'custom') return cb(); if (feeLevel == 'custom') return cb();
// if (feeLevel == 'free') return cb(null, 0);
network = network || 'livenet'; network = network || 'livenet';
@ -48,9 +50,9 @@ angular.module('copayApp.services').factory('feeService', function($log, $timeou
}) })
}); });
} }
var feeRate = feeLevelRate.feePerKb; var feeRate = feeLevelRate.feePerKb;
if (!fromCache) $log.debug('Dynamic fee: ' + feeLevel + '/' + network + ' ' + (feeLevelRate.feePerKb / 1000).toFixed() + ' SAT/B'); if (!fromCache) $log.debug('Dynamic fee: ' + feeLevel + '/' + network + ' ' + (feeLevelRate.feePerKb / 1000).toFixed() + ' SAT/B');
return cb(null, feeRate); return cb(null, feeRate);

View file

@ -5,7 +5,7 @@ angular.module('copayApp.services').factory('servicesService', function(configSe
name: 'shapeshift', name: 'shapeshift',
title: 'Shapeshift', title: 'Shapeshift',
icon: 'icon-shapeshift', icon: 'icon-shapeshift',
sref: 'tabs.shapeshift', href: 'https://shapeshift.io/'
}]; }];
root.register = function(serviceInfo) { root.register = function(serviceInfo) {

View file

@ -10083,7 +10083,7 @@ ion-view.deflash-blue:before, ion-view#view-amount:before, ion-view#view-confirm
.onboarding .button.button-white.button-standard, .onboarding .button.button-white.button-standard,
.onboarding .button.button-green.button-standard, .onboarding .button.button-green.button-standard,
.onboarding .button.button-assertive.button-standard, #shapeshift .button-shapeshift { .onboarding .button.button-assertive.button-standard, #shapeshift .button-shapeshift {
width: 85%; width: 90%;
max-width: 300px; max-width: 300px;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
@ -10195,6 +10195,7 @@ ion-view.deflash-blue:before, ion-view#view-amount:before, ion-view#view-confirm
.button { .button {
border-radius: 6px; } border-radius: 6px; }
.button.button-full { .button.button-full {
border-radius: 0;
display: block; } display: block; }
.button-green { .button-green {
border-color: #FFF; border-color: #FFF;
@ -10263,8 +10264,8 @@ ion-view.deflash-blue:before, ion-view#view-amount:before, ion-view#view-confirm
color: #FFFFFF; color: #FFFFFF;
text-decoration: none; } text-decoration: none; }
.button-white-outline.active, .button-white-outline.activated { .button-white-outline.active, .button-white-outline.activated {
border-color: #FFF; border-color: #FFFFFF;
background-color: #FAFAFA; } background-color: #FFFFFF; }
.button-white-outline.button-outline { .button-white-outline.button-outline {
border-color: #FFFFFF; border-color: #FFFFFF;
background: transparent; background: transparent;
@ -10632,7 +10633,7 @@ qrcode {
#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 { #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; } } 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 { #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; } font-size: 1.2em; }
@media (min-width: 375px) { @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 { #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; } } font-size: 1.3em; } }
@ -10659,7 +10660,8 @@ qrcode {
line-height: 1em; } line-height: 1em; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display { #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .primary-amount .primary-amount-display {
margin-right: 5px; margin-right: 5px;
word-break: break-all; } word-break: break-all;
width: 100%; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .alternative-amount { #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .alternative-amount {
color: #6F6F70; } color: #6F6F70; }
#view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .switch-currencies { #view-amount .scroll-content .send-amount .send-amount-tool .send-amount-tool-input .switch-currencies {
@ -10680,30 +10682,33 @@ qrcode {
justify-content: space-between; justify-content: space-between;
margin: 0 14px; } margin: 0 14px; }
#view-amount .scroll-content .send-amount-extras .available-funds { #view-amount .scroll-content .send-amount-extras .available-funds {
color: #6F6F70; } color: #6F6F70;
text-align: left; }
#view-amount .scroll-content .send-amount-extras .change-currency {
text-align: right; }
#view-amount .scroll-content .send-amount-extras .warning { #view-amount .scroll-content .send-amount-extras .warning {
color: #b7664d; } color: #b7664d; }
#view-amount .scroll-content .send-amount-extras .extra, #view-amount .scroll-content .send-amount-extras .extra {
#view-amount .scroll-content .send-amount-extras button.extra { flex: 1;
/*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; } line-height: normal; }
#view-amount .scroll-content .send-amount-extras .button span { #view-amount .scroll-content .send-amount-extras .extra .button {
display: flex; background: none;
align-items: center; border: none;
justify-content: center; } border-radius: 0;
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 .extra .button .icon:before {
font-size: 14px;
line-height: normal; }
#view-amount .scroll-content .send-amount-extras .extra .button span {
display: flex;
align-items: center;
justify-content: center; }
#view-amount .scroll-content .button.no-margin { #view-amount .scroll-content .button.no-margin {
margin: 0; } margin: 0; }
#view-amount .scroll-content .notification-warning { #view-amount .scroll-content .notification-warning {
@ -10939,14 +10944,14 @@ qrcode {
#tab-home .buttons .button { #tab-home .buttons .button {
border: 2px solid; border: 2px solid;
border-radius: 47px; border-radius: 47px;
padding: 0 15px 0 15px; padding: 8px 2px 8px 2px;
text-align: center; text-align: center;
width: 100%; width: 100%;
max-width: 300px; max-width: 300px;
font-size: 19px; font-size: 19px;
font-weight: bolder; font-weight: bolder;
min-height: auto; min-height: 0;
line-height: 36px; } line-height: 19px; }
#tab-home .wallet-coin-logo { #tab-home .wallet-coin-logo {
vertical-align: middle; vertical-align: middle;
@ -11013,6 +11018,10 @@ qrcode {
#tab-home .release .title { #tab-home .release .title {
font-weight: 700; font-weight: 700;
color: #444; } color: #444; }
#tab-home .release .release-notes {
white-space: pre;
white-space: pre-line;
text-align: left; }
#tab-home .release .button { #tab-home .release .button {
width: 100%; width: 100%;
border: none; } border: none; }
@ -11025,6 +11034,14 @@ qrcode {
#tab-home .badge { #tab-home .badge {
top: 11px; } top: 11px; }
.popup-update .popup-buttons {
display: block; }
.popup-update .popup-buttons .button {
display: block;
min-width: 100% !important;
margin-top: 4px; }
#tab-receive .button-share { #tab-receive .button-share {
color: #fff; color: #fff;
box-shadow: none; box-shadow: none;
@ -11101,6 +11118,8 @@ qrcode {
#tab-receive .payment-received-container { #tab-receive .payment-received-container {
margin: 0 20px; } margin: 0 20px; }
#tab-receive .payment-received-container svg {
max-height: 400px; }
#tab-receive .payment-received-container .payment-received-amount { #tab-receive .payment-received-container .payment-received-amount {
font-size: 1.8em; font-size: 1.8em;
display: block; display: block;
@ -11207,7 +11226,7 @@ qrcode {
margin: auto; margin: auto;
margin-top: 18px; } margin-top: 18px; }
#tab-send .send-wrapper .buttons .button { #tab-send .send-wrapper .buttons .button {
height: 60px; min-height: 65px;
line-height: 16px; line-height: 16px;
margin-right: 0px; margin-right: 0px;
width: 95%; width: 95%;
@ -11284,7 +11303,9 @@ qrcode {
margin-top: 18px; } margin-top: 18px; }
#tab-send .sendTip .buttons .button { #tab-send .sendTip .buttons .button {
font-weight: bold; font-weight: bold;
font-size: 19px; } font-size: 19px;
line-height: 26px;
padding: 8px 6px; }
#tab-send .sendTip .button-first-contact img { #tab-send .sendTip .button-first-contact img {
height: 19px; height: 19px;
width: 19px; width: 19px;
@ -11920,6 +11941,13 @@ qrcode {
#walletDetails .bp-content.status-bar { #walletDetails .bp-content.status-bar {
margin-top: 20px; margin-top: 20px;
margin-top: env(safe-area-inset-top); } margin-top: env(safe-area-inset-top); }
#walletDetails .bp-content.collapse ion-content {
margin-top: 40px; }
#walletDetails .bp-content.collapse .amount__scale, #walletDetails .bp-content.collapse .amount__error {
-webkit-transform: scale3d(0.5, 0.5, 0.5) translateY(0px);
transform: scale3d(0.5, 0.5, 0.5) translateY(0px); }
#walletDetails .bp-content.collapse .amount-alternative, #walletDetails .bp-content.collapse .send-receive-buttons, #walletDetails .bp-content.collapse .wallet-details-wallet-info {
opacity: 0; }
#walletDetails .bar-header { #walletDetails .bar-header {
border: 0; border: 0;
background: #eeb640; } background: #eeb640; }
@ -11932,9 +11960,12 @@ qrcode {
#walletDetails ion-content { #walletDetails ion-content {
padding-top: 0; padding-top: 0;
top: 0; top: 0;
transition: all 0.25s ease-in-out;
margin-top: 185px;
margin-bottom: 16px; } margin-bottom: 16px; }
#walletDetails ion-content.collapsible { @media only screen and (max-height: 500px) {
margin-top: 230px; } #walletDetails ion-content {
margin-top: 165px; } }
#walletDetails ion-content .scroll { #walletDetails ion-content .scroll {
background: #f8f8f9; background: #f8f8f9;
min-height: 300px; } min-height: 300px; }
@ -11965,38 +11996,45 @@ qrcode {
justify-content: space-evenly; justify-content: space-evenly;
width: 100%; width: 100%;
position: absolute; position: absolute;
bottom: 20px; } bottom: 20px;
transition: all 0.25s ease-in-out; }
#walletDetails .amount-wrapper .send-receive-buttons > .col { #walletDetails .amount-wrapper .send-receive-buttons > .col {
padding: 5px 10px; padding: 5px 10px;
margin-bottom: 0; } margin-bottom: 0; }
#walletDetails .amount-wrapper .send-receive-buttons .button { #walletDetails .amount-wrapper .send-receive-buttons .button {
border: 2px solid; border: 2px solid;
border-radius: 47px; border-radius: 47px;
padding: 0 15px 0 15px; padding: 6px 2px 6px 2px;
text-align: center; text-align: center;
width: 100%; width: 100%;
max-width: 300px; max-width: 300px;
font-size: 19px; font-size: 19px;
font-weight: bolder; font-weight: bolder;
min-height: auto; min-height: 0;
line-height: 36px; } line-height: 19px; }
#walletDetails .amount { #walletDetails .amount {
width: 100%;
text-align: center;
color: #fff;
height: 230px;
padding-top: 40px;
display: block;
align-items: center; align-items: center;
justify-content: center; } color: #fff;
display: block;
height: 230px;
justify-content: center;
padding-top: 40px;
text-align: center;
transition: all 0.25s ease-in-out;
width: 100%; }
@media only screen and (max-height: 500px) {
#walletDetails .amount {
height: 210px; } }
#walletDetails .amount__balance { #walletDetails .amount__balance {
-webkit-transform: scale3d(1, 1, 1) translateY(45px); -webkit-transform: scale3d(1, 1, 1) translateY(45px);
transform: scale3d(1, 1, 1) translateY(45px); } transform: scale3d(1, 1, 1) translateY(45px);
transition: all 0.25s ease-in-out; }
#walletDetails .amount__updating { #walletDetails .amount__updating {
z-index: 999; z-index: 999;
margin-top: -2.1rem; } margin-top: -2.1rem; }
#walletDetails .amount-alternative { #walletDetails .amount-alternative {
line-height: 36px; } line-height: 36px;
transition: all 0.25s ease-in-out; }
#walletDetails .amount__button-balance { #walletDetails .amount__button-balance {
background-color: transparent; background-color: transparent;
border: 1px solid rgba(255, 255, 255, 0.25); border: 1px solid rgba(255, 255, 255, 0.25);
@ -12006,7 +12044,8 @@ qrcode {
vertical-align: middle; } vertical-align: middle; }
#walletDetails .amount__error { #walletDetails .amount__error {
font-size: 14px; font-size: 14px;
padding: 35px 20px; } padding: 35px 20px;
opacity: 1; }
#walletDetails .no-alternative { #walletDetails .no-alternative {
padding-top: 45px; } padding-top: 45px; }
#walletDetails .item.item-footer { #walletDetails .item.item-footer {
@ -12071,7 +12110,9 @@ a.item {
font-size: 0.9em; } font-size: 0.9em; }
.loading-wallet svg { .loading-wallet svg {
margin-top: 0; } margin-top: 0;
width: 16px;
height: 16px; }
#advanced-settings .list .item:before { #advanced-settings .list .item:before {
display: block; display: block;
@ -12125,7 +12166,9 @@ a.item {
margin-top: 18px; } margin-top: 18px; }
#shapeshift .empty-case .buttons .button { #shapeshift .empty-case .buttons .button {
font-weight: bold; font-weight: bold;
font-size: 19px; } font-size: 19px;
line-height: 26px;
padding: 8px 6px; }
#shapeshift .empty-case .button-first-contact img { #shapeshift .empty-case .button-first-contact img {
height: 19px; height: 19px;
width: 19px; width: 19px;
@ -13812,6 +13855,7 @@ click-to-accept {
height: 92px; height: 92px;
width: 100%; } width: 100%; }
click-to-accept .click-to-accept__button.button.button-primary.button-standard { click-to-accept .click-to-accept__button.button.button-primary.button-standard {
border-radius: 0;
height: 100%; height: 100%;
max-width: 9999px; max-width: 9999px;
width: 100%; } width: 100%; }
@ -13918,6 +13962,8 @@ slide-to-accept {
height: 92px; height: 92px;
width: 100%; width: 100%;
background: #494949; } background: #494949; }
slide-to-accept .slide .button {
border-radius: 0; }
slide-to-accept .slide__listener { slide-to-accept .slide__listener {
height: 100%; height: 100%;
width: 100%; width: 100%;
@ -15349,20 +15395,25 @@ log-options #check-bar .checkbox-icon {
#cash-scan a { #cash-scan a {
cursor: pointer; } cursor: pointer; }
#view-review { #view-review slide-to-accept, #view-review slide-to-accept-success {
background-color: #494949; } margin-bottom: constant(safe-area-inset-bottom);
#view-review slide-to-accept, #view-review slide-to-accept-success { /* iOS 11.0 */
margin-bottom: constant(safe-area-inset-bottom); margin-bottom: env(safe-area-inset-bottom);
/* iOS 11.0 */ /* iOS 11.2 */ }
margin-bottom: env(safe-area-inset-bottom);
/* iOS 11.2 */ } #view-review .fee-summary {
#view-review .fee-summary { bottom: 92px;
position: absolute; bottom: calc(92px + constant(safe-area-inset-bottom));
bottom: 92px; } /* iOS 11.0 */
#view-review .shapeshift-banner, #view-review .bitpay-banner, #view-review .egifter-banner { bottom: calc(92px + env(safe-area-inset-bottom));
box-shadow: none; } /* iOS 11.2 */
#view-review .warning { position: absolute; }
color: #b7664d; }
#view-review .shapeshift-banner, #view-review .bitpay-banner, #view-review .egifter-banner {
box-shadow: none; }
#view-review .warning {
color: #b7664d; }
.gravatar { .gravatar {
border-radius: 3px; border-radius: 3px;
@ -15395,6 +15446,7 @@ log-options #check-bar .checkbox-icon {
left: 13px; left: 13px;
top: 50%; top: 50%;
padding: 0; padding: 0;
-webkit-transform: translate(0, -50%);
transform: translate(0, -50%); } transform: translate(0, -50%); }
.item .item-content.item-content-compact { .item .item-content.item-content-compact {
@ -15463,8 +15515,8 @@ ion-content.padded-bottom-cta-with-summary {
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; } text-overflow: ellipsis; }
.address-frame.expanded { .address-frame.expanded {
white-space: pre-wrap; white-space: normal;
word-break: break-all; } text-overflow: clip; }
.address-frame .prefix { .address-frame .prefix {
color: #000000; } color: #000000; }
.address-frame .mid { .address-frame .mid {
@ -15507,13 +15559,13 @@ ion-content.padded-bottom-cta-with-summary {
transform: scale(1, 1); } transform: scale(1, 1); }
.fee-summary { .fee-summary {
position: relative; background-color: #F2F2F2;
box-sizing: border-box;
display: flex; display: flex;
flex-direction: column; flex-direction: column;
width: 100%;
padding: 5px 12px 15px; padding: 5px 12px 15px;
box-sizing: border-box; position: relative;
background-color: #F2F2F2; } width: 100%; }
.fee-summary:before { .fee-summary:before {
content: ''; content: '';
position: absolute; position: absolute;
@ -15523,16 +15575,16 @@ ion-content.padded-bottom-cta-with-summary {
height: 15px; height: 15px;
background: linear-gradient(to bottom, rgba(242, 242, 242, 0) 0%, #f2f2f2 100%); } background: linear-gradient(to bottom, rgba(242, 242, 242, 0) 0%, #f2f2f2 100%); }
.fee-summary .amount { .fee-summary .amount {
display: flex;
flex-direction: row;
justify-content: space-between;
width: 100%; } width: 100%; }
.fee-summary .amount .fee-fiat.positive { .fee-summary .amount .fee-fiat {
color: #70955F; } display: inline; }
.fee-summary .amount .fee-fiat.negative { .fee-summary .amount .fee-fiat.positive {
color: #C24633; } color: #70955F; }
.fee-summary .amount .fee-fiat.negative {
color: #C24633; }
.fee-summary .amount .fee-crypto { .fee-summary .amount .fee-crypto {
color: #A7A7A7; } color: #A7A7A7;
float: right; }
.formatted-amount { .formatted-amount {
display: inline-block; } display: inline-block; }
@ -15557,6 +15609,9 @@ ion-content.padded-bottom-cta-with-summary {
margin-left: 5px; margin-left: 5px;
text-transform: uppercase; } text-transform: uppercase; }
.wallet-balance-directive {
display: inline-block; }
/* This is for rules that don't yet have a home. /* This is for rules that don't yet have a home.
* Our goal is to delete this file. Search the regex: /class=".*CLASS.*?"/ * Our goal is to delete this file. Search the regex: /class=".*CLASS.*?"/
*/ */

View file

@ -6,7 +6,14 @@
</div> </div>
<div ng-show="!hide"> <div ng-show="!hide">
<div ng-repeat="service in services track by $index"> <div ng-repeat="service in services track by $index">
<a ui-sref="{{service.sref}}" id="home_{{service.name}}" title="{{service.title || service.name}}" class="track_link_click_out item item-sub item-icon-left item-big-icon-left item-icon-right next-step"> <a ng-if="service.sref" ui-sref="{{service.sref}}" id="home_{{service.name}}" title="{{service.title || service.name}}" class="track_link_click_out item item-sub item-icon-left item-big-icon-left item-icon-right next-step">
<i class="icon big-icon-svg theme-circle theme-circle-services">
<div class="bg {{service.icon}}"></div>
</i>
<span>{{service.title || service.name}}</span>
<i class="icon bp-arrow-right"></i>
</a>
<a ng-if="!service.sref" ng-click="open('{{service.href}}')" id="home_{{service.name}}" title="{{service.title || service.name}}" class="track_link_click_out item item-sub item-icon-left item-big-icon-left item-icon-right next-step">
<i class="icon big-icon-svg theme-circle theme-circle-services"> <i class="icon big-icon-svg theme-circle theme-circle-services">
<div class="bg {{service.icon}}"></div> <div class="bg {{service.icon}}"></div>
</i> </i>