blob: 4c345aa304de7946283b02295f5614233f8c5287 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
|
import { assetProxyUtils } from '@0xproject/order-utils';
import { BigNumber } from '@0xproject/utils';
import * as _ from 'lodash';
import { AbstractAssetWrapper } from '../abstract/abstract_asset_wrapper';
interface ProxyIdToAssetWrappers {
[proxyId: number]: AbstractAssetWrapper;
}
export class AssetWrapper {
private _proxyIdToAssetWrappers: ProxyIdToAssetWrappers;
constructor(assetWrappers: AbstractAssetWrapper[]) {
this._proxyIdToAssetWrappers = {};
_.each(assetWrappers, assetWrapper => {
const proxyId = assetWrapper.getProxyId();
this._proxyIdToAssetWrappers[proxyId] = assetWrapper;
});
}
public async getBalanceAsync(owner: string, assetData: string): Promise<BigNumber> {
const proxyId = assetProxyUtils.decodeAssetDataId(assetData);
const assetWrapper = this._proxyIdToAssetWrappers[proxyId];
const balance = await assetWrapper.getBalanceAsync(owner, assetData);
return balance;
}
public async getProxyAllowanceAsync(owner: string, assetData: string): Promise<BigNumber> {
const proxyId = assetProxyUtils.decodeAssetDataId(assetData);
const assetWrapper = this._proxyIdToAssetWrappers[proxyId];
const balance = await assetWrapper.getProxyAllowanceAsync(owner, assetData);
return balance;
}
}
|