Skip to content

Commit

Permalink
Keep track of original amount used to create CachedRoute (Uniswap#221)
Browse files Browse the repository at this point in the history
  • Loading branch information
mikeki authored Apr 11, 2023
1 parent d05ece2 commit 9583a53
Show file tree
Hide file tree
Showing 4 changed files with 25 additions and 11 deletions.
20 changes: 14 additions & 6 deletions src/providers/caching/route/model/cached-routes.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ interface CachedRoutesParams {
protocolsCovered: Protocol[];
blockNumber: number;
tradeType: TradeType;
originalAmount: string;
blocksToLive?: number;
}

Expand All @@ -32,6 +33,7 @@ export class CachedRoutes {
public readonly protocolsCovered: Protocol[];
public readonly blockNumber: number;
public readonly tradeType: TradeType;
public readonly originalAmount: string;

public blocksToLive: number;

Expand All @@ -43,6 +45,7 @@ export class CachedRoutes {
* @param protocolsCovered
* @param blockNumber
* @param tradeType
* @param originalAmount
* @param blocksToLive
*/
constructor(
Expand All @@ -54,6 +57,7 @@ export class CachedRoutes {
protocolsCovered,
blockNumber,
tradeType,
originalAmount,
blocksToLive = 0
}: CachedRoutesParams
) {
Expand All @@ -64,6 +68,7 @@ export class CachedRoutes {
this.protocolsCovered = protocolsCovered;
this.blockNumber = blockNumber;
this.tradeType = tradeType;
this.originalAmount = originalAmount;
this.blocksToLive = blocksToLive;
}

Expand All @@ -79,6 +84,7 @@ export class CachedRoutes {
* @param protocolsCovered
* @param blockNumber
* @param tradeType
* @param originalAmount
*/
public static fromRoutesWithValidQuotes(
routes: RouteWithValidQuote[],
Expand All @@ -88,6 +94,7 @@ export class CachedRoutes {
protocolsCovered: Protocol[],
blockNumber: number,
tradeType: TradeType,
originalAmount: string,
): CachedRoutes | undefined {
if (routes.length == 0) return undefined;

Expand All @@ -97,12 +104,13 @@ export class CachedRoutes {

return new CachedRoutes({
routes: cachedRoutes,
chainId: chainId,
tokenIn: tokenIn,
tokenOut: tokenOut,
protocolsCovered: protocolsCovered,
blockNumber: blockNumber,
tradeType: tradeType
chainId,
tokenIn,
tokenOut,
protocolsCovered,
blockNumber,
tradeType,
originalAmount
});
}

Expand Down
4 changes: 3 additions & 1 deletion src/routers/alpha-router/alpha-router.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1018,6 +1018,7 @@ export class AlphaRouter
routesFromChain: swapRouteFromChain.routes.toString(),
routesFromCache: swapRouteFromCache.routes.toString(),
amount: amount.toExact(),
originalAmount: cachedRoutes?.originalAmount,
pair: this.tokenPairSymbolTradeTypeChainId(tokenIn, tokenOut, tradeType)
},
`Comparing quotes between Chain and Cache for ${this.tokenPairSymbolTradeTypeChainId(
Expand Down Expand Up @@ -1051,7 +1052,8 @@ export class AlphaRouter
tokenOut,
protocols.sort(), // sort it for consistency in the order of the protocols.
await blockNumber,
tradeType
tradeType,
amount.toExact()
);

if (routesToCache) {
Expand Down
9 changes: 6 additions & 3 deletions test/unit/providers/caching/route/model/cached-routes.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,8 @@ describe('CachedRoutes', () => {
DAI,
[Protocol.V2, Protocol.V3, Protocol.MIXED],
blockNumber,
TradeType.EXACT_INPUT
TradeType.EXACT_INPUT,
'1.1'
);

expect(cachedRoutes).toBeInstanceOf(CachedRoutes);
Expand All @@ -35,7 +36,8 @@ describe('CachedRoutes', () => {
DAI,
[Protocol.V2, Protocol.V3, Protocol.MIXED],
blockNumber,
TradeType.EXACT_INPUT
TradeType.EXACT_INPUT,
'1.1'
);

expect(cachedRoutes).toBeUndefined();
Expand All @@ -53,7 +55,8 @@ describe('CachedRoutes', () => {
DAI,
[Protocol.V2, Protocol.V3, Protocol.MIXED],
blockNumber,
TradeType.EXACT_INPUT
TradeType.EXACT_INPUT,
'1.1'
)!;
});

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -84,6 +84,7 @@ export function getCachedRoutesStub(blockNumber: number): CachedRoutes | undefin
DAI,
[Protocol.V2, Protocol.V3, Protocol.MIXED],
blockNumber,
TradeType.EXACT_INPUT
TradeType.EXACT_INPUT,
'1.1'
);
}

0 comments on commit 9583a53

Please sign in to comment.