From ef6a572b8784fa1ffc3fb0695c8b613c70ac4913 Mon Sep 17 00:00:00 2001 From: Kadir Sekha Date: Thu, 22 Mar 2018 15:44:21 +0900 Subject: [PATCH] added code, icons and css for sign and verify message --- app-template/bitcoincom/css/bitcoin.com.css | 10 +++ src/js/controllers/signMessageController.js | 27 ++++++++ src/js/controllers/tab-home.js | 2 +- src/js/controllers/verifyMessageController.js | 4 ++ src/js/routes.js | 20 ++++++ src/js/services/signVerifyMessageService.js | 37 +++++++++++ www/css/bitcoin.com.css | 10 +++ www/img/icon-sign-message.svg | 61 +++++++++++++++++++ www/img/icon-verify-message.svg | 28 +++++++++ www/views/signMessage.html | 55 +++++++++++++++++ www/views/verifyMessage.html | 18 ++++++ 11 files changed, 271 insertions(+), 1 deletion(-) create mode 100644 src/js/controllers/signMessageController.js create mode 100644 src/js/controllers/verifyMessageController.js create mode 100644 src/js/services/signVerifyMessageService.js create mode 100644 www/img/icon-sign-message.svg create mode 100644 www/img/icon-verify-message.svg create mode 100644 www/views/signMessage.html create mode 100644 www/views/verifyMessage.html diff --git a/app-template/bitcoincom/css/bitcoin.com.css b/app-template/bitcoincom/css/bitcoin.com.css index 50483fb77..e9b316761 100644 --- a/app-template/bitcoincom/css/bitcoin.com.css +++ b/app-template/bitcoincom/css/bitcoin.com.css @@ -242,6 +242,16 @@ div.onboarding-topic { background-image: url('../img/icon-twitter.svg'); } +.icon-sign-message { + background-color: #494949; + background-image: url('../img/icon-sign-message.svg'); +} + +.icon-verify-message { + background-color: #494949; + background-image: url('../img/icon-verify-message.svg'); +} + .icon-share { background-color: #494949; background-image: url('../img/icon-share.svg'); diff --git a/src/js/controllers/signMessageController.js b/src/js/controllers/signMessageController.js new file mode 100644 index 000000000..affff3b40 --- /dev/null +++ b/src/js/controllers/signMessageController.js @@ -0,0 +1,27 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('signMessageController', function($scope, $interval, profileService, walletService, popupService, lodash, $ionicNavBarDelegate, signVerifyMessageService) { + + $scope.message = {}; + $scope.message.value = ""; + + $scope.$on("$ionicView.beforeEnter", function(event, data) { + $scope.walletSelectorTitle = 'Wallets'; + $scope.wallets = profileService.getWallets(); + $scope.wallet = $scope.wallets[0]; + $scope.showWallets = false; + $scope.singleWallet = $scope.wallets.length > 1; + }); + + $scope.showWalletSelector = function() { + $scope.showWallets = true; + } + + $scope.onWalletSelect = function(wallet) { + $scope.wallet = wallet; + } + + $scope.signMessage = function() { + $scope.signedMessage = signVerifyMessageService.signMessage($scope.wallet, $scope.message.value); + } +}); diff --git a/src/js/controllers/tab-home.js b/src/js/controllers/tab-home.js index 231aa2375..83e7ecde7 100644 --- a/src/js/controllers/tab-home.js +++ b/src/js/controllers/tab-home.js @@ -1,7 +1,7 @@ 'use strict'; angular.module('copayApp.controllers').controller('tabHomeController', - function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, storageService, txpModalService, appConfigService, startupService, addressbookService, feedbackService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, bitcoincomService, pricechartService, firebaseEventsService, servicesService, shapeshiftService, $ionicNavBarDelegate) { + function($rootScope, $timeout, $scope, $state, $stateParams, $ionicModal, $ionicScrollDelegate, $window, gettextCatalog, lodash, popupService, ongoingProcess, externalLinkService, latestReleaseService, profileService, walletService, configService, $log, platformInfo, storageService, txpModalService, appConfigService, startupService, addressbookService, feedbackService, bwcError, nextStepsService, buyAndSellService, homeIntegrationsService, bitpayCardService, pushNotificationsService, timeService, bitcoincomService, pricechartService, firebaseEventsService, servicesService, shapeshiftService, $ionicNavBarDelegate, signVerifyMessageService) { var wallet; var listeners = []; var notifications = []; diff --git a/src/js/controllers/verifyMessageController.js b/src/js/controllers/verifyMessageController.js new file mode 100644 index 000000000..e71f7086c --- /dev/null +++ b/src/js/controllers/verifyMessageController.js @@ -0,0 +1,4 @@ +'use strict'; + +angular.module('copayApp.controllers').controller('verifyMessageController', function($scope, $interval, profileService, walletService, popupService, lodash, $ionicNavBarDelegate, signVerifyMessageService) { +}); diff --git a/src/js/routes.js b/src/js/routes.js index 66d3894b5..3d3c415aa 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -1016,6 +1016,26 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }) + /* Message Signing and Verification */ + .state('tabs.signMessage', { + url: '/signMessage', + views: { + 'tab-home@tabs': { + controller: 'signMessageController', + templateUrl: 'views/signMessage.html' + } + } + }) + .state('tabs.verifyMessage', { + url: '/verifyMessage', + views: { + 'tab-home@tabs': { + controller: 'verifyMessageController', + templateUrl: 'views/verifyMessage.html' + } + } + }) + /* * * Mercado Libre Gift Card diff --git a/src/js/services/signVerifyMessageService.js b/src/js/services/signVerifyMessageService.js new file mode 100644 index 000000000..01419a804 --- /dev/null +++ b/src/js/services/signVerifyMessageService.js @@ -0,0 +1,37 @@ +'use strict'; +angular.module('copayApp.services').factory('signVerifyMessageService', function($http, $log, lodash, moment, storageService, configService, platformInfo, servicesService) { + var root = {}; + var credentials = {}; + + var signServicesItem = { + name: 'signMessage', + title: 'Sign Message', + icon: 'icon-sign-message', + sref: 'tabs.signMessage', + }; + + /*var verifyServicesItem = { + name: 'verifyMessage', + title: 'Verify Message', + icon: 'icon-verify-message', + sref: 'tabs.verifyMessage', + };*/ + + var register = function() { + servicesService.register(signServicesItem); + //servicesService.register(verifyServicesItem); + }; + + root.signMessage = function(wallet, message) { + var privKey = wallet.credentials.walletPrivKey; + var coin = wallet.coin; + return wallet.signMessage(message, privKey, coin); + } + + root.verifyMessage = function(message, signature, pubKey, coin) { + return wallet.verifyMessage(message, signature, pubKey, coin); + } + + register(); + return root; +}); diff --git a/www/css/bitcoin.com.css b/www/css/bitcoin.com.css index bd5e08875..ce73da50e 100644 --- a/www/css/bitcoin.com.css +++ b/www/css/bitcoin.com.css @@ -284,6 +284,16 @@ div.slide-success__background.fill-screen { background-image: url('../img/icon-twitter.svg'); } +.icon-sign-message { + background-color: #494949; + background-image: url('../img/icon-sign-message.svg'); +} + +.icon-verify-message { + background-color: #494949; + background-image: url('../img/icon-verify-message.svg'); +} + .icon-share { background-color: #494949; background-image: url('../img/icon-share.svg'); diff --git a/www/img/icon-sign-message.svg b/www/img/icon-sign-message.svg new file mode 100644 index 000000000..c3d142153 --- /dev/null +++ b/www/img/icon-sign-message.svg @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/www/img/icon-verify-message.svg b/www/img/icon-verify-message.svg new file mode 100644 index 000000000..3aa58f125 --- /dev/null +++ b/www/img/icon-verify-message.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + diff --git a/www/views/signMessage.html b/www/views/signMessage.html new file mode 100644 index 000000000..ff30a5e1a --- /dev/null +++ b/www/views/signMessage.html @@ -0,0 +1,55 @@ + + + + {{'Sign Message'|translate}} + + + + + +
+
+ Wallet +
+ +
+ Message To Sign + +
+
+ Signed Message + {{signedMessage}} +
+
+ +
+
+
+ + +
diff --git a/www/views/verifyMessage.html b/www/views/verifyMessage.html new file mode 100644 index 000000000..63c7abe93 --- /dev/null +++ b/www/views/verifyMessage.html @@ -0,0 +1,18 @@ + + + + {{'Verify Message'|translate}} + + + + + + + + +