* Add BalancerBridge and Sampler functions * Update sampler artifacts/wrappers * Add Balancer support to AssetSwapper + related refactoring * Make use of GraphQL instead of sampler * "fix" build and add mainnet BalancerBridge tests * address some comments * add balancer cache and fix DexSampler tests * lint * wip: tests for balancer sampler ops * Fix market operation utils test * balancer unit tests * Return a buy quote of 0 if the buy amount exceeds the Balancer pool's balance * Dynamic fee estimation * Update contract addresses, export BalancerBridge wrapper * Update changelogs * Fix bugs discovered via simbot * Fix issues in balancer_utils * override `BigNumber.config` in configured_bignumber.ts * Special case Balancer subops in too * Address some more comments * Address Balancer performance issue * Performance improvements * Address comment * Fix tests Co-authored-by: xianny <xianny@gmail.com>
25 lines
1.1 KiB
TypeScript
25 lines
1.1 KiB
TypeScript
import { BalancerPool, BalancerPoolsCache } from '../../src/utils/market_operation_utils/balancer_utils';
|
|
|
|
export interface Handlers {
|
|
getPoolsForPairAsync: (takerToken: string, makerToken: string) => Promise<BalancerPool[]>;
|
|
_fetchPoolsForPairAsync: (takerToken: string, makerToken: string) => Promise<BalancerPool[]>;
|
|
}
|
|
|
|
export class MockBalancerPoolsCache extends BalancerPoolsCache {
|
|
constructor(public handlers: Partial<Handlers>) {
|
|
super();
|
|
}
|
|
|
|
public async getPoolsForPairAsync(takerToken: string, makerToken: string): Promise<BalancerPool[]> {
|
|
return this.handlers.getPoolsForPairAsync
|
|
? this.handlers.getPoolsForPairAsync(takerToken, makerToken)
|
|
: super.getPoolsForPairAsync(takerToken, makerToken);
|
|
}
|
|
|
|
protected async _fetchPoolsForPairAsync(takerToken: string, makerToken: string): Promise<BalancerPool[]> {
|
|
return this.handlers._fetchPoolsForPairAsync
|
|
? this.handlers._fetchPoolsForPairAsync(takerToken, makerToken)
|
|
: super._fetchPoolsForPairAsync(takerToken, makerToken);
|
|
}
|
|
}
|