diff options
author | fragosti <francesco.agosti93@gmail.com> | 2018-11-01 10:20:37 +0800 |
---|---|---|
committer | fragosti <francesco.agosti93@gmail.com> | 2018-11-01 10:21:06 +0800 |
commit | 6091ee732d208eaf9889087b8308dfd0427b9be5 (patch) | |
tree | c13189159cc172c9f82340a8d3a2bd69eed47f6e /packages/instant/src/redux/async_data.ts | |
parent | 8c336925601127c759ad4cfbca119368a2edfd56 (diff) | |
download | dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.tar dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.tar.gz dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.tar.bz2 dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.tar.lz dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.tar.xz dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.tar.zst dexon-sol-tools-6091ee732d208eaf9889087b8308dfd0427b9be5.zip |
feat: modify public API to allow for passing in available assets, or fetch assets from SRA
Diffstat (limited to 'packages/instant/src/redux/async_data.ts')
-rw-r--r-- | packages/instant/src/redux/async_data.ts | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/packages/instant/src/redux/async_data.ts b/packages/instant/src/redux/async_data.ts index 4ed89bdc3..f8dbe9fd4 100644 --- a/packages/instant/src/redux/async_data.ts +++ b/packages/instant/src/redux/async_data.ts @@ -1,22 +1,33 @@ +import * as _ from 'lodash'; + import { BIG_NUMBER_ZERO } from '../constants'; +import { assetUtils } from '../util/asset'; import { coinbaseApi } from '../util/coinbase_api'; -import { ActionTypes } from './actions'; - +import { actions } from './actions'; import { Store } from './store'; export const asyncData = { - fetchAndDispatchToStore: async (store: Store) => { + fetchEthPriceAndDispatchToStore: async (store: Store) => { let ethUsdPrice = BIG_NUMBER_ZERO; try { ethUsdPrice = await coinbaseApi.getEthUsdPrice(); } catch (e) { // ignore } finally { - store.dispatch({ - type: ActionTypes.UPDATE_ETH_USD_PRICE, - data: ethUsdPrice, - }); + store.dispatch(actions.updateEthUsdPrice(ethUsdPrice)); + } + }, + fetchAvailableAssetDatasAndDispatchToStore: async (store: Store) => { + const { assetBuyer, assetMetaDataMap, network } = store.getState(); + if (!_.isUndefined(assetBuyer)) { + try { + const assetDatas = await assetBuyer.getAvailableAssetDatasAsync(); + const assets = assetUtils.createAssetsFromAssetDatas(assetDatas, assetMetaDataMap, network); + store.dispatch(actions.setAvailableAssets(assets)); + } catch (e) { + // ignore + } } }, }; |