added weth/eth support to sampler

This commit is contained in:
Noah Khamliche 2022-06-02 20:59:50 -04:00 committed by Noah Khamliche
parent 9b131199ad
commit fd69a0c273
2 changed files with 23 additions and 2 deletions

View File

@ -28,6 +28,8 @@ contract BancorV3Sampler
/// @dev Gas limit for BancorV3 calls.
uint256 constant private BancorV3_CALL_GAS = 150e3; // 150k
address constant public ETH = 0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE;
/// @dev Sample sell quotes from BancorV3.
/// @param router Router to look up tokens and amounts
/// @param path Token route. Should be takerToken -> makerToken
@ -35,6 +37,7 @@ contract BancorV3Sampler
/// @return makerTokenAmounts Maker amounts bought at each taker token
/// amount.
function sampleSellsFromBancorV3(
address weth,
address router,
address[] memory path,
uint256[] memory takerTokenAmounts
@ -45,6 +48,14 @@ contract BancorV3Sampler
{
uint256 numSamples = takerTokenAmounts.length;
makerTokenAmounts = new uint256[](numSamples);
if(path[0] == weth){
path[0] = ETH;
}
if(path[1] == weth){
path[1] = ETH;
}
for (uint256 i = 0; i < numSamples; i++) {
try
IBancorV3(router).tradeOutputBySourceAmount(path[0], path[1], takerTokenAmounts[i])
@ -69,6 +80,7 @@ contract BancorV3Sampler
/// @return takerTokenAmounts Taker amounts sold at each maker token
/// amount.
function sampleBuysFromBancorV3(
address weth,
address router,
address[] memory path,
uint256[] memory makerTokenAmounts
@ -79,6 +91,14 @@ contract BancorV3Sampler
{
uint256 numSamples = makerTokenAmounts.length;
takerTokenAmounts = new uint256[](numSamples);
if(path[0] == weth){
path[0] = ETH;
}
if(path[1] == weth){
path[1] = ETH;
}
for (uint256 i = 0; i < numSamples; i++) {
try
IBancorV3(router).tradeInputByTargetAmount(path[0], path[1], makerTokenAmounts[i])

View File

@ -47,6 +47,7 @@ import {
SELL_SOURCE_FILTER_BY_CHAIN_ID,
UNISWAPV1_ROUTER_BY_CHAIN_ID,
UNISWAPV3_CONFIG_BY_CHAIN_ID,
MAINNET_TOKENS,
ZERO_AMOUNT,
} from './constants';
import { getGeistInfoForPair } from './geist_utils';
@ -722,7 +723,7 @@ export class SamplerOperations {
fillData: { networkAddress, path},
contract: this._samplerContract,
function: this._samplerContract.sampleBuysFromBancorV3,
params: [networkInfoAddress, path, takerFillAmounts],
params: [MAINNET_TOKENS.WETH, networkInfoAddress, path, takerFillAmounts],
});
}
@ -738,7 +739,7 @@ export class SamplerOperations {
fillData: { networkAddress, path},
contract: this._samplerContract,
function: this._samplerContract.sampleBuysFromBancorV3,
params: [networkInfoAddress, path, makerFillAmounts],
params: [MAINNET_TOKENS.WETH, networkInfoAddress, path, makerFillAmounts],
});
}