mango-v4/ts/client/src/clientIxParamBuilder.ts

113 lines
3.4 KiB
TypeScript

import { PublicKey } from '@solana/web3.js';
import { InterestRateParams, OracleConfigParams } from './types';
export interface TokenEditParams {
oracle: PublicKey | null;
oracleConfig: OracleConfigParams | null;
groupInsuranceFund: boolean | null;
interestRateParams: InterestRateParams | null;
loanFeeRate: number | null;
loanOriginationFeeRate: number | null;
maintAssetWeight: number | null;
initAssetWeight: number | null;
maintLiabWeight: number | null;
initLiabWeight: number | null;
liquidationFee: number | null;
stablePriceDelayIntervalSeconds: number | null;
stablePriceDelayGrowthLimit: number | null;
stablePriceGrowthLimit: number | null;
minVaultToDepositsRatio: number | null;
netBorrowLimitPerWindowQuote: number | null;
netBorrowLimitWindowSizeTs: number | null;
borrowWeightScaleStartQuote: number | null;
depositWeightScaleStartQuote: number | null;
resetStablePrice: boolean | null;
resetNetBorrowLimit: boolean | null;
reduceOnly: boolean | null;
}
export const NullTokenEditParams: TokenEditParams = {
oracle: null,
oracleConfig: null,
groupInsuranceFund: null,
interestRateParams: null,
loanFeeRate: null,
loanOriginationFeeRate: null,
maintAssetWeight: null,
initAssetWeight: null,
maintLiabWeight: null,
initLiabWeight: null,
liquidationFee: null,
stablePriceDelayIntervalSeconds: null,
stablePriceDelayGrowthLimit: null,
stablePriceGrowthLimit: null,
minVaultToDepositsRatio: null,
netBorrowLimitPerWindowQuote: null,
netBorrowLimitWindowSizeTs: null,
borrowWeightScaleStartQuote: null,
depositWeightScaleStartQuote: null,
resetStablePrice: null,
resetNetBorrowLimit: null,
reduceOnly: null,
};
export interface PerpEditParams {
oracle: PublicKey | null;
oracleConfig: OracleConfigParams | null;
baseDecimals: number | null;
maintBaseAssetWeight: number | null;
initBaseAssetWeight: number | null;
maintBaseLiabWeight: number | null;
initBaseLiabWeight: number | null;
maintPnlAssetWeight: number | null;
initPnlAssetWeight: number | null;
liquidationFee: number | null;
makerFee: number | null;
takerFee: number | null;
feePenalty: number | null;
minFunding: number | null;
maxFunding: number | null;
impactQuantity: number | null;
groupInsuranceFund: boolean | null;
settleFeeFlat: number | null;
settleFeeAmountThreshold: number | null;
settleFeeFractionLowHealth: number | null;
stablePriceDelayIntervalSeconds: number | null;
stablePriceDelayGrowthLimit: number | null;
stablePriceGrowthLimit: number | null;
settlePnlLimitFactor: number | null;
settlePnlLimitWindowSize: number | null;
reduceOnly: boolean | null;
resetStablePrice: boolean | null;
}
export const NullPerpEditParams: PerpEditParams = {
oracle: null,
oracleConfig: null,
baseDecimals: null,
maintBaseAssetWeight: null,
initBaseAssetWeight: null,
maintBaseLiabWeight: null,
initBaseLiabWeight: null,
maintPnlAssetWeight: null,
initPnlAssetWeight: null,
liquidationFee: null,
makerFee: null,
takerFee: null,
feePenalty: null,
minFunding: null,
maxFunding: null,
impactQuantity: null,
groupInsuranceFund: null,
settleFeeFlat: null,
settleFeeAmountThreshold: null,
settleFeeFractionLowHealth: null,
stablePriceDelayIntervalSeconds: null,
stablePriceDelayGrowthLimit: null,
stablePriceGrowthLimit: null,
settlePnlLimitFactor: null,
settlePnlLimitWindowSize: null,
reduceOnly: null,
resetStablePrice: null,
};