remove oracle diffrences
This commit is contained in:
parent
b9745ec5a7
commit
83c2907285
|
@ -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;
|
||||
|
|
|
@ -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",
|
||||
};
|
||||
|
|
|
@ -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";
|
||||
|
|
Loading…
Reference in New Issue