feature/default_network_editable
parent
5d8b53bcf4
commit
c8c918d44e
@ -0,0 +1,36 @@ |
|||||||
|
const abi = require('human-standard-token-abi') |
||||||
|
const Eth = require('ethjs-query') |
||||||
|
const EthContract = require('ethjs-contract') |
||||||
|
|
||||||
|
const tokenInfoGetter = function () { |
||||||
|
if (typeof global.ethereumProvider === 'undefined') return |
||||||
|
|
||||||
|
const eth = new Eth(global.ethereumProvider) |
||||||
|
const contract = new EthContract(eth) |
||||||
|
const TokenContract = contract(abi) |
||||||
|
|
||||||
|
const tokens = {} |
||||||
|
|
||||||
|
return async (address) => { |
||||||
|
if (tokens[address]) { |
||||||
|
return tokens[address] |
||||||
|
} |
||||||
|
|
||||||
|
const contract = TokenContract.at(address) |
||||||
|
|
||||||
|
const result = await Promise.all([ |
||||||
|
contract.symbol(), |
||||||
|
contract.decimals(), |
||||||
|
]) |
||||||
|
|
||||||
|
const [ symbol = [], decimals = [] ] = result |
||||||
|
|
||||||
|
tokens[address] = { symbol: symbol[0], decimals: decimals[0] } |
||||||
|
|
||||||
|
return tokens[address] |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
module.exports = { |
||||||
|
tokenInfoGetter, |
||||||
|
} |
Loading…
Reference in new issue