diff --git a/packages/sdk/src/chains/EVM/fee/percentageFee.ts b/packages/sdk/src/chains/EVM/fee/percentageFee.ts index f347153ae..f55493234 100644 --- a/packages/sdk/src/chains/EVM/fee/percentageFee.ts +++ b/packages/sdk/src/chains/EVM/fee/percentageFee.ts @@ -2,7 +2,7 @@ import { PercentageERC20FeeHandlerEVM__factory } from '@buildwithsygma/sygma-con import type { ethers } from 'ethers'; import { utils } from 'ethers'; import { FeeHandlerType } from '../../../types/index.js'; -import type { EvmFee } from '../types/index.js'; +import type { PercentageFee } from '../types/index.js'; /** * Calculates and returns the fee in native currency. @@ -27,7 +27,7 @@ export const getPercentageFee = async ({ toDomainID: number; resourceID: string; depositData: string; -}): Promise => { +}): Promise => { const percentageFeeHandlerContract = PercentageERC20FeeHandlerEVM__factory.connect( precentageFeeHandlerAddress, provider, @@ -40,12 +40,14 @@ export const getPercentageFee = async ({ depositData, utils.formatBytes32String(''), ); - + const feeBounds = await percentageFeeHandlerContract._resourceIDToFeeBounds(resourceID); const [fee] = calculatedFee; return { fee, feeData: fee.toHexString(), type: FeeHandlerType.PERCENTAGE, handlerAddress: precentageFeeHandlerAddress, + lowerBound: feeBounds.lowerBound, + upperBound: feeBounds.upperBound, }; }; diff --git a/packages/sdk/src/chains/EVM/types/index.ts b/packages/sdk/src/chains/EVM/types/index.ts index 7030c9b20..29a4405c2 100644 --- a/packages/sdk/src/chains/EVM/types/index.ts +++ b/packages/sdk/src/chains/EVM/types/index.ts @@ -10,6 +10,12 @@ export type EvmFee = { feeData?: string; }; +export type PercentageFee = EvmFee & { + type: FeeHandlerType.PERCENTAGE; + lowerBound: ethers.BigNumber; + upperBound: ethers.BigNumber; +}; + export type OracleResource = { baseEffectiveRate: string; tokenEffectiveRate: string;