Skip to content

Commit

Permalink
Add Paraswap humanizer
Browse files Browse the repository at this point in the history
  • Loading branch information
JIOjosBG committed Jul 24, 2024
1 parent 99b1c13 commit 1d14e3f
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 1 deletion.
64 changes: 64 additions & 0 deletions src/lib/humanizers/Paraswap.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
import { Interface } from 'ethers/lib/utils'
import { token } from 'lib/humanReadableTransactions'


const parseZeroAddressIfNeeded = (address) => {
return address.toLowerCase() === '0xeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeeee'
? '0x0000000000000000000000000000000000000000'
: address
}

const getSwap = (humanizerInfo, srcToken,fromAmount,destToken,toAmount, extended) => extended ?
[
'Swap',
{
type: 'token',
...token(humanizerInfo, parseZeroAddressIfNeeded(srcToken), fromAmount,true)
},
'for',
{
type: 'token',
...token(humanizerInfo, parseZeroAddressIfNeeded(destToken) ,toAmount,true)
}
]:
`Swap ${token(humanizerInfo,srcToken,fromAmount)} for ${token(humanizerInfo,destToken, toAmount)}`


const ParaswapMapping = (humanizerInfo) => {
const iface = new Interface(humanizerInfo.abis.ParaswapRouter)
return {
[iface.getSighash('swapExactAmountIn')]: (txn, network, { extended }) => {
const {executor, swapData:{srcToken, destToken,fromAmount,toAmount,quotedAmount,metadata,beneficiary},partnerAndFee,permit,executionData} = iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountInOnCurveV1')]: (txn, network, { extended }) => {
const {curveV1Data:{srcToken,destToken,fromAmount,toAmount}} = iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountInOnCurveV2')]: (txn, network, { extended }) => {
const {curveV2Data: srcToken,destToken,fromAmount,toAmount}= iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountInOnUniswapV2')]: (txn, network, { extended }) => {
const {uniData:{srcToken,destToken,fromAmount,toAmount}}= iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountInOnUniswapV3')]: (txn, network, { extended }) => {
const {uniData:{srcToken,destToken, fromAmount, toAmount}} = iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountOut')]: (txn, network, { extended }) => {
const {executor, swapData:{srcToken, destToken,fromAmount,toAmount}} = iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountOutOnUniswapV2')]: (txn, network, { extended }) => {
const {uniData:{srcToken,destToken,fromAmount,toAmount}}= iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
},
[iface.getSighash('swapExactAmountOutOnUniswapV3')]: (txn, network, { extended }) => {
const {uniData:{srcToken,destToken, fromAmount, toAmount}} = iface.parseTransaction(txn).args
return [getSwap(humanizerInfo,srcToken,fromAmount,destToken,toAmount, extended)]
}
}
}
export default ParaswapMapping
4 changes: 3 additions & 1 deletion src/lib/humanizers/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -21,6 +21,7 @@ import MeanFinance from './MeanFinance'
import GMX from './GMX'
import Lido from './Lido'
import Joe from './Joe'
import Paraswap from './Paraswap'

const all = ({ humanizerInfo, tokenList }) => ({
...UniRouters(humanizerInfo),
Expand All @@ -44,7 +45,8 @@ const all = ({ humanizerInfo, tokenList }) => ({
...MeanFinance(humanizerInfo),
...GMX(humanizerInfo),
...Lido(humanizerInfo),
...Joe(humanizerInfo)
...Joe(humanizerInfo),
...Paraswap(humanizerInfo)
})

export default all

0 comments on commit 1d14e3f

Please sign in to comment.