feat: use pool attribute instead of curve for all Curve like pools
This commit is contained in:
parent
f783625d60
commit
3182c12b4d
@ -174,9 +174,9 @@ export const MAINNET_CURVE_INFOS: { [name: string]: CurveInfo } = {
|
|||||||
export const MAINNET_SWERVE_INFOS: { [name: string]: CurveInfo } = {
|
export const MAINNET_SWERVE_INFOS: { [name: string]: CurveInfo } = {
|
||||||
swUSD: {
|
swUSD: {
|
||||||
exchangeFunctionSelector: CurveFunctionSelectors.exchange,
|
exchangeFunctionSelector: CurveFunctionSelectors.exchange,
|
||||||
sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy_underlying,
|
sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy,
|
||||||
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
||||||
poolAddress: '0x329239599afB305DA0A2eC69c58F8a6697F9F88d',
|
poolAddress: '0x329239599afb305da0a2ec69c58f8a6697f9f88d',
|
||||||
tokens: [
|
tokens: [
|
||||||
'0x6b175474e89094c44da98b954eedeac495271d0f',
|
'0x6b175474e89094c44da98b954eedeac495271d0f',
|
||||||
'0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
'0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
|
||||||
@ -186,36 +186,36 @@ export const MAINNET_SWERVE_INFOS: { [name: string]: CurveInfo } = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
export const MAINNET_SNOWSWAP_INFOS: { [name: string]: CurveInfo } = {
|
export const MAINNET_SNOWSWAP_INFOS: { [name: string]: CurveInfo } = {
|
||||||
// yVaultCurve: {
|
yVaultCurve: {
|
||||||
// exchangeFunctionSelector: CurveFunctionSelectors.exchange,
|
|
||||||
// sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy,
|
|
||||||
// buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
|
||||||
// poolAddress: '0xBf7CCD6C446acfcc5dF023043f2167B62E81899b',
|
|
||||||
// tokens: [
|
|
||||||
// '0x5dbcf33d8c2e976c6b560249878e6f1491bca25c', // yUSD
|
|
||||||
// '0x2994529c0652d127b7842094103715ec5299bbed', // ybCRV
|
|
||||||
// ],
|
|
||||||
// },
|
|
||||||
yVaultUSDUnderlying: {
|
|
||||||
exchangeFunctionSelector: CurveFunctionSelectors.exchange_underlying,
|
|
||||||
sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy_underlying,
|
|
||||||
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
|
||||||
poolAddress: '0x4571753311E37dDb44faA8Fb78a6dF9a6E3c6C0B',
|
|
||||||
tokens: [
|
|
||||||
// underlying tokens, in SnowSwaps order
|
|
||||||
'0x6B175474E89094C44Da98b954EedeAC495271d0F', // DAI
|
|
||||||
'0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48', // USDC
|
|
||||||
'0xdAC17F958D2ee523a2206206994597C13D831ec7', // USDT
|
|
||||||
'0x0000000000085d4780B73119b644AE5ecd22b376', // TUSD
|
|
||||||
],
|
|
||||||
},
|
|
||||||
yVaultUSD: {
|
|
||||||
// Note we're not trading the underlying but the y representation
|
|
||||||
// so we use `exchange` and `get_dy`
|
|
||||||
exchangeFunctionSelector: CurveFunctionSelectors.exchange,
|
exchangeFunctionSelector: CurveFunctionSelectors.exchange,
|
||||||
sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy,
|
sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy,
|
||||||
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
||||||
poolAddress: '0x4571753311E37dDb44faA8Fb78a6dF9a6E3c6C0B',
|
poolAddress: '0xBf7CCD6C446acfcc5dF023043f2167B62E81899b',
|
||||||
|
tokens: [
|
||||||
|
'0x5dbcf33d8c2e976c6b560249878e6f1491bca25c', // yUSD
|
||||||
|
'0x2994529c0652d127b7842094103715ec5299bbed', // ybCRV
|
||||||
|
],
|
||||||
|
},
|
||||||
|
// yVaultUSDUnderlying: {
|
||||||
|
// exchangeFunctionSelector: CurveFunctionSelectors.exchange_underlying,
|
||||||
|
// sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy_underlying,
|
||||||
|
// buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
||||||
|
// poolAddress: '0x4571753311e37ddb44faa8fb78a6df9a6e3c6c0b',
|
||||||
|
// tokens: [
|
||||||
|
// // underlying tokens, in SnowSwaps order
|
||||||
|
// '0x6b175474e89094c44da98b954eedeac495271d0f', // DAI
|
||||||
|
// '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48', // USDC
|
||||||
|
// '0xdac17f958d2ee523a2206206994597c13d831ec7', // USDT
|
||||||
|
// '0x0000000000085d4780b73119b644ae5ecd22b376', // TUSD
|
||||||
|
// ],
|
||||||
|
// },
|
||||||
|
yVaultUSD: {
|
||||||
|
// Note we're not trading the underlying but the y representation
|
||||||
|
// so we use `exchange` and `get_dy`
|
||||||
|
exchangeFunctionSelector: CurveFunctionSelectors.exchange_underlying,
|
||||||
|
sellQuoteFunctionSelector: CurveFunctionSelectors.get_dy_underlying,
|
||||||
|
buyQuoteFunctionSelector: CurveFunctionSelectors.None,
|
||||||
|
poolAddress: '0x4571753311e37ddb44faa8fb78a6df9a6e3c6c0b',
|
||||||
tokens: [
|
tokens: [
|
||||||
// the "non" underlying tokens, in the SnowSwap defined order
|
// the "non" underlying tokens, in the SnowSwap defined order
|
||||||
'0xacd43e627e64355f1861cec6d3a6688b31a6f952', // yDAI
|
'0xacd43e627e64355f1861cec6d3a6688b31a6f952', // yDAI
|
||||||
|
@ -216,8 +216,8 @@ export function createBridgeOrder(
|
|||||||
makerToken,
|
makerToken,
|
||||||
bridgeAddress,
|
bridgeAddress,
|
||||||
createCurveBridgeData(
|
createCurveBridgeData(
|
||||||
curveFillData.curve.poolAddress,
|
curveFillData.pool.poolAddress,
|
||||||
curveFillData.curve.exchangeFunctionSelector,
|
curveFillData.pool.exchangeFunctionSelector,
|
||||||
takerToken,
|
takerToken,
|
||||||
curveFillData.fromTokenIdx,
|
curveFillData.fromTokenIdx,
|
||||||
curveFillData.toTokenIdx,
|
curveFillData.toTokenIdx,
|
||||||
|
@ -298,7 +298,7 @@ export class SamplerOperations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public getCurveSellQuotes(
|
public getCurveSellQuotes(
|
||||||
curve: CurveInfo,
|
pool: CurveInfo,
|
||||||
fromTokenIdx: number,
|
fromTokenIdx: number,
|
||||||
toTokenIdx: number,
|
toTokenIdx: number,
|
||||||
takerFillAmounts: BigNumber[],
|
takerFillAmounts: BigNumber[],
|
||||||
@ -306,7 +306,7 @@ export class SamplerOperations {
|
|||||||
return new SamplerContractOperation({
|
return new SamplerContractOperation({
|
||||||
source: ERC20BridgeSource.Curve,
|
source: ERC20BridgeSource.Curve,
|
||||||
fillData: {
|
fillData: {
|
||||||
curve,
|
pool,
|
||||||
fromTokenIdx,
|
fromTokenIdx,
|
||||||
toTokenIdx,
|
toTokenIdx,
|
||||||
},
|
},
|
||||||
@ -314,9 +314,9 @@ export class SamplerOperations {
|
|||||||
function: this._samplerContract.sampleSellsFromCurve,
|
function: this._samplerContract.sampleSellsFromCurve,
|
||||||
params: [
|
params: [
|
||||||
{
|
{
|
||||||
poolAddress: curve.poolAddress,
|
poolAddress: pool.poolAddress,
|
||||||
sellQuoteFunctionSelector: curve.sellQuoteFunctionSelector,
|
sellQuoteFunctionSelector: pool.sellQuoteFunctionSelector,
|
||||||
buyQuoteFunctionSelector: curve.buyQuoteFunctionSelector,
|
buyQuoteFunctionSelector: pool.buyQuoteFunctionSelector,
|
||||||
},
|
},
|
||||||
new BigNumber(fromTokenIdx),
|
new BigNumber(fromTokenIdx),
|
||||||
new BigNumber(toTokenIdx),
|
new BigNumber(toTokenIdx),
|
||||||
@ -326,7 +326,7 @@ export class SamplerOperations {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public getCurveBuyQuotes(
|
public getCurveBuyQuotes(
|
||||||
curve: CurveInfo,
|
pool: CurveInfo,
|
||||||
fromTokenIdx: number,
|
fromTokenIdx: number,
|
||||||
toTokenIdx: number,
|
toTokenIdx: number,
|
||||||
makerFillAmounts: BigNumber[],
|
makerFillAmounts: BigNumber[],
|
||||||
@ -334,7 +334,7 @@ export class SamplerOperations {
|
|||||||
return new SamplerContractOperation({
|
return new SamplerContractOperation({
|
||||||
source: ERC20BridgeSource.Curve,
|
source: ERC20BridgeSource.Curve,
|
||||||
fillData: {
|
fillData: {
|
||||||
curve,
|
pool,
|
||||||
fromTokenIdx,
|
fromTokenIdx,
|
||||||
toTokenIdx,
|
toTokenIdx,
|
||||||
},
|
},
|
||||||
@ -342,9 +342,9 @@ export class SamplerOperations {
|
|||||||
function: this._samplerContract.sampleBuysFromCurve,
|
function: this._samplerContract.sampleBuysFromCurve,
|
||||||
params: [
|
params: [
|
||||||
{
|
{
|
||||||
poolAddress: curve.poolAddress,
|
poolAddress: pool.poolAddress,
|
||||||
sellQuoteFunctionSelector: curve.sellQuoteFunctionSelector,
|
sellQuoteFunctionSelector: pool.sellQuoteFunctionSelector,
|
||||||
buyQuoteFunctionSelector: curve.buyQuoteFunctionSelector,
|
buyQuoteFunctionSelector: pool.buyQuoteFunctionSelector,
|
||||||
},
|
},
|
||||||
new BigNumber(fromTokenIdx),
|
new BigNumber(fromTokenIdx),
|
||||||
new BigNumber(toTokenIdx),
|
new BigNumber(toTokenIdx),
|
||||||
@ -1082,11 +1082,11 @@ export class SamplerOperations {
|
|||||||
this.getKyberSellQuotes(reserveId, makerToken, takerToken, takerFillAmounts),
|
this.getKyberSellQuotes(reserveId, makerToken, takerToken, takerFillAmounts),
|
||||||
);
|
);
|
||||||
case ERC20BridgeSource.Curve:
|
case ERC20BridgeSource.Curve:
|
||||||
return getCurveInfosForPair(takerToken, makerToken).map(curve =>
|
return getCurveInfosForPair(takerToken, makerToken).map(pool =>
|
||||||
this.getCurveSellQuotes(
|
this.getCurveSellQuotes(
|
||||||
curve,
|
pool,
|
||||||
curve.tokens.indexOf(takerToken),
|
pool.tokens.indexOf(takerToken),
|
||||||
curve.tokens.indexOf(makerToken),
|
pool.tokens.indexOf(makerToken),
|
||||||
takerFillAmounts,
|
takerFillAmounts,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1100,11 +1100,11 @@ export class SamplerOperations {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
case ERC20BridgeSource.SnowSwap:
|
case ERC20BridgeSource.SnowSwap:
|
||||||
return getSnowSwapInfosForPair(takerToken, makerToken).map(snowswap =>
|
return getSnowSwapInfosForPair(takerToken, makerToken).map(pool =>
|
||||||
this.getSnowSwapSellQuotes(
|
this.getSnowSwapSellQuotes(
|
||||||
snowswap,
|
pool,
|
||||||
snowswap.tokens.indexOf(takerToken),
|
pool.tokens.indexOf(takerToken),
|
||||||
snowswap.tokens.indexOf(makerToken),
|
pool.tokens.indexOf(makerToken),
|
||||||
takerFillAmounts,
|
takerFillAmounts,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1214,11 +1214,11 @@ export class SamplerOperations {
|
|||||||
this.getKyberBuyQuotes(reserveId, makerToken, takerToken, makerFillAmounts),
|
this.getKyberBuyQuotes(reserveId, makerToken, takerToken, makerFillAmounts),
|
||||||
);
|
);
|
||||||
case ERC20BridgeSource.Curve:
|
case ERC20BridgeSource.Curve:
|
||||||
return getCurveInfosForPair(takerToken, makerToken).map(curve =>
|
return getCurveInfosForPair(takerToken, makerToken).map(pool =>
|
||||||
this.getCurveBuyQuotes(
|
this.getCurveBuyQuotes(
|
||||||
curve,
|
pool,
|
||||||
curve.tokens.indexOf(takerToken),
|
pool.tokens.indexOf(takerToken),
|
||||||
curve.tokens.indexOf(makerToken),
|
pool.tokens.indexOf(makerToken),
|
||||||
makerFillAmounts,
|
makerFillAmounts,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
@ -1232,11 +1232,11 @@ export class SamplerOperations {
|
|||||||
),
|
),
|
||||||
);
|
);
|
||||||
case ERC20BridgeSource.SnowSwap:
|
case ERC20BridgeSource.SnowSwap:
|
||||||
return getSnowSwapInfosForPair(takerToken, makerToken).map(snowswap =>
|
return getSnowSwapInfosForPair(takerToken, makerToken).map(pool =>
|
||||||
this.getSnowSwapBuyQuotes(
|
this.getSnowSwapBuyQuotes(
|
||||||
snowswap,
|
pool,
|
||||||
snowswap.tokens.indexOf(takerToken),
|
pool.tokens.indexOf(takerToken),
|
||||||
snowswap.tokens.indexOf(makerToken),
|
pool.tokens.indexOf(makerToken),
|
||||||
makerFillAmounts,
|
makerFillAmounts,
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
|
@ -94,7 +94,7 @@ export interface NativeFillData extends FillData {
|
|||||||
export interface CurveFillData extends FillData {
|
export interface CurveFillData extends FillData {
|
||||||
fromTokenIdx: number;
|
fromTokenIdx: number;
|
||||||
toTokenIdx: number;
|
toTokenIdx: number;
|
||||||
curve: CurveInfo;
|
pool: CurveInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface SwerveFillData extends FillData {
|
export interface SwerveFillData extends FillData {
|
||||||
|
@ -310,7 +310,7 @@ describe('MarketOperationUtils tests', () => {
|
|||||||
[ERC20BridgeSource.Bancor]: { path: [], networkAddress: randomAddress() },
|
[ERC20BridgeSource.Bancor]: { path: [], networkAddress: randomAddress() },
|
||||||
[ERC20BridgeSource.Kyber]: { hint: '0x', reserveId: '0x' },
|
[ERC20BridgeSource.Kyber]: { hint: '0x', reserveId: '0x' },
|
||||||
[ERC20BridgeSource.Curve]: {
|
[ERC20BridgeSource.Curve]: {
|
||||||
curve: {
|
pool: {
|
||||||
poolAddress: randomAddress(),
|
poolAddress: randomAddress(),
|
||||||
tokens: [TAKER_TOKEN, MAKER_TOKEN],
|
tokens: [TAKER_TOKEN, MAKER_TOKEN],
|
||||||
exchangeFunctionSelector: hexUtils.random(4),
|
exchangeFunctionSelector: hexUtils.random(4),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user