From 7129d7c0f3ce11839f8b8a576eb1e2c093fb96cc Mon Sep 17 00:00:00 2001 From: bitpshr Date: Thu, 12 Apr 2018 17:06:59 -0400 Subject: Require loglevel singleton in each module that uses it --- ui/app/actions.js | 1 + 1 file changed, 1 insertion(+) (limited to 'ui/app/actions.js') diff --git a/ui/app/actions.js b/ui/app/actions.js index 0748a5bea..780edcaba 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -3,6 +3,7 @@ const getBuyEthUrl = require('../../app/scripts/lib/buy-eth-url') const { getTokenAddressFromTokenObject } = require('./util') const ethUtil = require('ethereumjs-util') const { fetchLocale } = require('../i18n-helper') +const log = require('loglevel') var actions = { _setBackgroundConnection: _setBackgroundConnection, -- cgit From a350e80feea6747a5e10088ac6ec15171a590a65 Mon Sep 17 00:00:00 2001 From: bitpshr Date: Sun, 15 Apr 2018 23:37:42 -0400 Subject: Fetch token prices based on contract address --- ui/app/actions.js | 68 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 45 insertions(+), 23 deletions(-) (limited to 'ui/app/actions.js') diff --git a/ui/app/actions.js b/ui/app/actions.js index 0748a5bea..6453a2bc2 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -220,8 +220,10 @@ var actions = { coinBaseSubview: coinBaseSubview, SHAPESHIFT_SUBVIEW: 'SHAPESHIFT_SUBVIEW', shapeShiftSubview: shapeShiftSubview, - UPDATE_TOKEN_EXCHANGE_RATE: 'UPDATE_TOKEN_EXCHANGE_RATE', - updateTokenExchangeRate, + UPDATE_CONTRACT_EXCHANGE_RATES: 'UPDATE_CONTRACT_EXCHANGE_RATES', + UPDATE_CONTRACT_EXCHANGE_RATE: 'UPDATE_CONTRACT_EXCHANGE_RATE', + updateContractExchangeRates, + updateContractExchangeRate, PAIR_UPDATE: 'PAIR_UPDATE', pairUpdate: pairUpdate, coinShiftRquest: coinShiftRquest, @@ -1080,9 +1082,12 @@ function unlockMetamask (account) { } function updateMetamaskState (newState) { - return { - type: actions.UPDATE_METAMASK_STATE, - value: newState, + return async dispatch => { + await dispatch({ + type: actions.UPDATE_METAMASK_STATE, + value: newState, + }) + dispatch(updateContractExchangeRates()) } } @@ -1295,9 +1300,12 @@ function addTokens (tokens) { } function updateTokens (newTokens) { - return { - type: actions.UPDATE_TOKENS, - newTokens, + return async dispatch => { + await dispatch({ + type: actions.UPDATE_TOKENS, + newTokens, + }) + dispatch(updateContractExchangeRates()) } } @@ -1751,24 +1759,38 @@ function shapeShiftRequest (query, options, cb) { } } -function updateTokenExchangeRate (token = '') { - const pair = `${token.toLowerCase()}_eth` +async function fetchContractRate (address) { + try { + const response = await fetch(`https://exchanges.balanc3.net/prices?from=${address}&to=ETH&autoConversion=false&summaryOnly=true`) + const json = await response.json() + const rate = json && json.length ? json[0].averagePrice : 0 + return { address, rate } + } catch (error) { } +} - return dispatch => { - if (!token) { - return +function updateContractExchangeRates () { + return async (dispatch, getState) => { + const { metamask: { tokens = [] } } = getState() + const newExchangeRates = {} + + for (const i in tokens) { + const address = tokens[i].address + newExchangeRates[address] = (await fetchContractRate(address)).rate } - shapeShiftRequest('marketinfo', { pair }, marketinfo => { - if (!marketinfo.error) { - dispatch({ - type: actions.UPDATE_TOKEN_EXCHANGE_RATE, - payload: { - pair, - marketinfo, - }, - }) - } + dispatch({ + type: actions.UPDATE_CONTRACT_EXCHANGE_RATES, + payload: { newExchangeRates }, + }) + } +} + +function updateContractExchangeRate (address) { + return async dispatch => { + const { address, rate } = await fetchContractRate(address) + dispatch({ + type: actions.UPDATE_CONTRACT_EXCHANGE_RATE, + payload: { address, rate }, }) } } -- cgit From d0447f90583275868bb72aa7ae8f670bf3668173 Mon Sep 17 00:00:00 2001 From: bitpshr Date: Mon, 16 Apr 2018 11:21:06 -0400 Subject: Maintain token prices using a background service --- ui/app/actions.js | 58 ++++++------------------------------------------------- 1 file changed, 6 insertions(+), 52 deletions(-) (limited to 'ui/app/actions.js') diff --git a/ui/app/actions.js b/ui/app/actions.js index 6453a2bc2..46f34e149 100644 --- a/ui/app/actions.js +++ b/ui/app/actions.js @@ -220,10 +220,6 @@ var actions = { coinBaseSubview: coinBaseSubview, SHAPESHIFT_SUBVIEW: 'SHAPESHIFT_SUBVIEW', shapeShiftSubview: shapeShiftSubview, - UPDATE_CONTRACT_EXCHANGE_RATES: 'UPDATE_CONTRACT_EXCHANGE_RATES', - UPDATE_CONTRACT_EXCHANGE_RATE: 'UPDATE_CONTRACT_EXCHANGE_RATE', - updateContractExchangeRates, - updateContractExchangeRate, PAIR_UPDATE: 'PAIR_UPDATE', pairUpdate: pairUpdate, coinShiftRquest: coinShiftRquest, @@ -1082,12 +1078,9 @@ function unlockMetamask (account) { } function updateMetamaskState (newState) { - return async dispatch => { - await dispatch({ - type: actions.UPDATE_METAMASK_STATE, - value: newState, - }) - dispatch(updateContractExchangeRates()) + return { + type: actions.UPDATE_METAMASK_STATE, + value: newState, } } @@ -1300,12 +1293,9 @@ function addTokens (tokens) { } function updateTokens (newTokens) { - return async dispatch => { - await dispatch({ - type: actions.UPDATE_TOKENS, - newTokens, - }) - dispatch(updateContractExchangeRates()) + return { + type: actions.UPDATE_TOKENS, + newTokens, } } @@ -1759,42 +1749,6 @@ function shapeShiftRequest (query, options, cb) { } } -async function fetchContractRate (address) { - try { - const response = await fetch(`https://exchanges.balanc3.net/prices?from=${address}&to=ETH&autoConversion=false&summaryOnly=true`) - const json = await response.json() - const rate = json && json.length ? json[0].averagePrice : 0 - return { address, rate } - } catch (error) { } -} - -function updateContractExchangeRates () { - return async (dispatch, getState) => { - const { metamask: { tokens = [] } } = getState() - const newExchangeRates = {} - - for (const i in tokens) { - const address = tokens[i].address - newExchangeRates[address] = (await fetchContractRate(address)).rate - } - - dispatch({ - type: actions.UPDATE_CONTRACT_EXCHANGE_RATES, - payload: { newExchangeRates }, - }) - } -} - -function updateContractExchangeRate (address) { - return async dispatch => { - const { address, rate } = await fetchContractRate(address) - dispatch({ - type: actions.UPDATE_CONTRACT_EXCHANGE_RATE, - payload: { address, rate }, - }) - } -} - function setFeatureFlag (feature, activated, notificationType) { return (dispatch) => { dispatch(actions.showLoadingIndication()) -- cgit