Skip to content

Commit

Permalink
Merge pull request #258 from morpho-org/fix/liquidation/paraswap-api-…
Browse files Browse the repository at this point in the history
…params

fix(liquidation-sdk-viem): fix fetching from Paraswap API
  • Loading branch information
haydenshively authored Feb 3, 2025
2 parents 3b2c930 + 576b8ec commit 4ec8f37
Show file tree
Hide file tree
Showing 3 changed files with 23 additions and 12 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -255,7 +255,7 @@ export const check = async <
srcToken,
srcAmount,
market.params,
slippage / 10n ** 16n,
slippage / 10n ** 14n,
repaidAssets,
client.account.address,
);
Expand Down
11 changes: 8 additions & 3 deletions packages/liquidation-sdk-viem/src/swap/1inch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,10 +14,15 @@ export namespace OneInch {
apiKey = process.env.ONE_INCH_SWAP_API_KEY,
) {
const url = new URL(getSwapApiPath(swapParams.chainId), API_BASE_URL);
url.searchParams.set("slippage", BigInt(swapParams.slippage).toString(16));
Object.entries(swapParams).forEach(([key, value]) => {
if (value != null) {
url.searchParams.set(key, value.toString());
if (value == null) return;
switch (key) {
case "slippage":
// 1inch expects slippage as a percentage, so we divide our value (in basis points) by 100
url.searchParams.set(key, (Number(value) / 100).toString(10));
break;
default:
url.searchParams.set(key, value);
}
});

Expand Down
22 changes: 14 additions & 8 deletions packages/liquidation-sdk-viem/src/swap/paraswap.ts
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,20 @@ export namespace Paraswap {
side: SwapSide.SELL,
});

const calldata = await paraSwap.swap.buildTx({
srcToken: swapParams.src,
destToken: swapParams.dst,
srcAmount: swapParams.amount.toString(),
userAddress: swapParams.from,
priceRoute: priceRoute,
slippage: Number(swapParams.slippage.toString(16)),
});
const calldata = await paraSwap.swap.buildTx(
{
srcToken: swapParams.src,
destToken: swapParams.dst,
srcAmount: swapParams.amount.toString(),
userAddress: swapParams.from,
priceRoute: priceRoute,
slippage: Number(swapParams.slippage.toString(16)),
},
{
// Necessary so that Paraswap skips balance checks (we won't have tokens until contract callback)
ignoreChecks: true,
},
);

return {
dstAmount: priceRoute.destAmount,
Expand Down

0 comments on commit 4ec8f37

Please sign in to comment.