From 1e9b83a195de3d0301dbcb5769db4d35a7b0c6b7 Mon Sep 17 00:00:00 2001 From: Yemel Jardi Date: Tue, 19 Aug 2014 15:06:44 -0300 Subject: [PATCH] Remove old code --- js/directives.js | 27 +++++++++++++-------------- js/models/core/HDPath.js | 27 --------------------------- test/test.PayPro.js | 2 +- 3 files changed, 14 insertions(+), 42 deletions(-) diff --git a/js/directives.js b/js/directives.js index 620eeded5..8396cc4d1 100644 --- a/js/directives.js +++ b/js/directives.js @@ -10,26 +10,25 @@ angular.module('copayApp.directives') require: 'ngModel', link: function(scope, elem, attrs, ctrl) { var validator = function(value) { - var uri; + // Regular url if (/^https?:\/\//.test(value)) { - uri = { - merchant: value - }; - } else { - uri = copay.HDPath.parseBitcoinURI(value); - } - - // Regular Address - if (!uri || !uri.merchant) { - var a = new Address(value); - ctrl.$setValidity('validAddress', a.isValid() && a.network().name === config.networkName); + ctrl.$setValidity('validAddress', true); return value; } + // Bip21 uri + if (/^bitcoin:/.test(value)) { + var uri = new bitcore.BIP21(value); + var hasAddress = uri.address && uri.isValid() && uri.address.network().name === config.networkName; + ctrl.$setValidity('validAddress', uri.data.merchant || hasAddress); + return value; + } - ctrl.$setValidity('validAddress', true); - return uri.merchant; + // Regular Address + var a = new Address(value); + ctrl.$setValidity('validAddress', a.isValid() && a.network().name === config.networkName); + return value; }; ctrl.$parsers.unshift(validator); diff --git a/js/models/core/HDPath.js b/js/models/core/HDPath.js index 7b0be32e8..a2afdbc14 100644 --- a/js/models/core/HDPath.js +++ b/js/models/core/HDPath.js @@ -50,31 +50,4 @@ HDPath.MAX_NON_HARDENED = MAX_NON_HARDENED; HDPath.SHARED_INDEX = SHARED_INDEX; HDPath.ID_INDEX = ID_INDEX; -HDPath.parseBitcoinURI = function(uri) { - var ret = {}; - var data = decodeURIComponent(uri); - var splitDots = data.split(':'); - ret.protocol = splitDots[0]; - data = splitDots.slice(1).join(':'); - var splitQuestion = data.split('?'); - ret.address = splitQuestion[0]; - - if (splitQuestion.length > 1) { - var data = {}; - var search = splitQuestion[1]; - var parts = search.split('&'); - var part; - var i = 0; - for (; i < parts.length; i++) { - part = parts[i].split('='); - data[part[0]] = decodeURIComponent(part[1]); - } - ret.amount = parseFloat(data.amount); - ret.message = data.message; - ret.merchant = data.r; - } - - return ret; -}; - module.exports = HDPath; diff --git a/test/test.PayPro.js b/test/test.PayPro.js index af6107e35..4f22917e2 100644 --- a/test/test.PayPro.js +++ b/test/test.PayPro.js @@ -737,7 +737,7 @@ describe('PayPro (in Wallet) model', function() { // Replicates code in controllers/send.js: if (address.indexOf('bitcoin:') === 0) { - uri = copay.HDPath.parseBitcoinURI(address); + uri = new bitcore.BIP21(address).data; } else if (address.indexOf('Merchant: ') === 0) { uri = address.split(/\s+/)[1]; }