aboutsummaryrefslogblamecommitdiffstats
path: root/packages/order-utils/test/utils/simple_erc20_balance_and_proxy_allowance_fetcher.ts
blob: d00a25031ecd2d514b9b9e982da1ce51d228a532 (plain) (tree)
1
2
3
4
5
6
7
8
                                                                 



                                                                                                                          
                                                                                                            

                                                             



                                                                                   

                                                                                               



                                                                                        

                                                                                                      




                                                                                                                        
import { ERC20TokenContract } from '@0xproject/abi-gen-wrappers';
import { BigNumber } from '@0xproject/utils';

import { AbstractBalanceAndProxyAllowanceFetcher } from '../../src/abstract/abstract_balance_and_proxy_allowance_fetcher';

export class SimpleERC20BalanceAndProxyAllowanceFetcher implements AbstractBalanceAndProxyAllowanceFetcher {
    private readonly _erc20TokenContract: ERC20TokenContract;
    private readonly _erc20ProxyAddress: string;
    constructor(erc20TokenWrapper: ERC20TokenContract, erc20ProxyAddress: string) {
        this._erc20TokenContract = erc20TokenWrapper;
        this._erc20ProxyAddress = erc20ProxyAddress;
    }
    public async getBalanceAsync(_assetData: string, userAddress: string): Promise<BigNumber> {
        // HACK: We cheat and don't pass in the assetData since it's always the same token used
        // in our tests.
        const balance = await this._erc20TokenContract.balanceOf.callAsync(userAddress);
        return balance;
    }
    public async getProxyAllowanceAsync(_assetData: string, userAddress: string): Promise<BigNumber> {
        // HACK: We cheat and don't pass in the assetData since it's always the same token used
        // in our tests.
        const proxyAllowance = await this._erc20TokenContract.allowance.callAsync(userAddress, this._erc20ProxyAddress);
        return proxyAllowance;
    }
}