aboutsummaryrefslogtreecommitdiffstats
path: root/app
diff options
context:
space:
mode:
Diffstat (limited to 'app')
-rw-r--r--app/scripts/lib/buy-eth-url.js52
1 files changed, 29 insertions, 23 deletions
diff --git a/app/scripts/lib/buy-eth-url.js b/app/scripts/lib/buy-eth-url.js
index d434473ee..46710a16f 100644
--- a/app/scripts/lib/buy-eth-url.js
+++ b/app/scripts/lib/buy-eth-url.js
@@ -12,28 +12,34 @@ module.exports = getBuyEthUrl
*
*/
function getBuyEthUrl({ network, amount, address, service }) {
- let url
- if (typeof network !== 'undefined') {
- switch (network) {
- case '1':
- url = `https://buy.coinbase.com/?code=9ec56d01-7e81-5017-930c-513daa27bb6a&amount=${amount}&address=${address}&crypto_currency=ETH`
- break
- case '3':
- url = 'https://faucet.metamask.io/'
- break
- case '4':
- url = 'https://www.rinkeby.io/'
- break
- case '42':
- url = 'https://github.com/kovan-testnet/faucet'
- break
- }
- } else {
- switch (service) {
- case 'coinswitch':
- url = `https://metamask.coinswitch.co/?address=${address}&to=eth`
- break
- }
+ // default service by network if not specified
+ if (!service) service = getDefaultServiceForNetwork(network)
+
+ switch (service) {
+ case 'coinswitch':
+ return `https://metamask.coinswitch.co/?address=${address}&to=eth`
+ case 'coinbase':
+ return `https://buy.coinbase.com/?code=9ec56d01-7e81-5017-930c-513daa27bb6a&amount=${amount}&address=${address}&crypto_currency=ETH`
+ case 'metamask-faucet':
+ return 'https://faucet.metamask.io/'
+ case 'rinkeby-faucet':
+ return 'https://www.rinkeby.io/'
+ case 'kovan-faucet':
+ return 'https://github.com/kovan-testnet/faucet'
+ }
+ throw new Error(`Unknown cryptocurrency exchange or faucet: "${service}"`)
+}
+
+function getDefaultServiceForNetwork (networkId) {
+ switch (network) {
+ case '1':
+ return 'coinbase'
+ case '3':
+ return 'metamask-faucet'
+ case '4':
+ return 'rinkeby-faucet'
+ case '42':
+ return 'kovan-faucet'
}
- return url
+ throw new Error(`No default cryptocurrency exchange or faucet for networkId: "${networkId}"`)
}