const abi = require("./erc20abi"); import { CSP } from "../../../types/namespaces/ChainStateProvider"; import { ETHStateProvider } from "../eth/eth"; export class ERC20StateProvider extends ETHStateProvider implements CSP.IChainStateService { contractAddr: string; constructor(chain: string, contractAddr: string) { super(chain); this.contractAddr = contractAddr; } erc20For(network: string) { const web3 = this.getWeb3(network); const contract = new web3.eth.Contract(abi, this.contractAddr); return contract; } async getBalanceForAddress(params: CSP.GetBalanceForAddressParams) { const { network, address } = params; const balance = await this.erc20For(network) .methods.balanceOf(address) .call(); return { confirmed: balance, unconfirmed: 0, balance }; } }