aboutsummaryrefslogtreecommitdiffstats
path: root/ui/app/token-util.js
diff options
context:
space:
mode:
authorChi Kei Chan <chikeichan@gmail.com>2019-03-22 07:03:30 +0800
committerDan J Miller <danjm.com@gmail.com>2019-03-22 07:03:30 +0800
commit31175625b446cb5d18b17db23018bca8b14d280c (patch)
treef54e159883deef003fb281267025edf796eb8004 /ui/app/token-util.js
parent7287133e15fab22299e07704206e85bc855d1064 (diff)
downloadtangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.gz
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.bz2
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.lz
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.xz
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.tar.zst
tangerine-wallet-browser-31175625b446cb5d18b17db23018bca8b14d280c.zip
Folder restructure (#6304)
* Remove ui/app/keychains/ * Remove ui/app/img/ (unused images) * Move conversion-util to helpers/utils/ * Move token-util to helpers/utils/ * Move /helpers/*.js inside /helpers/utils/ * Move util tests inside /helpers/utils/ * Renameand move confirm-transaction/util.js to helpers/utils/ * Move higher-order-components to helpers/higher-order-components/ * Move infura-conversion.json to helpers/constants/ * Move all utility functions to helpers/utils/ * Move pages directory to top-level * Move all constants to helpers/constants/ * Move metametrics inside helpers/ * Move app and root inside pages/ * Move routes inside helpers/ * Re-organize ducks/ * Move reducers to ducks/ * Move selectors inside selectors/ * Move test out of test folder * Move action, reducer, store inside store/ * Move ui components inside ui/ * Move UI components inside ui/ * Move connected components inside components/app/ * Move i18n-helper inside helpers/ * Fix unit tests * Fix unit test * Move pages components * Rename routes component * Move reducers to ducks/index * Fix bad path in unit test
Diffstat (limited to 'ui/app/token-util.js')
-rw-r--r--ui/app/token-util.js118
1 files changed, 0 insertions, 118 deletions
diff --git a/ui/app/token-util.js b/ui/app/token-util.js
deleted file mode 100644
index 35a19a69f..000000000
--- a/ui/app/token-util.js
+++ /dev/null
@@ -1,118 +0,0 @@
-const log = require('loglevel')
-const util = require('./util')
-const BigNumber = require('bignumber.js')
-import contractMap from 'eth-contract-metadata'
-
-const casedContractMap = Object.keys(contractMap).reduce((acc, base) => {
- return {
- ...acc,
- [base.toLowerCase()]: contractMap[base],
- }
-}, {})
-
-const DEFAULT_SYMBOL = ''
-const DEFAULT_DECIMALS = '0'
-
-async function getSymbolFromContract (tokenAddress) {
- const token = util.getContractAtAddress(tokenAddress)
-
- try {
- const result = await token.symbol()
- return result[0]
- } catch (error) {
- log.warn(`symbol() call for token at address ${tokenAddress} resulted in error:`, error)
- }
-}
-
-async function getDecimalsFromContract (tokenAddress) {
- const token = util.getContractAtAddress(tokenAddress)
-
- try {
- const result = await token.decimals()
- const decimalsBN = result[0]
- return decimalsBN && decimalsBN.toString()
- } catch (error) {
- log.warn(`decimals() call for token at address ${tokenAddress} resulted in error:`, error)
- }
-}
-
-function getContractMetadata (tokenAddress) {
- return tokenAddress && casedContractMap[tokenAddress.toLowerCase()]
-}
-
-async function getSymbol (tokenAddress) {
- let symbol = await getSymbolFromContract(tokenAddress)
-
- if (!symbol) {
- const contractMetadataInfo = getContractMetadata(tokenAddress)
-
- if (contractMetadataInfo) {
- symbol = contractMetadataInfo.symbol
- }
- }
-
- return symbol
-}
-
-async function getDecimals (tokenAddress) {
- let decimals = await getDecimalsFromContract(tokenAddress)
-
- if (!decimals || decimals === '0') {
- const contractMetadataInfo = getContractMetadata(tokenAddress)
-
- if (contractMetadataInfo) {
- decimals = contractMetadataInfo.decimals
- }
- }
-
- return decimals
-}
-
-export async function getSymbolAndDecimals (tokenAddress, existingTokens = []) {
- const existingToken = existingTokens.find(({ address }) => tokenAddress === address)
-
- if (existingToken) {
- return {
- symbol: existingToken.symbol,
- decimals: existingToken.decimals,
- }
- }
-
- let symbol, decimals
-
- try {
- symbol = await getSymbol(tokenAddress)
- decimals = await getDecimals(tokenAddress)
- } catch (error) {
- log.warn(`symbol() and decimal() calls for token at address ${tokenAddress} resulted in error:`, error)
- }
-
- return {
- symbol: symbol || DEFAULT_SYMBOL,
- decimals: decimals || DEFAULT_DECIMALS,
- }
-}
-
-export function tokenInfoGetter () {
- const tokens = {}
-
- return async (address) => {
- if (tokens[address]) {
- return tokens[address]
- }
-
- tokens[address] = await getSymbolAndDecimals(address)
-
- return tokens[address]
- }
-}
-
-export function calcTokenAmount (value, decimals) {
- const multiplier = Math.pow(10, Number(decimals || 0))
- return new BigNumber(String(value)).div(multiplier)
-}
-
-export function getTokenValue (tokenParams = []) {
- const valueData = tokenParams.find(param => param.name === '_value')
- return valueData && valueData.value
-}