/** * @dev Converters for funding fees data between contract and SDK formats * @dev All BigNumber values are normalized to floats with appropriate precision */ import { IFundingFees } from "../../../contracts/types/generated/GNSMultiCollatDiamond"; import { FundingFeeParams, PairFundingFeeData, PairGlobalParams, TradeInitialAccFundingFees, GetFundingFeeContext } from "./types"; export declare const FUNDING_FEES_PRECISION: { SKEW_COEFFICIENT_PER_YEAR: number; ABSOLUTE_VELOCITY_PER_YEAR_CAP: number; ABSOLUTE_RATE_PER_SECOND_CAP: number; ACC_FUNDING_FEE_P: number; FUNDING_RATE_PER_SECOND_P: number; }; /** * @dev Converts contract funding fee params to SDK format * @param contractParams Contract funding fee params struct * @returns Normalized funding fee params */ export declare const convertFundingFeeParams: (contractParams: IFundingFees.FundingFeeParamsStruct) => FundingFeeParams; /** * @dev Converts array of contract funding fee params to SDK format * @param contractParamsArray Array of contract funding fee params * @returns Array of normalized funding fee params */ export declare const convertFundingFeeParamsArray: (contractParamsArray: IFundingFees.FundingFeeParamsStruct[]) => FundingFeeParams[]; /** * @dev Converts contract pair funding fee data to SDK format * @param contractData Contract pair funding fee data struct * @returns Normalized pair funding fee data */ export declare const convertPairFundingFeeData: (contractData: IFundingFees.PairFundingFeeDataStruct) => PairFundingFeeData; /** * @dev Converts array of contract pair funding fee data to SDK format * @param contractDataArray Array of contract pair funding fee data * @returns Array of normalized pair funding fee data */ export declare const convertPairFundingFeeDataArray: (contractDataArray: IFundingFees.PairFundingFeeDataStruct[]) => PairFundingFeeData[]; /** * @dev Converts contract pair global params to SDK format * @param contractParams Contract pair global params struct * @returns Normalized pair global params */ export declare const convertPairGlobalParams: (contractParams: IFundingFees.PairGlobalParamsStruct) => PairGlobalParams; /** * @dev Converts array of contract pair global params to SDK format * @param contractParamsArray Array of contract pair global params * @returns Array of normalized pair global params */ export declare const convertPairGlobalParamsArray: (contractParamsArray: IFundingFees.PairGlobalParamsStruct[]) => PairGlobalParams[]; /** * @dev Converts contract trade initial acc funding fees to SDK format * @param contractFees Contract trade fees data (only funding fee part) * @returns Normalized trade initial acc funding fees */ export declare const convertTradeInitialAccFundingFees: (contractFees: { initialAccFundingFeeP: bigint | number | string; }) => TradeInitialAccFundingFees; /** * @dev Creates a funding fee context from arrays of data * @param collateralIndices Array of collateral indices * @param pairIndices Array of pair indices * @param params Array of funding fee parameters * @param data Array of pair funding fee data * @param globalParams Optional array of global parameters * @param currentTimestamp Optional current timestamp * @returns Complete funding fee context */ export declare const createFundingFeeContext: (collateralIndices: number[], pairIndices: number[], params: FundingFeeParams[], data: PairFundingFeeData[], globalParams?: PairGlobalParams[], currentTimestamp?: number) => GetFundingFeeContext; /** * @dev Validates funding rate is within allowed bounds * @param absoluteRatePerSecondCap Rate cap (normalized) * @returns Whether the rate is valid */ export declare const isValidFundingRate: (absoluteRatePerSecondCap: number) => boolean; /** * @dev Converts funding rate per second to APR * @param ratePerSecondP Funding rate per second (normalized) * @returns APR as percentage */ export declare const fundingRateToAPR: (ratePerSecondP: number) => number; /** * @dev Converts APR to funding rate per second * @param apr APR as percentage * @returns Funding rate per second (normalized) */ export declare const aprToFundingRate: (apr: number) => number; /** * @dev Calculates velocity per year from skew coefficient * @param skewRatio Current skew ratio (net exposure / total OI) * @param skewCoefficientPerYear Skew coefficient per year (normalized) * @returns Velocity per year */ export declare const calculateVelocityFromSkew: (skewRatio: number, skewCoefficientPerYear: number) => number; /** * @dev Creates a GetFundingFeeContext from arrays (alias for consistency) * @param collateralIndices Array of collateral indices * @param pairIndices Array of pair indices * @param params Array of funding fee parameters * @param data Array of pair funding fee data * @returns Complete funding fee context */ export declare const createGetFundingFeeContext: (collateralIndices: number[], pairIndices: number[], params: FundingFeeParams[], data: PairFundingFeeData[]) => GetFundingFeeContext;