remove oracle diffrences

This commit is contained in:
Adrian Brzeziński 2024-04-15 16:34:37 +02:00
parent b9745ec5a7
commit 83c2907285
3 changed files with 29 additions and 56 deletions

View File

@ -3,8 +3,8 @@ declare enum ORACLE_TYPE {
SWITCHBOARD = 1,
ALL = 2
}
export type LISTING_PRESETS_KEY = "asset_250p" | "asset_100" | "asset_20" | "asset_10p" | "liab_5p" | "liab_5" | "liab_1" | "UNTRUSTED";
declare const asset_250p: {
export type LISTING_PRESETS_KEY = "asset_5000" | "asset_250" | "asset_100" | "asset_20" | "asset_10" | "liab_5" | "liab_3" | "liab_1" | "UNTRUSTED";
declare const asset_5000: {
maxStalenessSlots: number | null;
oracleConfFilter: number;
adjustmentFactor: number;
@ -47,7 +47,7 @@ declare const asset_250p: {
collateralFeePerDay: number;
disableAssetLiquidation: boolean;
};
export type LISTING_PRESET = typeof asset_250p;
export type LISTING_PRESET = typeof asset_5000;
export type ILISTING_PRESETS = typeof LISTING_PRESETS;
export declare const LISTING_PRESETS: {
[key in LISTING_PRESETS_KEY]: LISTING_PRESET;

View File

@ -11,7 +11,7 @@ var ORACLE_TYPE;
ORACLE_TYPE[ORACLE_TYPE["SWITCHBOARD"] = 1] = "SWITCHBOARD";
ORACLE_TYPE[ORACLE_TYPE["ALL"] = 2] = "ALL";
})(ORACLE_TYPE || (ORACLE_TYPE = {}));
const asset_250p = {
const asset_5000 = {
maxStalenessSlots: 250,
oracleConfFilter: 0.1,
adjustmentFactor: 0.004,
@ -29,13 +29,13 @@ const asset_250p = {
liquidationFee: 0.01,
minVaultToDepositsRatio: 0.2,
netBorrowLimitWindowSizeTs: 24 * 60 * 60,
netBorrowLimitPerWindowQuote: toNative(250000, 6).toNumber(),
netBorrowLimitPerWindowQuote: toNative(2000000, 6).toNumber(),
groupInsuranceFund: true,
borrowWeightScaleStartQuote: toNative(500000, 6).toNumber(),
depositWeightScaleStartQuote: toNative(500000, 6).toNumber(),
preset_key: "asset_250p",
preset_name: "AAA",
preset_target_amount: 250000,
borrowWeightScaleStartQuote: toNative(5000000, 6).toNumber(),
depositWeightScaleStartQuote: toNative(5000000, 6).toNumber(),
preset_key: "asset_5000",
preset_name: "S",
preset_target_amount: 5000000,
stablePriceDelayIntervalSeconds: 60 * 60,
stablePriceGrowthLimit: 0.0003,
stablePriceDelayGrowthLimit: 0.06,
@ -47,27 +47,29 @@ const asset_250p = {
interestTargetUtilization: 0.5,
depositLimit: 0,
oraclePriceBand: 1,
depositLimitNotional: 2000000,
oracle: ORACLE_TYPE.PYTH,
depositLimitNotional: 20000000,
oracle: ORACLE_TYPE.ALL,
zeroUtilRate: 0,
platformLiquidationFee: 0.04,
collateralFeePerDay: 0,
disableAssetLiquidation: false,
};
exports.LISTING_PRESETS = {
//Price impact on $5000,000 swap lower then 1%
asset_5000: Object.assign({}, asset_5000),
//Price impact on $250,000 swap lower then 1%
asset_250p: Object.assign({}, asset_250p),
asset_250: Object.assign(Object.assign({}, asset_5000), { netBorrowLimitPerWindowQuote: toNative(250000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(500000, 6).toNumber(), depositWeightScaleStartQuote: toNative(500000, 6).toNumber(), preset_key: "asset_250", preset_name: "AAA", preset_target_amount: 250000, depositLimitNotional: 2000000 }),
//Price impact on $100,000 swap lower then 1%
asset_100: Object.assign(Object.assign({}, asset_250p), { netBorrowLimitPerWindowQuote: toNative(125000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(250000, 6).toNumber(), depositWeightScaleStartQuote: toNative(250000, 6).toNumber(), preset_name: "AA", preset_key: "asset_100", preset_target_amount: 100000, loanFeeRate: 0.01, loanOriginationFeeRate: 0.001, oracle: ORACLE_TYPE.ALL, depositLimitNotional: 1000000 }),
asset_100: Object.assign(Object.assign({}, asset_5000), { netBorrowLimitPerWindowQuote: toNative(125000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(250000, 6).toNumber(), depositWeightScaleStartQuote: toNative(250000, 6).toNumber(), preset_name: "AA", preset_key: "asset_100", preset_target_amount: 100000, loanFeeRate: 0.01, loanOriginationFeeRate: 0.001, depositLimitNotional: 1000000 }),
//Price impact on $20,000 swap lower then 1%
asset_20: Object.assign(Object.assign({}, asset_250p), { maintAssetWeight: 0.75, initAssetWeight: 0.5, maintLiabWeight: 1.2, initLiabWeight: 1.4, liquidationFee: 0.08, loanFeeRate: 0.02, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(50000, 6).toNumber(), depositWeightScaleStartQuote: toNative(50000, 6).toNumber(), preset_name: "A", preset_key: "asset_20", preset_target_amount: 20000, loanOriginationFeeRate: 0.002, oracle: ORACLE_TYPE.ALL, depositLimitNotional: 200000, platformLiquidationFee: 0.02 }),
asset_10p: Object.assign(Object.assign({}, asset_250p), { maintAssetWeight: 0.5, initAssetWeight: 0.25, maintLiabWeight: 1.25, initLiabWeight: 1.5, liquidationFee: 0.08, loanFeeRate: 0.03, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(20000, 6).toNumber(), depositWeightScaleStartQuote: toNative(20000, 6).toNumber(), groupInsuranceFund: false, preset_name: "A-", preset_key: "asset_10p", preset_target_amount: 10000, loanOriginationFeeRate: 0.003, oracle: ORACLE_TYPE.PYTH, depositLimitNotional: 80000, platformLiquidationFee: 0.02 }),
liab_5p: Object.assign(Object.assign({}, asset_250p), { loanOriginationFeeRate: 0.004, maintAssetWeight: 0, initAssetWeight: 0, loanFeeRate: 0.04, maintLiabWeight: 1.25, initLiabWeight: 1.5, liquidationFee: 0.06, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(20000, 6).toNumber(), depositWeightScaleStartQuote: toNative(20000, 6).toNumber(), groupInsuranceFund: false, preset_name: "BBB", preset_key: "liab_5p", preset_target_amount: 5000, oracle: ORACLE_TYPE.PYTH, depositLimitNotional: 200000, platformLiquidationFee: 0.04 }),
asset_20: Object.assign(Object.assign({}, asset_5000), { maintAssetWeight: 0.75, initAssetWeight: 0.5, maintLiabWeight: 1.2, initLiabWeight: 1.4, liquidationFee: 0.02, loanFeeRate: 0.02, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(50000, 6).toNumber(), depositWeightScaleStartQuote: toNative(50000, 6).toNumber(), preset_name: "A", preset_key: "asset_20", preset_target_amount: 20000, loanOriginationFeeRate: 0.002, depositLimitNotional: 200000, platformLiquidationFee: 0.08 }),
asset_10: Object.assign(Object.assign({}, asset_5000), { maintAssetWeight: 0.5, initAssetWeight: 0.25, maintLiabWeight: 1.25, initLiabWeight: 1.5, liquidationFee: 0.02, loanFeeRate: 0.03, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(20000, 6).toNumber(), depositWeightScaleStartQuote: toNative(20000, 6).toNumber(), groupInsuranceFund: false, preset_name: "A-", preset_key: "asset_10", preset_target_amount: 10000, loanOriginationFeeRate: 0.003, depositLimitNotional: 80000, platformLiquidationFee: 0.08 }),
liab_5: Object.assign(Object.assign({}, asset_5000), { loanOriginationFeeRate: 0.004, maintAssetWeight: 0, initAssetWeight: 0, loanFeeRate: 0.04, maintLiabWeight: 1.25, initLiabWeight: 1.5, liquidationFee: 0.04, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(20000, 6).toNumber(), depositWeightScaleStartQuote: toNative(20000, 6).toNumber(), groupInsuranceFund: false, preset_name: "BBB", preset_key: "liab_5", preset_target_amount: 5000, depositLimitNotional: 200000, platformLiquidationFee: 0.06 }),
//Price impact on $1,000 swap lower then 1%
liab_5: Object.assign(Object.assign({}, asset_250p), { loanFeeRate: 0.05, loanOriginationFeeRate: 0.005, maintAssetWeight: 0, initAssetWeight: 0, maintLiabWeight: 1.3, initLiabWeight: 1.6, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(20000, 6).toNumber(), depositWeightScaleStartQuote: toNative(20000, 6).toNumber(), groupInsuranceFund: false, preset_name: "BB", preset_key: "liab_5", preset_target_amount: 5000, maxStalenessSlots: 1000, oracleConfFilter: 1000, oracle: ORACLE_TYPE.ALL, depositLimitNotional: 200000, liquidationFee: 0.06, platformLiquidationFee: 0.04 }),
liab_1: Object.assign(Object.assign({}, asset_250p), { loanFeeRate: 0.075, loanOriginationFeeRate: 0.0075, maintAssetWeight: 0, initAssetWeight: 0, maintLiabWeight: 1.4, initLiabWeight: 1.8, liquidationFee: 0.06, platformLiquidationFee: 0.04, netBorrowLimitPerWindowQuote: toNative(15000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(5000, 6).toNumber(), depositWeightScaleStartQuote: toNative(5000, 6).toNumber(), groupInsuranceFund: false, preset_name: "B", preset_key: "liab_1", preset_target_amount: 1000, maxStalenessSlots: 1000, oracleConfFilter: 1000, oracle: ORACLE_TYPE.ALL, depositLimitNotional: 200000 }),
liab_3: Object.assign(Object.assign({}, asset_5000), { loanFeeRate: 0.05, loanOriginationFeeRate: 0.005, maintAssetWeight: 0, initAssetWeight: 0, maintLiabWeight: 1.3, initLiabWeight: 1.6, netBorrowLimitPerWindowQuote: toNative(50000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(20000, 6).toNumber(), depositWeightScaleStartQuote: toNative(20000, 6).toNumber(), groupInsuranceFund: false, preset_name: "BB", preset_key: "liab_3", preset_target_amount: 3000, maxStalenessSlots: 1000, oracleConfFilter: 1000, depositLimitNotional: 200000, liquidationFee: 0.04, platformLiquidationFee: 0.06 }),
liab_1: Object.assign(Object.assign({}, asset_5000), { loanFeeRate: 0.075, loanOriginationFeeRate: 0.0075, maintAssetWeight: 0, initAssetWeight: 0, maintLiabWeight: 1.4, initLiabWeight: 1.8, liquidationFee: 0.04, platformLiquidationFee: 0.06, netBorrowLimitPerWindowQuote: toNative(15000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(5000, 6).toNumber(), depositWeightScaleStartQuote: toNative(5000, 6).toNumber(), groupInsuranceFund: false, preset_name: "B", preset_key: "liab_1", preset_target_amount: 1000, maxStalenessSlots: 1000, oracleConfFilter: 1000, depositLimitNotional: 200000 }),
//should run untrusted, instruction preset should be named C
UNTRUSTED: Object.assign(Object.assign({}, asset_250p), { loanFeeRate: 0.005, loanOriginationFeeRate: 0.0075, maintAssetWeight: 0, initAssetWeight: 0, maintLiabWeight: 1.4, initLiabWeight: 1.8, liquidationFee: 0.06, platformLiquidationFee: 0.04, netBorrowLimitPerWindowQuote: toNative(5000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(5000, 6).toNumber(), depositWeightScaleStartQuote: toNative(5000, 6).toNumber(), groupInsuranceFund: false, preset_name: "C", preset_key: "UNTRUSTED", preset_target_amount: 0, maxStalenessSlots: -1, oracleConfFilter: 1000, depositLimitNotional: 0, oracle: ORACLE_TYPE.ALL, reduceOnly: 2, oraclePriceBand: 19, disableAssetLiquidation: true }),
UNTRUSTED: Object.assign(Object.assign({}, asset_5000), { loanFeeRate: 0.005, loanOriginationFeeRate: 0.0075, maintAssetWeight: 0, initAssetWeight: 0, maintLiabWeight: 1.4, initLiabWeight: 1.8, liquidationFee: 0.01, platformLiquidationFee: 0, netBorrowLimitPerWindowQuote: toNative(5000, 6).toNumber(), borrowWeightScaleStartQuote: toNative(5000, 6).toNumber(), depositWeightScaleStartQuote: toNative(5000, 6).toNumber(), groupInsuranceFund: false, preset_name: "C", preset_key: "UNTRUSTED", preset_target_amount: 0, maxStalenessSlots: -1, oracleConfFilter: 1000, depositLimitNotional: 0, reduceOnly: 2, oraclePriceBand: 19, disableAssetLiquidation: true }),
};
// definitions:
// baseLots = 10 ^ baseLotExponent
@ -144,12 +146,13 @@ function toNative(uiAmount, decimals) {
return new bn_js_1.default((uiAmount * Math.pow(10, decimals)).toFixed(0));
}
exports.coinTiersToNames = {
asset_250p: "AAA",
asset_5000: "S",
asset_250: "AAA",
asset_100: "AA",
asset_20: "A",
asset_10p: "A-",
liab_5p: "BBB",
liab_5: "BB",
asset_10: "A-",
liab_5: "BBB",
liab_3: "BB",
liab_1: "B",
UNTRUSTED: "C",
};

View File

@ -400,11 +400,8 @@ export const getKeyForPriceImpact = (
export const getProposedKey = (
priceImpactTargetAmount: number | undefined,
isPythOracle: boolean,
): LISTING_PRESETS_KEY => {
const filtredPresets = isPythOracle
? getPythPresets(LISTING_PRESETS)
: getSwitchBoardPresets(LISTING_PRESETS);
const filtredPresets = LISTING_PRESETS;
const liquidityTier =
priceImpactTargetAmount !== undefined
? getKeyForPriceImpact(filtredPresets, priceImpactTargetAmount)
@ -415,9 +412,8 @@ export const getProposedKey = (
export const getProposedPreset = (
priceImpactTargetAmount: number | undefined,
isPythOracle: boolean,
): LISTING_PRESET => {
return LISTING_PRESETS[getProposedKey(priceImpactTargetAmount, isPythOracle)];
return LISTING_PRESETS[getProposedKey(priceImpactTargetAmount)];
};
export const getPresetWithAdjustedDepositLimit = (
@ -435,32 +431,6 @@ export const getPresetWithAdjustedDepositLimit = (
};
};
export function getSwitchBoardPresets(
presets: ILISTING_PRESETS,
): ILISTING_PRESETS {
const filteredPresets = {} as ILISTING_PRESETS;
for (const [key, preset] of Object.entries(presets)) {
if (preset.oracle !== ORACLE_TYPE.PYTH) {
filteredPresets[key as keyof ILISTING_PRESETS] = preset;
}
}
return filteredPresets;
}
export function getPythPresets(presets: ILISTING_PRESETS): ILISTING_PRESETS {
const filteredPresets = {} as ILISTING_PRESETS;
for (const [key, preset] of Object.entries(presets)) {
if (preset.preset_key !== "liab_5") {
filteredPresets[key as keyof ILISTING_PRESETS] = preset;
}
}
return filteredPresets;
}
export type PriceImpact = {
symbol: string;
side: "bid" | "ask";