diff --git a/src/js/controllers/buyCoinbase.js b/src/js/controllers/buyCoinbase.js deleted file mode 100644 index e48dea1c7..000000000 --- a/src/js/controllers/buyCoinbase.js +++ /dev/null @@ -1,175 +0,0 @@ -'use strict'; - -angular.module('copayApp.controllers').controller('buyCoinbaseController', - function($scope, $log, $ionicModal, $timeout, lodash, profileService, coinbaseService, addressService, ongoingProcess) { - var self = this; - - this.init = function(testnet) { - self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet'); - - var client = profileService.focusedClient; - if (client) { - $timeout(function() { - self.selectedWalletId = client.credentials.walletId; - self.selectedWalletName = client.credentials.walletName; - $scope.$apply(); - }, 100); - } - }; - - this.getPaymentMethods = function(token) { - coinbaseService.getPaymentMethods(token, function(err, p) { - if (err) { - self.error = err; - return; - } - self.paymentMethods = []; - lodash.each(p.data, function(pm) { - if (pm.allow_buy) { - self.paymentMethods.push(pm); - } - if (pm.allow_buy && pm.primary_buy) { - $scope.selectedPaymentMethod = pm; - } - }); - }); - }; - - this.getPrice = function(token) { - var currency = 'USD'; - coinbaseService.buyPrice(token, currency, function(err, b) { - if (err) return; - self.buyPrice = b.data || null; - }); - }; - - $scope.openWalletsModal = function(wallets) { - self.error = null; - - $scope.type = 'BUY'; - $scope.wallets = wallets; - $scope.noColor = true; - $scope.self = self; - - $ionicModal.fromTemplateUrl('views/modals/wallets.html', { - scope: $scope, - animation: 'slide-in-up' - }).then(function(modal) { - $scope.walletsModal = modal; - $scope.walletsModal.show(); - }); - - $scope.$on('walletSelected', function(ev, walletId) { - $timeout(function() { - var client = profileService.getClient(walletId); - self.selectedWalletId = walletId; - self.selectedWalletName = client.credentials.walletName; - $scope.$apply(); - }, 100); - $scope.walletsModal.hide(); - }); - }; - - this.buyRequest = function(token, account) { - self.error = null; - var accountId = account.id; - var amount = $scope.amount ? $scope.amount : $scope.fiat; - var currency = $scope.amount ? 'BTC' : 'USD'; - if (!amount) return; - var dataSrc = { - amount: amount, - currency: currency, - payment_method: $scope.selectedPaymentMethod.id || null - }; - ongoingProcess.set('Sending request...', true); - coinbaseService.buyRequest(token, accountId, dataSrc, function(err, data) { - ongoingProcess.set('Sending request...', false); - if (err) { - self.error = err; - return; - } - self.buyInfo = data.data; - }); - }; - - this.confirmBuy = function(token, account, buy) { - self.error = null; - var accountId = account.id; - var buyId = buy.id; - ongoingProcess.set('Buying Bitcoin...', true); - coinbaseService.buyCommit(token, accountId, buyId, function(err, b) { - ongoingProcess.set('Buying Bitcoin...', false); - if (err) { - self.error = err; - return; - } else { - var tx = b.data.transaction; - if (!tx) return; - - ongoingProcess.set('Fetching transaction...', true); - coinbaseService.getTransaction(token, accountId, tx.id, function(err, updatedTx) { - ongoingProcess.set('Fetching transaction...', false); - if (err) $log.debug(err); - addressService.getAddress(self.selectedWalletId, false, function(err, addr) { - if (err) { - self.error = { - errors: [{ - message: 'Could not create address' - }] - }; - return; - } - updatedTx.data['toAddr'] = addr; - coinbaseService.savePendingTransaction(updatedTx.data, {}, function(err) { - if (err) $log.debug(err); - if (updatedTx.data.status == 'completed') { - self.sendToCopay(token, account, updatedTx.data); - } else { - self.success = updatedTx.data; - $timeout(function() { - $scope.$emit('Local/CoinbaseTx'); - }, 1000); - } - }); - }); - }); - } - }); - }; - - this.sendToCopay = function(token, account, tx) { - self.error = null; - var accountId = account.id; - - ongoingProcess.set('Sending funds to Copay...', true); - var data = { - to: tx.toAddr, - amount: tx.amount.amount, - currency: tx.amount.currency, - description: 'Copay Wallet: ' + self.selectedWalletName - }; - coinbaseService.sendTo(token, accountId, data, function(err, res) { - ongoingProcess.set('Sending funds to Copay...', false); - if (err) { - self.error = err; - } else { - self.receiveInfo = res.data; - if (!res.data.id) return; - coinbaseService.getTransaction(token, accountId, res.data.id, function(err, sendTx) { - coinbaseService.savePendingTransaction(tx, { - remove: true - }, function(err) { - coinbaseService.savePendingTransaction(sendTx.data, {}, function(err) { - $timeout(function() { - $scope.$emit('Local/CoinbaseTx'); - }, 1000); - }); - }); - }); - } - - }); - }; - - - }); diff --git a/src/js/controllers/coinbaseUri.js b/src/js/controllers/coinbaseUri.js deleted file mode 100644 index b92c1b355..000000000 --- a/src/js/controllers/coinbaseUri.js +++ /dev/null @@ -1,44 +0,0 @@ -'use strict'; -angular.module('copayApp.controllers').controller('coinbaseUriController', - function($scope, $stateParams, $timeout, profileService, configService, coinbaseService, storageService, $state, ongoingProcess) { - - this.submitOauthCode = function(code) { - var self = this; - var coinbaseTestnet = configService.getSync().coinbase.testnet; - var network = coinbaseTestnet ? 'testnet' : 'livenet'; - ongoingProcess.set('connectingCoinbase', true); - this.error = null; - $timeout(function() { - coinbaseService.getToken(code, function(err, data) { - ongoingProcess.set('connectingCoinbase', false); - if (err) { - self.error = err; - $timeout(function() { - $scope.$apply(); - }, 100); - } else if (data && data.access_token && data.refresh_token) { - storageService.setCoinbaseToken(network, data.access_token, function() { - storageService.setCoinbaseRefreshToken(network, data.refresh_token, function() { - $scope.$emit('Local/CoinbaseUpdated', data.access_token); - $timeout(function() { - $state.go('coinbase'); - $scope.$apply(); - }, 100); - }); - }); - } - }); - }, 100); - }; - - this.checkCode = function() { - if ($stateParams.url) { - var match = $stateParams.url.match(/code=(.+)&/); - if (match && match[1]) { - this.code = match[1]; - return this.submitOauthCode(this.code); - } - } - $log.error('Bad state: ' + JSON.stringify($stateParams)); - } - }); diff --git a/src/js/controllers/sellCoinbase.js b/src/js/controllers/sellCoinbase.js deleted file mode 100644 index 6ce9b28b3..000000000 --- a/src/js/controllers/sellCoinbase.js +++ /dev/null @@ -1,261 +0,0 @@ -'use strict'; - -angular.module('copayApp.controllers').controller('sellCoinbaseController', - function($rootScope, $scope, $log, $timeout, $ionicModal, lodash, profileService, coinbaseService, configService, walletService, fingerprintService, ongoingProcess, go) { - - var self = this; - var client; - - $scope.priceSensitivity = [ - { - value: 0.5, - name: '0.5%' - }, - { - value: 1, - name: '1%' - }, - { - value: 2, - name: '2%' - }, - { - value: 5, - name: '5%' - }, - { - value: 10, - name: '10%' - } - ]; - $scope.selectedPriceSensitivity = $scope.priceSensitivity[1]; - - this.init = function(testnet) { - self.allWallets = profileService.getWallets(testnet ? 'testnet' : 'livenet', 1); - - client = profileService.focusedClient; - if (client && client.credentials.m == 1) { - $timeout(function() { - self.selectedWalletId = client.credentials.walletId; - self.selectedWalletName = client.credentials.walletName; - $scope.$apply(); - }, 100); - } - }; - - this.getPaymentMethods = function(token) { - coinbaseService.getPaymentMethods(token, function(err, p) { - if (err) { - self.error = err; - return; - } - self.paymentMethods = []; - lodash.each(p.data, function(pm) { - if (pm.allow_sell) { - self.paymentMethods.push(pm); - } - if (pm.allow_sell && pm.primary_sell) { - $scope.selectedPaymentMethod = pm; - } - }); - }); - }; - - this.getPrice = function(token) { - var currency = 'USD'; - coinbaseService.sellPrice(token, currency, function(err, s) { - if (err) return; - self.sellPrice = s.data || null; - }); - }; - - $scope.openWalletsModal = function(wallets) { - self.error = null; - - $scope.type = 'SELL'; - $scope.wallets = wallets; - $scope.noColor = true; - $scope.self = self; - - $ionicModal.fromTemplateUrl('views/modals/wallets.html', { - scope: $scope, - animation: 'slide-in-up' - }).then(function(modal) { - $scope.walletsModal = modal; - $scope.walletsModal.show(); - }); - - $scope.$on('walletSelected', function(ev, walletId) { - $timeout(function() { - client = profileService.getClient(walletId); - self.selectedWalletId = walletId; - self.selectedWalletName = client.credentials.walletName; - $scope.$apply(); - }, 100); - $scope.walletsModal.hide(); - }); - }; - - this.depositFunds = function(token, account) { - self.error = null; - if ($scope.amount) { - this.createTx(token, account, $scope.amount) - } else if ($scope.fiat) { - var btcValue = ($scope.fiat / self.sellPrice.amount).toFixed(8); - this.createTx(token, account, btcValue); - } - }; - - this.sellRequest = function(token, account, ctx) { - self.error = null; - if (!ctx.amount) return; - var accountId = account.id; - var data = ctx.amount; - data['payment_method'] = $scope.selectedPaymentMethod.id || null; - ongoingProcess.set('Sending request...', true); - coinbaseService.sellRequest(token, accountId, data, function(err, sell) { - ongoingProcess.set('Sending request...', false); - if (err) { - self.error = err; - return; - } - self.sellInfo = sell.data; - }); - }; - - this.confirmSell = function(token, account, sell) { - self.error = null; - var accountId = account.id; - var sellId = sell.id; - ongoingProcess.set('Selling Bitcoin...', true); - coinbaseService.sellCommit(token, accountId, sellId, function(err, data) { - ongoingProcess.set('Selling Bitcoin...', false); - if (err) { - self.error = err; - return; - } - self.success = data.data; - $scope.$emit('Local/CoinbaseTx'); - }); - }; - - this.createTx = function(token, account, amount) { - self.error = null; - - if (!client) { - self.error = 'No wallet selected'; - return; - } - - var accountId = account.id; - var dataSrc = { - name: 'Received from Copay: ' + self.selectedWalletName - }; - var outputs = []; - var config = configService.getSync(); - var configWallet = config.wallet; - var walletSettings = configWallet.settings; - - - ongoingProcess.set('Creating Transaction...', true); - $timeout(function() { - - coinbaseService.createAddress(token, accountId, dataSrc, function(err, data) { - if (err) { - ongoingProcess.set('Creating Transaction...', false); - self.error = err; - return; - } - - var address, comment; - - address = data.data.address; - amount = parseInt((amount * 100000000).toFixed(0)); - comment = 'Send funds to Coinbase Account: ' + account.name; - - outputs.push({ - 'toAddress': address, - 'amount': amount, - 'message': comment - }); - - var txp = { - toAddress: address, - amount: amount, - outputs: outputs, - message: comment, - payProUrl: null, - excludeUnconfirmedUtxos: configWallet.spendUnconfirmed ? false : true, - feeLevel: walletSettings.feeLevel || 'normal' - }; - - walletService.createTx(client, txp, function(err, createdTxp) { - if (err) { - $log.debug(err); - ongoingProcess.set('Creating Transaction...', false); - self.error = { - errors: [{ - message: 'Could not create transaction: ' + err.message - }] - }; - $scope.$apply(); - return; - } - ongoingProcess.set('Creating Transaction...', false); - $scope.$emit('Local/NeedsConfirmation', createdTxp, function(accept) { - if (accept) { - self.confirmTx(createdTxp, function(err, tx) { - ongoingProcess.clear(); - if (err) { - self.error = { - errors: [{ - message: 'Could not create transaction: ' + err.message - }] - }; - return; - } - ongoingProcess.set('Checking Transaction...', false); - coinbaseService.getTransactions(token, accountId, function(err, ctxs) { - if (err) { - $log.debug(err); - return; - } - lodash.each(ctxs.data, function(ctx) { - if (ctx.type == 'send' && ctx.from) { - ongoingProcess.clear(); - if (ctx.status == 'completed') { - self.sellRequest(token, account, ctx); - } else { - // Save to localstorage - ctx['price_sensitivity'] = $scope.selectedPriceSensitivity; - ctx['sell_price_amount'] = self.sellPrice ? self.sellPrice.amount : ''; - ctx['sell_price_currency'] = self.sellPrice ? self.sellPrice.currency : 'USD'; - ctx['description'] = 'Copay Wallet: ' + client.credentials.walletName; - coinbaseService.savePendingTransaction(ctx, null, function(err) { - if (err) $log.debug(err); - self.sendInfo = ctx; - $timeout(function() { - $scope.$emit('Local/CoinbaseTx'); - }, 1000); - }); - } - return false; - } - }); - }); - }); - } else { - go.path('coinbase'); - } - }); - }); - }); - }, 100); - }; - - this.confirmTx = function(txp, cb) { - - // TODO see walletService createAndPublish - }; - - }); diff --git a/www/views/buyCoinbase.html b/www/views/buyCoinbase.html deleted file mode 100644 index 62684c5a1..000000000 --- a/www/views/buyCoinbase.html +++ /dev/null @@ -1,169 +0,0 @@ -
- - -- Buy confirmed. Funds will be send soon to your selected Copay Wallet -
- -- Bitcoin purchase completed. Coinbase has queued the transfer to your selected Copay wallet. -
- - -
- - The transaction is not yet confirmed, and will show as "Processing" in your Activity. The bitcoin sale will be completed automatically once it is confirmed by Coinbase. -
- -- A transfer has been initiated to your bank account and should arrive at {{sell.success.payout_at | amCalendar}}. -
- - -