From 1e30369e698cb939e8856e12f92b4bd46963230e Mon Sep 17 00:00:00 2001 From: brimigs Date: Thu, 29 Jun 2023 17:29:36 -0400 Subject: [PATCH 1/8] add execute msgs for params deployment --- scripts/deploy/base/deployer.ts | 109 ++++++++++++++++++++------------ scripts/deploy/base/index.ts | 7 +- scripts/types/config.ts | 55 ++++++++++++---- scripts/types/storageItems.ts | 4 +- 4 files changed, 118 insertions(+), 57 deletions(-) diff --git a/scripts/deploy/base/deployer.ts b/scripts/deploy/base/deployer.ts index 8f925e11..4051d732 100644 --- a/scripts/deploy/base/deployer.ts +++ b/scripts/deploy/base/deployer.ts @@ -1,4 +1,10 @@ -import { AssetConfig, DeploymentConfig, OracleConfig, isAstroportRoute } from '../../types/config' +import { + AssetConfig, + DeploymentConfig, + OracleConfig, + isAstroportRoute, + VaultConfig, +} from '../../types/config' import { SigningCosmWasmClient } from '@cosmjs/cosmwasm-stargate' import * as fs from 'fs' import { printBlue, printGreen, printRed, printYellow } from '../../utils/chalk' @@ -12,6 +18,7 @@ import { SwapperExecuteMsg } from '../../types/config' import { InstantiateMsg as AstroportSwapperInstantiateMsg } from '../../types/generated/mars-swapper-astroport/MarsSwapperAstroport.types' import { InstantiateMsg as OsmosisSwapperInstantiateMsg } from '../../types/generated/mars-swapper-osmosis/MarsSwapperOsmosis.types' import { InstantiateMsg as ParamsInstantiateMsg } from '../../types/generated/mars-params/MarsParams.types' +import { ExecuteMsg as ParamsExecuteMsg } from '../../types/generated/mars-params/MarsParams.types' import { InstantiateMsg as RedBankInstantiateMsg, QueryMsg as RedBankQueryMsg, @@ -119,7 +126,6 @@ export class Deployer { owner: this.deployerAddress, config: { address_provider: this.storage.addresses['address-provider']!, - close_factor: '0.5', }, } await this.instantiate('red-bank', this.storage.codeIds['red-bank']!, msg) @@ -174,6 +180,65 @@ export class Deployer { await this.instantiate('params', this.storage.codeIds.params!, msg) } + async updateAssetParams(assetConfig: AssetConfig) { + if (this.storage.execute.assetsUpdated.includes(assetConfig.denom)) { + printBlue(`${assetConfig.symbol} already updated in Params contract`) + return + } + printBlue(`Updating ${assetConfig.symbol}...`) + + const msg = { + update_asset_params: { + add_or_update: { + params: { + credit_manager: { + whitelisted: assetConfig.credit_manager.whitelisted, + }, + denom: assetConfig.denom, + liquidation_bonus: assetConfig.liquidation_bonus, + liquidation_threshold: assetConfig.liquidation_threshold, + protocol_liquidation_fee: assetConfig.protocol_liquidation_fee, + max_loan_to_value: assetConfig.max_loan_to_value, + red_bank: { + borrow_enabled: assetConfig.red_bank.borrow_enabled, + deposit_enabled: assetConfig.red_bank.borrow_enabled, + deposit_cap: assetConfig.red_bank.deposit_cap, + }, + }, + }, + }, + } + + await this.client.execute(this.deployerAddress, this.storage.addresses['params']!, msg, 'auto') + + printYellow(`${assetConfig.symbol} updated.`) + } + + async updateVaultConfig(vaultConfig: VaultConfig) { + if (this.storage.execute.vaultsUpdated.includes(vaultConfig.addr)) { + printBlue(`${vaultConfig.symbol} already updated in Params contract`) + return + } + printBlue(`Updating ${vaultConfig.symbol}...`) + + const msg: ParamsExecuteMsg = { + update_vault_config: { + add_or_update: { + config: { + addr: vaultConfig.addr, + deposit_cap: vaultConfig.deposit_cap, + liquidation_threshold: vaultConfig.liquidation_threshold, + whitelisted: vaultConfig.whitelisted, + max_loan_to_value: vaultConfig.max_loan_to_value, + }, + }, + }, + } + + await this.client.execute(this.deployerAddress, this.storage.addresses['params']!, msg, 'auto') + + printYellow(`${vaultConfig.symbol} updated.`) + } async setRoutes() { printBlue('Setting Swapper Routes') for (const route of this.config.swapRoutes) { @@ -257,46 +322,6 @@ export class Deployer { printGreen('Address Provider update completed') } - async initializeAsset(assetConfig: AssetConfig) { - if (this.storage.execute.assetsInitialized.includes(assetConfig.denom)) { - printBlue(`${assetConfig.symbol} already initialized.`) - return - } - printBlue(`Initializing ${assetConfig.symbol}...`) - - const msg = { - init_asset: { - denom: assetConfig.denom, - params: { - max_loan_to_value: assetConfig.max_loan_to_value, - reserve_factor: assetConfig.reserve_factor, - liquidation_threshold: assetConfig.liquidation_threshold, - liquidation_bonus: assetConfig.liquidation_bonus, - interest_rate_model: { - optimal_utilization_rate: assetConfig.interest_rate_model.optimal_utilization_rate, - base: assetConfig.interest_rate_model.base, - slope_1: assetConfig.interest_rate_model.slope_1, - slope_2: assetConfig.interest_rate_model.slope_2, - }, - deposit_cap: assetConfig.deposit_cap, - deposit_enabled: assetConfig.deposit_enabled, - borrow_enabled: assetConfig.borrow_enabled, - }, - }, - } - - await this.client.execute( - this.deployerAddress, - this.storage.addresses['red-bank']!, - msg, - 'auto', - ) - - printYellow(`${assetConfig.symbol} initialized`) - - this.storage.execute.assetsInitialized.push(assetConfig.denom) - } - async recordTwapSnapshots(denoms: string[]) { const msg: WasmOracleExecuteMsg = { custom: { diff --git a/scripts/deploy/base/index.ts b/scripts/deploy/base/index.ts index f645ecbc..a1ca1f11 100644 --- a/scripts/deploy/base/index.ts +++ b/scripts/deploy/base/index.ts @@ -31,10 +31,13 @@ export const taskRunner = async (config: DeploymentConfig) => { // setup await deployer.updateAddressProvider() - await deployer.setRoutes() for (const asset of config.assets) { - await deployer.initializeAsset(asset) + await deployer.updateAssetParams(asset) + } + for (const vault of config.vaults) { + await deployer.updateVaultConfig(vault) } + await deployer.setRoutes() for (const oracleConfig of config.oracleConfigs) { await deployer.setOracle(oracleConfig) } diff --git a/scripts/types/config.ts b/scripts/types/config.ts index dff2f6b9..cff43162 100644 --- a/scripts/types/config.ts +++ b/scripts/types/config.ts @@ -5,6 +5,13 @@ import { WasmOracleCustomInitParams, WasmPriceSourceForString, } from './generated/mars-oracle-wasm/MarsOracleWasm.types' +import { + Coin, + Decimal, + HlsAssetTypeForString, + HlsParamsBaseForString, + Uint128, +} from './generated/mars-params/MarsParams.types' type SwapRoute = { denom_in: string @@ -52,6 +59,7 @@ export interface DeploymentConfig { targetHealthFactor: string swapperDexName: string assets: AssetConfig[] + vaults: VaultConfig[] oracleConfigs: OracleConfig[] oracleCustomInitParams?: WasmOracleCustomInitParams incentiveEpochDuration: number @@ -59,23 +67,48 @@ export interface DeploymentConfig { } export interface AssetConfig { + credit_manager: { + whitelisted: boolean + } + symbol: string denom: string - max_loan_to_value: string - reserve_factor: string - liquidation_threshold: string liquidation_bonus: string - interest_rate_model: { - optimal_utilization_rate: string - base: string - slope_1: string - slope_2: string + liquidation_threshold: string + max_loan_to_value: string + protocol_liquidation_fee: Decimal + red_bank: { + borrow_enabled: boolean + deposit_cap: Uint128 + deposit_enabled: boolean } - deposit_cap: string - deposit_enabled: boolean - borrow_enabled: boolean +} + +export interface VaultConfig { + addr: string symbol: string + deposit_cap: Coin + hls?: { + correlations: HlsAssetTypeForString + liquidation_threshold: Decimal + max_loan_to_value: Decimal + } + liquidation_threshold: Decimal + max_loan_to_value: Decimal + whitelisted: boolean } +export type HlsAssetTypeForString = + | { + coin: { + denom: string + } + } + | { + vault: { + addr: string + } + } + export interface OracleConfig { denom: string price_source: OsmosisPriceSourceForString | WasmPriceSourceForString diff --git a/scripts/types/storageItems.ts b/scripts/types/storageItems.ts index 48e36159..f5a13475 100644 --- a/scripts/types/storageItems.ts +++ b/scripts/types/storageItems.ts @@ -20,8 +20,8 @@ export interface StorageItems { execute: { addressProviderUpdated: Record - assetsInitialized: string[] - secondAssetInitialized?: boolean + assetsUpdated: string[] + vaultsUpdated: string[] oraclePriceSet?: boolean smokeTest?: boolean } From fb4af36fc977af291a17eb388511a107ada5db3d Mon Sep 17 00:00:00 2001 From: brimigs Date: Thu, 29 Jun 2023 18:15:30 -0400 Subject: [PATCH 2/8] update configs --- scripts/deploy/neutron/config.ts | 72 +++++++------- scripts/deploy/osmosis/config.ts | 166 ++++++++++++------------------- scripts/types/config.ts | 2 +- 3 files changed, 100 insertions(+), 140 deletions(-) diff --git a/scripts/deploy/neutron/config.ts b/scripts/deploy/neutron/config.ts index a57b70d5..0d7e1451 100644 --- a/scripts/deploy/neutron/config.ts +++ b/scripts/deploy/neutron/config.ts @@ -12,59 +12,54 @@ const safetyFundAddr = 'mars1s4hgh56can3e33e0zqpnjxh0t5wdf7u3pze575' const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' export const ntrnAsset: AssetConfig = { + credit_manager: { + whitelisted: true + }, + symbol: 'NTRM', denom: 'untrn', - max_loan_to_value: '0.59', - reserve_factor: '0.2', - liquidation_threshold: '0.61', liquidation_bonus: '0.15', - interest_rate_model: { - optimal_utilization_rate: '0.6', - base: '0', - slope_1: '0.15', - slope_2: '3', - }, - deposit_cap: '2500000000000', - deposit_enabled: true, - borrow_enabled: true, - symbol: 'NTRN', + liquidation_threshold: '0.61', + max_loan_to_value: '0.59', + red_bank: { + borrow_enabled: true, + deposit_cap: '2500000000000', + deposit_enabled: true, + } } export const atomAsset: AssetConfig = { - denom: atomTestnet, - max_loan_to_value: '0.68', - reserve_factor: '0.2', - liquidation_threshold: '0.7', - liquidation_bonus: '0.15', - interest_rate_model: { - optimal_utilization_rate: '0.6', - base: '0', - slope_1: '0.15', - slope_2: '3', + credit_manager: { + whitelisted: true }, - deposit_cap: '100000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'ATOM', + denom: atomTestnet, + liquidation_bonus: '0.15', + liquidation_threshold: '0.7', + max_loan_to_value: '0.68', + red_bank: { + borrow_enabled: true, + deposit_cap: '100000000000', + deposit_enabled: true, + } } export const axlUSDCAsset: AssetConfig = { denom: axlUSDCTestnet, - max_loan_to_value: '0.74', - reserve_factor: '0.2', - liquidation_threshold: '0.75', - liquidation_bonus: '0.1', - interest_rate_model: { - optimal_utilization_rate: '0.8', - base: '0', - slope_1: '0.2', - slope_2: '2', + credit_manager: { + whitelisted: true }, - deposit_cap: '500000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'axlUSDC', + liquidation_bonus: '0.1', + liquidation_threshold: '0.75', + max_loan_to_value: '0.74', + red_bank: { + borrow_enabled: true, + deposit_cap: '500000000000', + deposit_enabled: true, + } } + export const ntrnOracleTestnet: OracleConfig = { denom: 'untrn', price_source: { @@ -200,6 +195,7 @@ export const neutronTestnetConfig: DeploymentConfig = { feeCollectorAddr: feeCollectorAddr, swapperDexName: 'astroport', assets: [ntrnAsset, atomAsset], + vaults: [], oracleConfigs: [axlUSDCOracleTestnet, ntrnOracleTestnet, atomOracleTestnet], targetHealthFactor: '1.2', oracleCustomInitParams: { diff --git a/scripts/deploy/osmosis/config.ts b/scripts/deploy/osmosis/config.ts index b3070b46..cdeb807f 100644 --- a/scripts/deploy/osmosis/config.ts +++ b/scripts/deploy/osmosis/config.ts @@ -1,13 +1,13 @@ import { DeploymentConfig, AssetConfig, OracleConfig } from '../../types/config' // Note: since osmo-test-5 upgrade, testnet and mainnet denoms are no longer the same. Reference asset info here: https://docs.osmosis.zone/osmosis-core/asset-info/ -// const uosmo = 'uosmo' -// const uatom = 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477' -// const aUSDC = 'ibc/6F34E1BD664C36CE49ACC28E60D62559A5F96C4F9A6CCE4FC5A67B2852E24CFE' // axelar -// const nUSDC = 'ibc/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4' // noble -// const atom_osmo = 'gamm/pool/12' -// const nUSDC_osmo = 'gamm/pool/6' -// const aUSDC_osmo = 'gamm/pool/5' +const uosmo = 'uosmo' +const uatom = 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477' +const aUSDC = 'ibc/6F34E1BD664C36CE49ACC28E60D62559A5F96C4F9A6CCE4FC5A67B2852E24CFE' // axelar +const nUSDC = 'ibc/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4' // noble +const atom_osmo = 'gamm/pool/12' +const nUSDC_osmo = 'gamm/pool/6' +const aUSDC_osmo = 'gamm/pool/5' // Mainnet: const axlUSDC = 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858' @@ -24,118 +24,85 @@ const marsOsmoPool = 907 // const marsOsmoPoolTest = 9 export const osmoAsset: AssetConfig = { - denom: 'uosmo', - max_loan_to_value: '0.59', - reserve_factor: '0.2', - liquidation_threshold: '0.61', - liquidation_bonus: '0.15', - interest_rate_model: { - optimal_utilization_rate: '0.6', - base: '0', - slope_1: '0.15', - slope_2: '3', + credit_manager: { + whitelisted: true }, - deposit_cap: '2500000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'OSMO', + denom: 'uosmo', + liquidation_bonus: '0.15', + liquidation_threshold: '0.61', + max_loan_to_value: '0.59', + red_bank: { + borrow_enabled: true, + deposit_cap: '2500000000000', + deposit_enabled: true, + } } export const atomAsset: AssetConfig = { - denom: atom, - max_loan_to_value: '0.68', - reserve_factor: '0.2', - liquidation_threshold: '0.7', - liquidation_bonus: '0.15', - interest_rate_model: { - optimal_utilization_rate: '0.6', - base: '0', - slope_1: '0.15', - slope_2: '3', + credit_manager: { + whitelisted: true }, - deposit_cap: '100000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'ATOM', + denom: atom, + liquidation_bonus: '0.15', + liquidation_threshold: '0.7', + max_loan_to_value: '0.68', + red_bank: { + borrow_enabled: true, + deposit_cap: '100000000000', + deposit_enabled: true, + } } export const atomAssetTest: AssetConfig = { - denom: atomTest, - max_loan_to_value: '0.68', - reserve_factor: '0.2', - liquidation_threshold: '0.7', - liquidation_bonus: '0.15', - interest_rate_model: { - optimal_utilization_rate: '0.6', - base: '0', - slope_1: '0.15', - slope_2: '3', + credit_manager: { + whitelisted: true }, - deposit_cap: '100000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'ATOM', + denom: atomTest, + liquidation_bonus: '0.15', + liquidation_threshold: '0.7', + max_loan_to_value: '0.68', + red_bank: { + borrow_enabled: true, + deposit_cap: '100000000000', + deposit_enabled: true, + } } export const axlUSDCAsset: AssetConfig = { - denom: axlUSDC, - max_loan_to_value: '0.74', - reserve_factor: '0.2', - liquidation_threshold: '0.75', - liquidation_bonus: '0.1', - interest_rate_model: { - optimal_utilization_rate: '0.8', - base: '0', - slope_1: '0.2', - slope_2: '2', + credit_manager: { + whitelisted: true }, - deposit_cap: '500000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'axlUSDC', + denom: axlUSDC, + liquidation_bonus: '0.1', + liquidation_threshold: '0.75', + max_loan_to_value: '0.74', + red_bank: { + borrow_enabled: true, + deposit_cap: '500000000000', + deposit_enabled: true, + } } export const axlUSDCAssetTest: AssetConfig = { - denom: usdcTest, - max_loan_to_value: '0.74', - reserve_factor: '0.2', - liquidation_threshold: '0.75', - liquidation_bonus: '0.1', - interest_rate_model: { - optimal_utilization_rate: '0.8', - base: '0', - slope_1: '0.2', - slope_2: '2', + credit_manager: { + whitelisted: true }, - deposit_cap: '500000000000', - deposit_enabled: true, - borrow_enabled: true, symbol: 'axlUSDC', -} - -export const marsAssetTest: AssetConfig = { - denom: marsTest, - max_loan_to_value: '0.74', - reserve_factor: '0.2', - liquidation_threshold: '0.75', + denom: aUSDC, liquidation_bonus: '0.1', - interest_rate_model: { - optimal_utilization_rate: '0.8', - base: '0', - slope_1: '0.2', - slope_2: '2', - }, - deposit_cap: '500000000000', - deposit_enabled: true, - borrow_enabled: true, - symbol: 'mars', + liquidation_threshold: '0.75', + max_loan_to_value: '0.74', + red_bank: { + borrow_enabled: true, + deposit_cap: '500000000000', + deposit_enabled: true, + } } -// export const osmoOracle: OracleConfig = { -// denom: 'uosmo', -// price: '1', -// } - export const atomOracle: OracleConfig = { denom: 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2', price_source: { @@ -147,13 +114,6 @@ export const atomOracle: OracleConfig = { }, } -// export const atomOracleTest: OracleConfig = { -// denom: atomTest, -// pool_id: 'TBD', -// window_size: 1800, -// downtime_detector: { downtime: 'duration30m', recovery: 7200 }, -// } - export const axlUSDCOracle: OracleConfig = { denom: 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858', price_source: { @@ -217,6 +177,7 @@ export const osmosisTestnetConfig: DeploymentConfig = { feeCollectorAddr: feeCollectorAddr, swapperDexName: 'osmosis', assets: [osmoAsset, atomAsset, axlUSDCAsset], + vaults: [], oracleConfigs: [atomOracle, axlUSDCOracle], targetHealthFactor: '1.2', incentiveEpochDuration: 86400, @@ -254,6 +215,7 @@ export const osmosisTestMultisig: DeploymentConfig = { feeCollectorAddr: feeCollectorAddr, swapperDexName: 'osmosis', assets: [osmoAsset, atomAsset, axlUSDCAsset], + vaults: [], oracleConfigs: [atomOracle, axlUSDCOracle], targetHealthFactor: '1.2', incentiveEpochDuration: 86400, @@ -318,6 +280,7 @@ export const osmosisMainnet: DeploymentConfig = { feeCollectorAddr: feeCollectorAddr, swapperDexName: 'osmosis', assets: [osmoAsset, atomAsset, axlUSDCAsset], + vaults: [], oracleConfigs: [atomOracle, axlUSDCOracle], targetHealthFactor: '1.2', incentiveEpochDuration: 86400, @@ -353,6 +316,7 @@ export const osmosisLocalConfig: DeploymentConfig = { feeCollectorAddr: feeCollectorAddr, swapperDexName: 'osmosis', assets: [osmoAsset, atomAsset, axlUSDCAsset], + vaults: [], oracleConfigs: [atomOracle, axlUSDCOracle], targetHealthFactor: '1.2', incentiveEpochDuration: 86400, diff --git a/scripts/types/config.ts b/scripts/types/config.ts index cff43162..0e8a0475 100644 --- a/scripts/types/config.ts +++ b/scripts/types/config.ts @@ -75,7 +75,7 @@ export interface AssetConfig { liquidation_bonus: string liquidation_threshold: string max_loan_to_value: string - protocol_liquidation_fee: Decimal + protocol_liquidation_fee?: Decimal red_bank: { borrow_enabled: boolean deposit_cap: Uint128 From 65a89583a8a18cf227319194870a6ecb13639315 Mon Sep 17 00:00:00 2001 From: brimigs Date: Thu, 29 Jun 2023 19:14:23 -0400 Subject: [PATCH 3/8] clean up configs --- scripts/deploy/base/index.ts | 2 +- scripts/deploy/neutron/config.ts | 15 +- scripts/deploy/osmosis/config.ts | 324 ------------------------ scripts/deploy/osmosis/mainIndex.ts | 2 +- scripts/deploy/osmosis/mainnetConfig.ts | 188 ++++++++++++++ scripts/deploy/osmosis/multisig.ts | 2 +- scripts/deploy/osmosis/testIndex.ts | 2 +- scripts/deploy/osmosis/testnetConfig.ts | 171 +++++++++++++ scripts/types/config.ts | 3 +- 9 files changed, 371 insertions(+), 338 deletions(-) delete mode 100644 scripts/deploy/osmosis/config.ts create mode 100644 scripts/deploy/osmosis/mainnetConfig.ts create mode 100644 scripts/deploy/osmosis/testnetConfig.ts diff --git a/scripts/deploy/base/index.ts b/scripts/deploy/base/index.ts index a1ca1f11..1f7a3396 100644 --- a/scripts/deploy/base/index.ts +++ b/scripts/deploy/base/index.ts @@ -13,7 +13,7 @@ export const taskRunner = async (config: DeploymentConfig) => { await deployer.upload('red-bank', 'mars_red_bank.wasm') await deployer.upload('address-provider', 'mars_address_provider.wasm') await deployer.upload('incentives', 'mars_incentives.wasm') - await deployer.upload('oracle', `mars_oracle_${config.oracleName}.wasm`) + await deployer.upload('oracle', `mars_oracle_${config.chainName}.wasm`) await deployer.upload('rewards-collector', `mars_rewards_collector.wasm`) await deployer.upload('params', `mars_params.wasm`) await deployer.upload('swapper', `mars_swapper_${config.swapperDexName}.wasm`) diff --git a/scripts/deploy/neutron/config.ts b/scripts/deploy/neutron/config.ts index 0d7e1451..524fd4b0 100644 --- a/scripts/deploy/neutron/config.ts +++ b/scripts/deploy/neutron/config.ts @@ -13,7 +13,7 @@ const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' export const ntrnAsset: AssetConfig = { credit_manager: { - whitelisted: true + whitelisted: true, }, symbol: 'NTRM', denom: 'untrn', @@ -24,12 +24,12 @@ export const ntrnAsset: AssetConfig = { borrow_enabled: true, deposit_cap: '2500000000000', deposit_enabled: true, - } + }, } export const atomAsset: AssetConfig = { credit_manager: { - whitelisted: true + whitelisted: true, }, symbol: 'ATOM', denom: atomTestnet, @@ -40,13 +40,13 @@ export const atomAsset: AssetConfig = { borrow_enabled: true, deposit_cap: '100000000000', deposit_enabled: true, - } + }, } export const axlUSDCAsset: AssetConfig = { denom: axlUSDCTestnet, credit_manager: { - whitelisted: true + whitelisted: true, }, symbol: 'axlUSDC', liquidation_bonus: '0.1', @@ -56,10 +56,9 @@ export const axlUSDCAsset: AssetConfig = { borrow_enabled: true, deposit_cap: '500000000000', deposit_enabled: true, - } + }, } - export const ntrnOracleTestnet: OracleConfig = { denom: 'untrn', price_source: { @@ -94,7 +93,7 @@ export const axlUSDCOracleTestnet: OracleConfig = { } export const neutronTestnetConfig: DeploymentConfig = { - oracleName: 'wasm', + chainName: 'wasm', atomDenom: atomTestnet, baseAssetDenom: 'untrn', gasPrice: '0untrn', diff --git a/scripts/deploy/osmosis/config.ts b/scripts/deploy/osmosis/config.ts deleted file mode 100644 index cdeb807f..00000000 --- a/scripts/deploy/osmosis/config.ts +++ /dev/null @@ -1,324 +0,0 @@ -import { DeploymentConfig, AssetConfig, OracleConfig } from '../../types/config' - -// Note: since osmo-test-5 upgrade, testnet and mainnet denoms are no longer the same. Reference asset info here: https://docs.osmosis.zone/osmosis-core/asset-info/ -const uosmo = 'uosmo' -const uatom = 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477' -const aUSDC = 'ibc/6F34E1BD664C36CE49ACC28E60D62559A5F96C4F9A6CCE4FC5A67B2852E24CFE' // axelar -const nUSDC = 'ibc/B3504E092456BA618CC28AC671A71FB08C6CA0FD0BE7C8A5B5A3E2DD933CC9E4' // noble -const atom_osmo = 'gamm/pool/12' -const nUSDC_osmo = 'gamm/pool/6' -const aUSDC_osmo = 'gamm/pool/5' - -// Mainnet: -const axlUSDC = 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858' -const usdcTest = 'ibc/6F34E1BD664C36CE49ACC28E60D62559A5F96C4F9A6CCE4FC5A67B2852E24CFE' -const atomTest = 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477' -const atom = 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2' -const marsTest = 'ibc/2E7368A14AC9AB7870F32CFEA687551C5064FA861868EDF7437BC877358A81F9' -const mars = 'ibc/573FCD90FACEE750F55A8864EF7D38265F07E5A9273FA0E8DAFD39951332B580' -// note the following three addresses are all 'mars' bech32 prefix -const safetyFundAddr = 'mars1s4hgh56can3e33e0zqpnjxh0t5wdf7u3pze575' -const protocolAdminAddr = 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n' -const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' -const marsOsmoPool = 907 -// const marsOsmoPoolTest = 9 - -export const osmoAsset: AssetConfig = { - credit_manager: { - whitelisted: true - }, - symbol: 'OSMO', - denom: 'uosmo', - liquidation_bonus: '0.15', - liquidation_threshold: '0.61', - max_loan_to_value: '0.59', - red_bank: { - borrow_enabled: true, - deposit_cap: '2500000000000', - deposit_enabled: true, - } -} - -export const atomAsset: AssetConfig = { - credit_manager: { - whitelisted: true - }, - symbol: 'ATOM', - denom: atom, - liquidation_bonus: '0.15', - liquidation_threshold: '0.7', - max_loan_to_value: '0.68', - red_bank: { - borrow_enabled: true, - deposit_cap: '100000000000', - deposit_enabled: true, - } -} - -export const atomAssetTest: AssetConfig = { - credit_manager: { - whitelisted: true - }, - symbol: 'ATOM', - denom: atomTest, - liquidation_bonus: '0.15', - liquidation_threshold: '0.7', - max_loan_to_value: '0.68', - red_bank: { - borrow_enabled: true, - deposit_cap: '100000000000', - deposit_enabled: true, - } -} - -export const axlUSDCAsset: AssetConfig = { - credit_manager: { - whitelisted: true - }, - symbol: 'axlUSDC', - denom: axlUSDC, - liquidation_bonus: '0.1', - liquidation_threshold: '0.75', - max_loan_to_value: '0.74', - red_bank: { - borrow_enabled: true, - deposit_cap: '500000000000', - deposit_enabled: true, - } -} - -export const axlUSDCAssetTest: AssetConfig = { - credit_manager: { - whitelisted: true - }, - symbol: 'axlUSDC', - denom: aUSDC, - liquidation_bonus: '0.1', - liquidation_threshold: '0.75', - max_loan_to_value: '0.74', - red_bank: { - borrow_enabled: true, - deposit_cap: '500000000000', - deposit_enabled: true, - } -} - -export const atomOracle: OracleConfig = { - denom: 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2', - price_source: { - geometric_twap: { - pool_id: 1, - window_size: 1800, - downtime_detector: { downtime: 'duration30m', recovery: 7200 }, - }, - }, -} - -export const axlUSDCOracle: OracleConfig = { - denom: 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858', - price_source: { - geometric_twap: { - pool_id: 678, - window_size: 1800, - downtime_detector: { downtime: 'duration30m', recovery: 7200 }, - }, - }, -} - -export const axlUSDCOracleTest: OracleConfig = { - denom: usdcTest, - price_source: { - geometric_twap: { - pool_id: 5, - window_size: 1800, - downtime_detector: { downtime: 'duration30m', recovery: 7200 }, - }, - }, -} - -export const marsOracleTest: OracleConfig = { - denom: marsTest, - price_source: { - geometric_twap: { - pool_id: 9, - window_size: 1800, - downtime_detector: { downtime: 'duration30m', recovery: 7200 }, - }, - }, -} - -// axlUSDC does not have a pool on testnet so config can't have swapRoutes configured correctly -export const osmosisTestnetConfig: DeploymentConfig = { - oracleName: 'osmosis', - atomDenom: atom, - baseAssetDenom: 'uosmo', - gasPrice: '0.1uosmo', - chainId: 'osmo-test-4', - chainPrefix: 'osmo', - channelId: 'channel-2083', - marsDenom: marsTest, - rewardCollectorTimeoutSeconds: 600, - rpcEndpoint: 'https://rpc-test.osmosis.zone', - safetyFundFeeShare: '0.5', - deployerMnemonic: - 'elevator august inherit simple buddy giggle zone despair marine rich swim danger blur people hundred faint ladder wet toe strong blade utility trial process', - slippage_tolerance: '0.01', - base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', - runTests: false, - mainnet: false, - feeCollectorDenom: marsTest, - safetyFundDenom: axlUSDC, - swapRoutes: [ - { denom_in: atom, denom_out: 'uosmo', route: [{ pool_id: 1, token_out_denom: 'uosmo' }] }, - ], - safetyFundAddr: safetyFundAddr, - protocolAdminAddr: protocolAdminAddr, - feeCollectorAddr: feeCollectorAddr, - swapperDexName: 'osmosis', - assets: [osmoAsset, atomAsset, axlUSDCAsset], - vaults: [], - oracleConfigs: [atomOracle, axlUSDCOracle], - targetHealthFactor: '1.2', - incentiveEpochDuration: 86400, - maxWhitelistedIncentiveDenoms: 10, -} - -// axlUSDC does not have a pool on testnet so config can't have swapRoutes configured correctly -export const osmosisTestMultisig: DeploymentConfig = { - oracleName: 'osmosis', - atomDenom: atom, - baseAssetDenom: 'uosmo', - gasPrice: '0.1uosmo', - chainId: 'osmo-test-4', - chainPrefix: 'osmo', - channelId: 'channel-2083', - marsDenom: marsTest, - rewardCollectorTimeoutSeconds: 600, - rpcEndpoint: 'https://rpc-test.osmosis.zone', - safetyFundFeeShare: '0.5', - deployerMnemonic: - 'elevator august inherit simple buddy giggle zone despair marine rich swim danger blur people hundred faint ladder wet toe strong blade utility trial process', - slippage_tolerance: '0.01', - base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', - multisigAddr: 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n', - runTests: false, - mainnet: false, - feeCollectorDenom: marsTest, - safetyFundDenom: axlUSDC, - swapRoutes: [ - { denom_in: atom, denom_out: 'uosmo', route: [{ pool_id: 1, token_out_denom: 'uosmo' }] }, - ], - safetyFundAddr: safetyFundAddr, - protocolAdminAddr: protocolAdminAddr, - feeCollectorAddr: feeCollectorAddr, - swapperDexName: 'osmosis', - assets: [osmoAsset, atomAsset, axlUSDCAsset], - vaults: [], - oracleConfigs: [atomOracle, axlUSDCOracle], - targetHealthFactor: '1.2', - incentiveEpochDuration: 86400, - maxWhitelistedIncentiveDenoms: 10, -} - -export const osmosisMainnet: DeploymentConfig = { - oracleName: 'osmosis', - atomDenom: atom, - baseAssetDenom: 'uosmo', - gasPrice: '0.1uosmo', - chainId: 'osmosis-1', - chainPrefix: 'osmo', - channelId: 'channel-557', - marsDenom: mars, - rewardCollectorTimeoutSeconds: 600, - rpcEndpoint: 'https://rpc.osmosis.zone', - safetyFundFeeShare: '0.5', - deployerMnemonic: 'TO BE INSERTED AT TIME OF DEPLOYMENT', - slippage_tolerance: '0.01', - base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', - multisigAddr: 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n', - runTests: false, - mainnet: true, - feeCollectorDenom: mars, - safetyFundDenom: axlUSDC, - swapRoutes: [ - { denom_in: 'uosmo', denom_out: axlUSDC, route: [{ pool_id: 678, token_out_denom: axlUSDC }] }, - { - denom_in: atom, - denom_out: axlUSDC, - route: [ - { pool_id: 1, token_out_denom: 'uosmo' }, - { pool_id: 678, token_out_denom: axlUSDC }, - ], - }, - { - denom_in: 'uosmo', - denom_out: mars, - route: [{ pool_id: marsOsmoPool, token_out_denom: mars }], - }, - { - denom_in: atom, - denom_out: mars, - route: [ - { pool_id: 1, token_out_denom: 'uosmo' }, - { pool_id: marsOsmoPool, token_out_denom: mars }, - ], - }, - { - denom_in: axlUSDC, - denom_out: mars, - route: [ - { pool_id: 678, token_out_denom: 'uosmo' }, - { pool_id: marsOsmoPool, token_out_denom: mars }, - ], - }, - ], - safetyFundAddr: safetyFundAddr, - protocolAdminAddr: protocolAdminAddr, - feeCollectorAddr: feeCollectorAddr, - swapperDexName: 'osmosis', - assets: [osmoAsset, atomAsset, axlUSDCAsset], - vaults: [], - oracleConfigs: [atomOracle, axlUSDCOracle], - targetHealthFactor: '1.2', - incentiveEpochDuration: 86400, - maxWhitelistedIncentiveDenoms: 10, -} - -export const osmosisLocalConfig: DeploymentConfig = { - oracleName: 'osmosis', - atomDenom: atom, - baseAssetDenom: 'uosmo', - gasPrice: '0.1uosmo', - chainId: 'localosmosis', - chainPrefix: 'osmo', - channelId: 'channel-1', - marsDenom: 'umars', - rewardCollectorTimeoutSeconds: 600, - rpcEndpoint: 'http://localhost:26657', - safetyFundFeeShare: '0.2', - deployerMnemonic: - 'notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius', - slippage_tolerance: '0.05', - base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', - runTests: false, - mainnet: false, - feeCollectorDenom: axlUSDC, - safetyFundDenom: axlUSDC, - swapRoutes: [ - { denom_in: atom, denom_out: 'uosmo', route: [{ pool_id: 1, token_out_denom: 'uosmo' }] }, - ], - safetyFundAddr: safetyFundAddr, - protocolAdminAddr: protocolAdminAddr, - feeCollectorAddr: feeCollectorAddr, - swapperDexName: 'osmosis', - assets: [osmoAsset, atomAsset, axlUSDCAsset], - vaults: [], - oracleConfigs: [atomOracle, axlUSDCOracle], - targetHealthFactor: '1.2', - incentiveEpochDuration: 86400, - maxWhitelistedIncentiveDenoms: 10, -} diff --git a/scripts/deploy/osmosis/mainIndex.ts b/scripts/deploy/osmosis/mainIndex.ts index 6b0cb614..cd854572 100644 --- a/scripts/deploy/osmosis/mainIndex.ts +++ b/scripts/deploy/osmosis/mainIndex.ts @@ -1,5 +1,5 @@ import { taskRunner } from '../base' -import { osmosisMainnet } from './config.js' +import { osmosisMainnet } from './testnetConfig' void (async function () { await taskRunner(osmosisMainnet) diff --git a/scripts/deploy/osmosis/mainnetConfig.ts b/scripts/deploy/osmosis/mainnetConfig.ts new file mode 100644 index 00000000..c0b80b2f --- /dev/null +++ b/scripts/deploy/osmosis/mainnetConfig.ts @@ -0,0 +1,188 @@ +import { DeploymentConfig, AssetConfig, OracleConfig } from '../../types/config' + +// Mainnet: +const osmo = 'uosmo' +const atom = 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2' +const axlUSDC = 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858' +const mars = 'ibc/573FCD90FACEE750F55A8864EF7D38265F07E5A9273FA0E8DAFD39951332B580' + +const pythContractAddr = '' + +// note the following three addresses are all 'mars' bech32 prefix +const safetyFundAddr = '' +const protocolAdminAddr = '' +const feeCollectorAddr = '' + +export const osmoAsset: AssetConfig = { + credit_manager: { + whitelisted: true, + }, + symbol: 'OSMO', + denom: osmo, + liquidation_bonus: '0.15', + liquidation_threshold: '0.61', + max_loan_to_value: '0.59', + red_bank: { + borrow_enabled: true, + deposit_cap: '2500000000000', + deposit_enabled: true, + }, +} + +export const atomAsset: AssetConfig = { + credit_manager: { + whitelisted: true, + }, + symbol: 'ATOM', + denom: atom, + liquidation_bonus: '0.15', + liquidation_threshold: '0.7', + max_loan_to_value: '0.68', + red_bank: { + borrow_enabled: true, + deposit_cap: '100000000000', + deposit_enabled: true, + }, +} + +export const axlUSDCAsset: AssetConfig = { + credit_manager: { + whitelisted: true, + }, + symbol: 'axlUSDC', + denom: axlUSDC, + liquidation_bonus: '0.1', + liquidation_threshold: '0.75', + max_loan_to_value: '0.74', + red_bank: { + borrow_enabled: true, + deposit_cap: '500000000000', + deposit_enabled: true, + }, +} + +export const atomOracle = { + denom: atom, + price_source: { + pyth: { + contract_addr: pythContractAddr, + price_feed_id: '', + max_staleness: 60, + denom_decimals: 6, + max_confidence: 5, + max_deviation: 4, + }, + }, +} + +export const axlUSDCOracle: OracleConfig = { + denom: axlUSDC, + price_source: { + geometric_twap: { + pool_id: 678, + window_size: 1800, + downtime_detector: { downtime: 'duration30m', recovery: 7200 }, + }, + }, +} + +export const osmosisMainnet: DeploymentConfig = { + chainName: 'osmosis', + atomDenom: atom, + baseAssetDenom: osmo, + gasPrice: '0.1uosmo', + chainId: 'osmosis-1', + chainPrefix: 'osmo', + channelId: 'channel-557', + marsDenom: mars, + rewardCollectorTimeoutSeconds: 600, + rpcEndpoint: 'https://rpc.osmosis.zone', + safetyFundFeeShare: '0.5', + deployerMnemonic: 'TO BE INSERTED AT TIME OF DEPLOYMENT', + slippage_tolerance: '0.01', + base_asset_symbol: 'OSMO', + second_asset_symbol: 'ATOM', + multisigAddr: 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n', + runTests: false, + mainnet: true, + feeCollectorDenom: mars, + safetyFundDenom: axlUSDC, + swapRoutes: [ + { denom_in: osmo, denom_out: axlUSDC, route: [{ pool_id: 678, token_out_denom: axlUSDC }] }, + { + denom_in: atom, + denom_out: axlUSDC, + route: [ + { pool_id: 1, token_out_denom: osmo }, + { pool_id: 678, token_out_denom: axlUSDC }, + ], + }, + { + denom_in: osmo, + denom_out: mars, + route: [{ pool_id: 907, token_out_denom: mars }], + }, + { + denom_in: atom, + denom_out: mars, + route: [ + { pool_id: 1, token_out_denom: 'uosmo' }, + { pool_id: 907, token_out_denom: mars }, + ], + }, + { + denom_in: axlUSDC, + denom_out: mars, + route: [ + { pool_id: 678, token_out_denom: osmo }, + { pool_id: 907, token_out_denom: mars }, + ], + }, + ], + safetyFundAddr: safetyFundAddr, + protocolAdminAddr: protocolAdminAddr, + feeCollectorAddr: feeCollectorAddr, + swapperDexName: 'osmosis', + assets: [osmoAsset, atomAsset, axlUSDCAsset], + vaults: [], + oracleConfigs: [atomOracle, axlUSDCOracle], + targetHealthFactor: '1.2', + incentiveEpochDuration: 86400, + maxWhitelistedIncentiveDenoms: 10, +} + +export const osmosisLocalConfig: DeploymentConfig = { + chainName: 'osmosis', + atomDenom: atom, + baseAssetDenom: 'uosmo', + gasPrice: '0.1uosmo', + chainId: 'localosmosis', + chainPrefix: 'osmo', + channelId: 'channel-1', + marsDenom: 'umars', + rewardCollectorTimeoutSeconds: 600, + rpcEndpoint: 'http://localhost:26657', + safetyFundFeeShare: '0.2', + deployerMnemonic: + 'notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius', + slippage_tolerance: '0.05', + base_asset_symbol: 'OSMO', + second_asset_symbol: 'ATOM', + runTests: false, + mainnet: false, + feeCollectorDenom: axlUSDC, + safetyFundDenom: axlUSDC, + swapRoutes: [ + { denom_in: atom, denom_out: 'uosmo', route: [{ pool_id: 1, token_out_denom: 'uosmo' }] }, + ], + safetyFundAddr: safetyFundAddr, + protocolAdminAddr: protocolAdminAddr, + feeCollectorAddr: feeCollectorAddr, + swapperDexName: 'osmosis', + assets: [osmoAsset, atomAsset, axlUSDCAsset], + vaults: [], + oracleConfigs: [atomOracle, axlUSDCOracle], + targetHealthFactor: '1.2', + incentiveEpochDuration: 86400, + maxWhitelistedIncentiveDenoms: 10, +} diff --git a/scripts/deploy/osmosis/multisig.ts b/scripts/deploy/osmosis/multisig.ts index 78676d11..49edbf6f 100644 --- a/scripts/deploy/osmosis/multisig.ts +++ b/scripts/deploy/osmosis/multisig.ts @@ -1,5 +1,5 @@ import { taskRunner } from '../base' -import { osmosisTestMultisig } from './config.js' +import { osmosisTestMultisig } from './testnetConfig' void (async function () { await taskRunner(osmosisTestMultisig) diff --git a/scripts/deploy/osmosis/testIndex.ts b/scripts/deploy/osmosis/testIndex.ts index ead3a96b..4f22107d 100644 --- a/scripts/deploy/osmosis/testIndex.ts +++ b/scripts/deploy/osmosis/testIndex.ts @@ -1,5 +1,5 @@ import { taskRunner } from '../base' -import { osmosisTestnetConfig } from './config.js' +import { osmosisTestnetConfig } from './testnetConfig' void (async function () { await taskRunner(osmosisTestnetConfig) diff --git a/scripts/deploy/osmosis/testnetConfig.ts b/scripts/deploy/osmosis/testnetConfig.ts new file mode 100644 index 00000000..5028f372 --- /dev/null +++ b/scripts/deploy/osmosis/testnetConfig.ts @@ -0,0 +1,171 @@ +import { DeploymentConfig, AssetConfig, OracleConfig, VaultConfig } from '../../types/config' + +// assets based off of OSMO-TEST-5: https://docs.osmosis.zone/osmosis-core/asset-info/ +const osmo = 'uosmo' +const atom = 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D1477' +const nUSDC = 'ibc/40F1B2458AEDA66431F9D44F48413240B8D28C072463E2BF53655728683583E3' // noble +const mars = 'ibc/2E7368A14AC9AB7870F32CFEA687551C5064FA861868EDF7437BC877358A81F9' + +const pythContractAddr = '' + +// note the following three addresses are all 'mars' bech32 prefix +const safetyFundAddr = '' +const protocolAdminAddr = '' +const feeCollectorAddr = '' + +export const osmoAsset: AssetConfig = { + credit_manager: { + whitelisted: true, + }, + symbol: 'OSMO', + denom: osmo, + liquidation_bonus: '0.15', + liquidation_threshold: '0.61', + max_loan_to_value: '0.59', + red_bank: { + borrow_enabled: true, + deposit_cap: '2500000000000', + deposit_enabled: true, + }, +} + +export const atomAsset: AssetConfig = { + credit_manager: { + whitelisted: true, + }, + symbol: 'ATOM', + denom: atom, + liquidation_bonus: '0.15', + liquidation_threshold: '0.7', + max_loan_to_value: '0.68', + red_bank: { + borrow_enabled: true, + deposit_cap: '100000000000', + deposit_enabled: true, + }, +} + +export const USDCAsset: AssetConfig = { + credit_manager: { + whitelisted: true, + }, + symbol: 'nUSDC', + denom: nUSDC, + liquidation_bonus: '0.1', + liquidation_threshold: '0.75', + max_loan_to_value: '0.74', + red_bank: { + borrow_enabled: true, + deposit_cap: '500000000000', + deposit_enabled: true, + }, +} + +export const usdcOsmoVault: VaultConfig = { + addr: 'osmo1fmq9hw224fgz8lk48wyd0gfg028kvvzggt6c3zvnaqkw23x68cws5nd5em', + symbol: 'usdcOsmoVault', + deposit_cap: { + denom: nUSDC, + amount: '1000000000', + }, + liquidation_threshold: '0.65', + max_loan_to_value: '0.63', + whitelisted: true, +} + +export const atomOracle = { + denom: atom, + price_source: { + pyth: { + contract_addr: pythContractAddr, + price_feed_id: '', + max_staleness: 60, + denom_decimals: 6, + max_confidence: 5, + max_deviation: 4, + }, + }, +} + +export const USDCOracle: OracleConfig = { + denom: nUSDC, + price_source: { + staked_geometric_twap: { + transitive_denom: osmo, + pool_id: 6, + window_size: 1800, + downtime_detector: { downtime: 'duration30m', recovery: 7200 }, + }, + }, +} + +export const osmosisTestnetConfig: DeploymentConfig = { + chainName: 'osmosis', + atomDenom: atom, + baseAssetDenom: osmo, + gasPrice: '0.1uosmo', + chainId: 'osmo-test-5', + chainPrefix: 'osmo', + channelId: 'channel-2083', + marsDenom: mars, + rewardCollectorTimeoutSeconds: 600, + rpcEndpoint: 'https://rpc.osmotest5.osmosis.zone', + safetyFundFeeShare: '0.5', + deployerMnemonic: + 'elevator august inherit simple buddy giggle zone despair marine rich swim danger blur people hundred faint ladder wet toe strong blade utility trial process', + slippage_tolerance: '0.01', + base_asset_symbol: 'OSMO', + runTests: false, + mainnet: false, + feeCollectorDenom: mars, + safetyFundDenom: nUSDC, + swapRoutes: [{ denom_in: atom, denom_out: osmo, route: [{ pool_id: 1, token_out_denom: osmo }] }], + safetyFundAddr: safetyFundAddr, + protocolAdminAddr: protocolAdminAddr, + feeCollectorAddr: feeCollectorAddr, + swapperDexName: 'osmosis', + assets: [osmoAsset, atomAsset, USDCAsset], + vaults: [usdcOsmoVault], + oracleConfigs: [atomOracle, USDCOracle], + targetHealthFactor: '1.2', + incentiveEpochDuration: 86400, + maxWhitelistedIncentiveDenoms: 10, +} + +// axlUSDC does not have a pool on testnet so config can't have swapRoutes configured correctly +export const osmosisTestMultisig: DeploymentConfig = { + chainName: 'osmosis', + atomDenom: atom, + baseAssetDenom: 'uosmo', + gasPrice: '0.1uosmo', + chainId: 'osmo-test-5', + chainPrefix: 'osmo', + channelId: 'channel-2083', + marsDenom: mars, + rewardCollectorTimeoutSeconds: 600, + rpcEndpoint: 'https://rpc.osmotest5.osmosis.zone', + safetyFundFeeShare: '0.5', + deployerMnemonic: + 'elevator august inherit simple buddy giggle zone despair marine rich swim danger blur people hundred faint ladder wet toe strong blade utility trial process', + slippage_tolerance: '0.01', + base_asset_symbol: 'OSMO', + second_asset_symbol: 'ATOM', + multisigAddr: 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n', + runTests: false, + mainnet: false, + feeCollectorDenom: mars, + safetyFundDenom: nUSDC, + swapRoutes: [ + { denom_in: atom, denom_out: 'uosmo', route: [{ pool_id: 1, token_out_denom: 'uosmo' }] }, + ], + safetyFundAddr: safetyFundAddr, + protocolAdminAddr: protocolAdminAddr, + feeCollectorAddr: feeCollectorAddr, + swapperDexName: 'osmosis', + assets: [osmoAsset, atomAsset, USDCAsset], + vaults: [usdcOsmoVault], + oracleConfigs: [atomOracle, USDCOracle], + targetHealthFactor: '1.2', + incentiveEpochDuration: 86400, + maxWhitelistedIncentiveDenoms: 10, +} diff --git a/scripts/types/config.ts b/scripts/types/config.ts index 0e8a0475..396c2615 100644 --- a/scripts/types/config.ts +++ b/scripts/types/config.ts @@ -32,7 +32,7 @@ export function isAstroportRoute(route: OsmosisRoute | AstroportRoute): route is } export interface DeploymentConfig { - oracleName: string + chainName: string rewardCollectorTimeoutSeconds: number marsDenom: string baseAssetDenom: string @@ -48,7 +48,6 @@ export interface DeploymentConfig { deployerMnemonic: string slippage_tolerance: string base_asset_symbol: string - second_asset_symbol: string multisigAddr?: string runTests: boolean mainnet: boolean From 4711f81d49a7f539cecd65eb348e97267a304ec5 Mon Sep 17 00:00:00 2001 From: brimigs Date: Thu, 29 Jun 2023 19:23:19 -0400 Subject: [PATCH 4/8] more clean up --- scripts/deploy/base/storage.ts | 2 +- scripts/deploy/neutron/config.ts | 4 +-- scripts/deploy/osmosis/mainIndex.ts | 2 +- scripts/deploy/osmosis/mainnetConfig.ts | 38 +------------------------ scripts/deploy/osmosis/testnetConfig.ts | 5 ++-- 5 files changed, 7 insertions(+), 44 deletions(-) diff --git a/scripts/deploy/base/storage.ts b/scripts/deploy/base/storage.ts index b23fd319..6f429224 100644 --- a/scripts/deploy/base/storage.ts +++ b/scripts/deploy/base/storage.ts @@ -28,7 +28,7 @@ export class Storage implements StorageItems { return new this(chainId, { addresses: {}, codeIds: {}, - execute: { assetsInitialized: [], addressProviderUpdated: {} }, + execute: { assetsUpdated: [], vaultsUpdated: [], addressProviderUpdated: {} }, }) } } diff --git a/scripts/deploy/neutron/config.ts b/scripts/deploy/neutron/config.ts index 524fd4b0..cfedd96c 100644 --- a/scripts/deploy/neutron/config.ts +++ b/scripts/deploy/neutron/config.ts @@ -1,4 +1,4 @@ -import { DeploymentConfig, AssetConfig, OracleConfig } from '../../types/config' +import { AssetConfig, OracleConfig } from '../../types/config' const axlUSDCTestnet = 'ibc/EFB00E728F98F0C4BBE8CA362123ACAB466EDA2826DC6837E49F4C1902F21BBA' // TODO: This is actually ASTRO since there is no pool for axlUSDC on testnet const atomTestnet = 'ibc/C4CFF46FD6DE35CA4CF4CE031E643C8FDC9BA4B99AE598E9B0ED98FE3A2319F9' @@ -92,7 +92,7 @@ export const axlUSDCOracleTestnet: OracleConfig = { }, } -export const neutronTestnetConfig: DeploymentConfig = { +export const neutronTestnetConfig = { chainName: 'wasm', atomDenom: atomTestnet, baseAssetDenom: 'untrn', diff --git a/scripts/deploy/osmosis/mainIndex.ts b/scripts/deploy/osmosis/mainIndex.ts index cd854572..c1b5b291 100644 --- a/scripts/deploy/osmosis/mainIndex.ts +++ b/scripts/deploy/osmosis/mainIndex.ts @@ -1,5 +1,5 @@ import { taskRunner } from '../base' -import { osmosisMainnet } from './testnetConfig' +import { osmosisMainnet } from './mainnetConfig' void (async function () { await taskRunner(osmosisMainnet) diff --git a/scripts/deploy/osmosis/mainnetConfig.ts b/scripts/deploy/osmosis/mainnetConfig.ts index c0b80b2f..df0a5d0a 100644 --- a/scripts/deploy/osmosis/mainnetConfig.ts +++ b/scripts/deploy/osmosis/mainnetConfig.ts @@ -86,7 +86,7 @@ export const axlUSDCOracle: OracleConfig = { }, } -export const osmosisMainnet: DeploymentConfig = { +export const osmosisMainnet = { chainName: 'osmosis', atomDenom: atom, baseAssetDenom: osmo, @@ -150,39 +150,3 @@ export const osmosisMainnet: DeploymentConfig = { incentiveEpochDuration: 86400, maxWhitelistedIncentiveDenoms: 10, } - -export const osmosisLocalConfig: DeploymentConfig = { - chainName: 'osmosis', - atomDenom: atom, - baseAssetDenom: 'uosmo', - gasPrice: '0.1uosmo', - chainId: 'localosmosis', - chainPrefix: 'osmo', - channelId: 'channel-1', - marsDenom: 'umars', - rewardCollectorTimeoutSeconds: 600, - rpcEndpoint: 'http://localhost:26657', - safetyFundFeeShare: '0.2', - deployerMnemonic: - 'notice oak worry limit wrap speak medal online prefer cluster roof addict wrist behave treat actual wasp year salad speed social layer crew genius', - slippage_tolerance: '0.05', - base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', - runTests: false, - mainnet: false, - feeCollectorDenom: axlUSDC, - safetyFundDenom: axlUSDC, - swapRoutes: [ - { denom_in: atom, denom_out: 'uosmo', route: [{ pool_id: 1, token_out_denom: 'uosmo' }] }, - ], - safetyFundAddr: safetyFundAddr, - protocolAdminAddr: protocolAdminAddr, - feeCollectorAddr: feeCollectorAddr, - swapperDexName: 'osmosis', - assets: [osmoAsset, atomAsset, axlUSDCAsset], - vaults: [], - oracleConfigs: [atomOracle, axlUSDCOracle], - targetHealthFactor: '1.2', - incentiveEpochDuration: 86400, - maxWhitelistedIncentiveDenoms: 10, -} diff --git a/scripts/deploy/osmosis/testnetConfig.ts b/scripts/deploy/osmosis/testnetConfig.ts index 5028f372..0707e86e 100644 --- a/scripts/deploy/osmosis/testnetConfig.ts +++ b/scripts/deploy/osmosis/testnetConfig.ts @@ -99,7 +99,7 @@ export const USDCOracle: OracleConfig = { }, } -export const osmosisTestnetConfig: DeploymentConfig = { +export const osmosisTestnetConfig = { chainName: 'osmosis', atomDenom: atom, baseAssetDenom: osmo, @@ -132,8 +132,7 @@ export const osmosisTestnetConfig: DeploymentConfig = { maxWhitelistedIncentiveDenoms: 10, } -// axlUSDC does not have a pool on testnet so config can't have swapRoutes configured correctly -export const osmosisTestMultisig: DeploymentConfig = { +export const osmosisTestMultisig = { chainName: 'osmosis', atomDenom: atom, baseAssetDenom: 'uosmo', From 9cbab317bb1c2a376341098c711189ee3acab2cf Mon Sep 17 00:00:00 2001 From: brimigs Date: Thu, 29 Jun 2023 21:15:11 -0400 Subject: [PATCH 5/8] update types --- scripts/deploy/addresses/osmo-test-5.json | 8 +--- scripts/deploy/base/deployer.ts | 3 +- scripts/deploy/neutron/config.ts | 26 +++++++++++-- scripts/deploy/osmosis/mainnetConfig.ts | 44 +++++++++++++++------- scripts/deploy/osmosis/testnetConfig.ts | 45 ++++++++++++++++------- scripts/types/config.ts | 42 +++++---------------- 6 files changed, 96 insertions(+), 72 deletions(-) diff --git a/scripts/deploy/addresses/osmo-test-5.json b/scripts/deploy/addresses/osmo-test-5.json index b113d001..24fbc78b 100644 --- a/scripts/deploy/addresses/osmo-test-5.json +++ b/scripts/deploy/addresses/osmo-test-5.json @@ -1,7 +1 @@ -{ - "address-provider": "osmo1wlm6dc0vnncu2v5z26rv97plmlkmalm84uwqatrlftc4gmp8ahgqs6r4py", - "red-bank": "osmo1dl4rylasnd7mtfzlkdqn2gr0ss4gvyykpvr6d7t5ylzf6z535n9s5jjt8u", - "incentives": "osmo1zyz57xf82963mcsgqu3hq5y0h9mrltm4ttq2qe5mjth9ezp3375qe0sm7d", - "oracle": "osmo1khe29uw3t85nmmp3mtr8dls7v2qwsfk3tndu5h4w5g2r5tzlz5qqarq2e2", - "rewards-collector": "osmo1u5pcjue4grmg8lh7xrz2nvpy79xlzknwqkczfkyeyx9zzzj76tpq4tgrcs" -} +{"address-provider":"osmo1xlf93me2979mvgj0gmluzuw22zxwd9rt2jaafzymw7d8kghkhwsqlwgh2r","red-bank":"osmo1r9ks824qewvpa9sqgzs3w2ylxx582c6d0hrnzqf3csufchqneydq60hgrv","incentives":"osmo1uq2y7h5sw8xtzhluhh7m9l3h9jdv5zjz7jhvavc3sgq0ps8ggq9s39qgcf","oracle":"osmo1vae2gsgeqw8q2x5ycvcrspsuqrnydveqgca03v8k9p4uvl2fgdlqp5r8fc","rewards-collector":"osmo1uw8g8mxlfk4at27xq26vqzttddtae7fgup4sd59ndrh0ymk99prsezh896","swapper":"osmo1q97xatqr3c0zrlgck60yd6f6nqvvtcg5772pngthzrkmdxkc6kqqdj56v2","params":"osmo1et0qv7acfv0wv3wlqmjtyflw5dectct24nuwjeqdkfzm9fznfunste0hnc"} \ No newline at end of file diff --git a/scripts/deploy/base/deployer.ts b/scripts/deploy/base/deployer.ts index 4051d732..0739d2e5 100644 --- a/scripts/deploy/base/deployer.ts +++ b/scripts/deploy/base/deployer.ts @@ -187,11 +187,12 @@ export class Deployer { } printBlue(`Updating ${assetConfig.symbol}...`) - const msg = { + const msg: ParamsExecuteMsg = { update_asset_params: { add_or_update: { params: { credit_manager: { + hls: assetConfig.credit_manager.hls, whitelisted: assetConfig.credit_manager.whitelisted, }, denom: assetConfig.denom, diff --git a/scripts/deploy/neutron/config.ts b/scripts/deploy/neutron/config.ts index cfedd96c..888c7494 100644 --- a/scripts/deploy/neutron/config.ts +++ b/scripts/deploy/neutron/config.ts @@ -7,7 +7,7 @@ const protocolAdminAddrTestnet = 'neutron1ke0vqqzyymlp5esr8gjwuzh94ysnpvj8er5hm7 const astroportFactoryTestnet = 'neutron1jj0scx400pswhpjes589aujlqagxgcztw04srynmhf0f6zplzn2qqmhwj7' const astroportRouterTestnet = 'neutron12jm24l9lr9cupufqjuxpdjnnweana4h66tsx5cl800mke26td26sq7m05p' -// note the following three addresses are all 'mars' bech32 prefix +// note the following addresses are all 'mars' bech32 prefix const safetyFundAddr = 'mars1s4hgh56can3e33e0zqpnjxh0t5wdf7u3pze575' const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' @@ -17,7 +17,13 @@ export const ntrnAsset: AssetConfig = { }, symbol: 'NTRM', denom: 'untrn', - liquidation_bonus: '0.15', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.61', max_loan_to_value: '0.59', red_bank: { @@ -33,7 +39,13 @@ export const atomAsset: AssetConfig = { }, symbol: 'ATOM', denom: atomTestnet, - liquidation_bonus: '0.15', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.7', max_loan_to_value: '0.68', red_bank: { @@ -49,7 +61,13 @@ export const axlUSDCAsset: AssetConfig = { whitelisted: true, }, symbol: 'axlUSDC', - liquidation_bonus: '0.1', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.75', max_loan_to_value: '0.74', red_bank: { diff --git a/scripts/deploy/osmosis/mainnetConfig.ts b/scripts/deploy/osmosis/mainnetConfig.ts index df0a5d0a..207d8a0c 100644 --- a/scripts/deploy/osmosis/mainnetConfig.ts +++ b/scripts/deploy/osmosis/mainnetConfig.ts @@ -6,12 +6,12 @@ const atom = 'ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5E const axlUSDC = 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F1D858' const mars = 'ibc/573FCD90FACEE750F55A8864EF7D38265F07E5A9273FA0E8DAFD39951332B580' -const pythContractAddr = '' +const pythContractAddr = 'UPDATE' // note the following three addresses are all 'mars' bech32 prefix -const safetyFundAddr = '' -const protocolAdminAddr = '' -const feeCollectorAddr = '' +const safetyFundAddr = 'UPDATE' +const protocolAdminAddr = 'UPDATE' +const feeCollectorAddr = 'UPDATE' export const osmoAsset: AssetConfig = { credit_manager: { @@ -19,7 +19,13 @@ export const osmoAsset: AssetConfig = { }, symbol: 'OSMO', denom: osmo, - liquidation_bonus: '0.15', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.61', max_loan_to_value: '0.59', red_bank: { @@ -35,7 +41,13 @@ export const atomAsset: AssetConfig = { }, symbol: 'ATOM', denom: atom, - liquidation_bonus: '0.15', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.7', max_loan_to_value: '0.68', red_bank: { @@ -51,7 +63,13 @@ export const axlUSDCAsset: AssetConfig = { }, symbol: 'axlUSDC', denom: axlUSDC, - liquidation_bonus: '0.1', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.75', max_loan_to_value: '0.74', red_bank: { @@ -61,20 +79,19 @@ export const axlUSDCAsset: AssetConfig = { }, } -export const atomOracle = { +export const atomOracle: OracleConfig = { denom: atom, price_source: { pyth: { contract_addr: pythContractAddr, - price_feed_id: '', + price_feed_id: 'UPDATE', max_staleness: 60, denom_decimals: 6, - max_confidence: 5, - max_deviation: 4, + max_confidence: '5', + max_deviation: '4', }, }, } - export const axlUSDCOracle: OracleConfig = { denom: axlUSDC, price_source: { @@ -86,7 +103,7 @@ export const axlUSDCOracle: OracleConfig = { }, } -export const osmosisMainnet = { +export const osmosisMainnet: DeploymentConfig = { chainName: 'osmosis', atomDenom: atom, baseAssetDenom: osmo, @@ -101,7 +118,6 @@ export const osmosisMainnet = { deployerMnemonic: 'TO BE INSERTED AT TIME OF DEPLOYMENT', slippage_tolerance: '0.01', base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', multisigAddr: 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n', runTests: false, mainnet: true, diff --git a/scripts/deploy/osmosis/testnetConfig.ts b/scripts/deploy/osmosis/testnetConfig.ts index 0707e86e..176b6da9 100644 --- a/scripts/deploy/osmosis/testnetConfig.ts +++ b/scripts/deploy/osmosis/testnetConfig.ts @@ -6,12 +6,12 @@ const atom = 'ibc/A8C2D23A1E6F95DA4E48BA349667E322BD7A6C996D8A4AAE8BA72E190F3D14 const nUSDC = 'ibc/40F1B2458AEDA66431F9D44F48413240B8D28C072463E2BF53655728683583E3' // noble const mars = 'ibc/2E7368A14AC9AB7870F32CFEA687551C5064FA861868EDF7437BC877358A81F9' -const pythContractAddr = '' +const pythContractAddr = 'UPDATE' // note the following three addresses are all 'mars' bech32 prefix -const safetyFundAddr = '' -const protocolAdminAddr = '' -const feeCollectorAddr = '' +const safetyFundAddr = 'mars1s4hgh56can3e33e0zqpnjxh0t5wdf7u3pze575' +const protocolAdminAddr = 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n' +const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' export const osmoAsset: AssetConfig = { credit_manager: { @@ -19,7 +19,13 @@ export const osmoAsset: AssetConfig = { }, symbol: 'OSMO', denom: osmo, - liquidation_bonus: '0.15', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.61', max_loan_to_value: '0.59', red_bank: { @@ -35,7 +41,13 @@ export const atomAsset: AssetConfig = { }, symbol: 'ATOM', denom: atom, - liquidation_bonus: '0.15', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.7', max_loan_to_value: '0.68', red_bank: { @@ -51,7 +63,13 @@ export const USDCAsset: AssetConfig = { }, symbol: 'nUSDC', denom: nUSDC, - liquidation_bonus: '0.1', + liquidation_bonus: { + max_lb: '0.05', + min_lb: '0', + slope: '2', + starting_lb: '0', + }, + protocol_liquidation_fee: '0.5', liquidation_threshold: '0.75', max_loan_to_value: '0.74', red_bank: { @@ -73,16 +91,16 @@ export const usdcOsmoVault: VaultConfig = { whitelisted: true, } -export const atomOracle = { +export const atomOracle: OracleConfig = { denom: atom, price_source: { pyth: { contract_addr: pythContractAddr, - price_feed_id: '', + price_feed_id: 'UPDATE', max_staleness: 60, denom_decimals: 6, - max_confidence: 5, - max_deviation: 4, + max_confidence: '5', + max_deviation: '4', }, }, } @@ -119,7 +137,7 @@ export const osmosisTestnetConfig = { mainnet: false, feeCollectorDenom: mars, safetyFundDenom: nUSDC, - swapRoutes: [{ denom_in: atom, denom_out: osmo, route: [{ pool_id: 1, token_out_denom: osmo }] }], + swapRoutes: [{ denom_in: atom, denom_out: osmo, route: [{ pool_id: 12, token_out_denom: osmo }] }], safetyFundAddr: safetyFundAddr, protocolAdminAddr: protocolAdminAddr, feeCollectorAddr: feeCollectorAddr, @@ -132,7 +150,7 @@ export const osmosisTestnetConfig = { maxWhitelistedIncentiveDenoms: 10, } -export const osmosisTestMultisig = { +export const osmosisTestMultisig: DeploymentConfig = { chainName: 'osmosis', atomDenom: atom, baseAssetDenom: 'uosmo', @@ -148,7 +166,6 @@ export const osmosisTestMultisig = { 'elevator august inherit simple buddy giggle zone despair marine rich swim danger blur people hundred faint ladder wet toe strong blade utility trial process', slippage_tolerance: '0.01', base_asset_symbol: 'OSMO', - second_asset_symbol: 'ATOM', multisigAddr: 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n', runTests: false, mainnet: false, diff --git a/scripts/types/config.ts b/scripts/types/config.ts index 396c2615..7240c57c 100644 --- a/scripts/types/config.ts +++ b/scripts/types/config.ts @@ -6,11 +6,12 @@ import { WasmPriceSourceForString, } from './generated/mars-oracle-wasm/MarsOracleWasm.types' import { + CmSettingsForString, Coin, Decimal, - HlsAssetTypeForString, HlsParamsBaseForString, - Uint128, + LiquidationBonus, + RedBankSettings, } from './generated/mars-params/MarsParams.types' type SwapRoute = { @@ -66,48 +67,25 @@ export interface DeploymentConfig { } export interface AssetConfig { - credit_manager: { - whitelisted: boolean - } symbol: string + credit_manager: CmSettingsForString denom: string - liquidation_bonus: string - liquidation_threshold: string - max_loan_to_value: string - protocol_liquidation_fee?: Decimal - red_bank: { - borrow_enabled: boolean - deposit_cap: Uint128 - deposit_enabled: boolean - } + liquidation_bonus: LiquidationBonus + liquidation_threshold: Decimal + max_loan_to_value: Decimal + protocol_liquidation_fee: Decimal + red_bank: RedBankSettings } - export interface VaultConfig { addr: string symbol: string deposit_cap: Coin - hls?: { - correlations: HlsAssetTypeForString - liquidation_threshold: Decimal - max_loan_to_value: Decimal - } + hls?: HlsParamsBaseForString | null liquidation_threshold: Decimal max_loan_to_value: Decimal whitelisted: boolean } -export type HlsAssetTypeForString = - | { - coin: { - denom: string - } - } - | { - vault: { - addr: string - } - } - export interface OracleConfig { denom: string price_source: OsmosisPriceSourceForString | WasmPriceSourceForString From 30e330dccdcfe059efc7825fa60fc7626a49c2f9 Mon Sep 17 00:00:00 2001 From: brimigs Date: Thu, 29 Jun 2023 21:16:41 -0400 Subject: [PATCH 6/8] formatting --- scripts/deploy/addresses/osmo-test-5.json | 10 +++++++++- scripts/deploy/osmosis/testnetConfig.ts | 4 +++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/scripts/deploy/addresses/osmo-test-5.json b/scripts/deploy/addresses/osmo-test-5.json index 24fbc78b..cf6020bf 100644 --- a/scripts/deploy/addresses/osmo-test-5.json +++ b/scripts/deploy/addresses/osmo-test-5.json @@ -1 +1,9 @@ -{"address-provider":"osmo1xlf93me2979mvgj0gmluzuw22zxwd9rt2jaafzymw7d8kghkhwsqlwgh2r","red-bank":"osmo1r9ks824qewvpa9sqgzs3w2ylxx582c6d0hrnzqf3csufchqneydq60hgrv","incentives":"osmo1uq2y7h5sw8xtzhluhh7m9l3h9jdv5zjz7jhvavc3sgq0ps8ggq9s39qgcf","oracle":"osmo1vae2gsgeqw8q2x5ycvcrspsuqrnydveqgca03v8k9p4uvl2fgdlqp5r8fc","rewards-collector":"osmo1uw8g8mxlfk4at27xq26vqzttddtae7fgup4sd59ndrh0ymk99prsezh896","swapper":"osmo1q97xatqr3c0zrlgck60yd6f6nqvvtcg5772pngthzrkmdxkc6kqqdj56v2","params":"osmo1et0qv7acfv0wv3wlqmjtyflw5dectct24nuwjeqdkfzm9fznfunste0hnc"} \ No newline at end of file +{ + "address-provider": "osmo1xlf93me2979mvgj0gmluzuw22zxwd9rt2jaafzymw7d8kghkhwsqlwgh2r", + "red-bank": "osmo1r9ks824qewvpa9sqgzs3w2ylxx582c6d0hrnzqf3csufchqneydq60hgrv", + "incentives": "osmo1uq2y7h5sw8xtzhluhh7m9l3h9jdv5zjz7jhvavc3sgq0ps8ggq9s39qgcf", + "oracle": "osmo1vae2gsgeqw8q2x5ycvcrspsuqrnydveqgca03v8k9p4uvl2fgdlqp5r8fc", + "rewards-collector": "osmo1uw8g8mxlfk4at27xq26vqzttddtae7fgup4sd59ndrh0ymk99prsezh896", + "swapper": "osmo1q97xatqr3c0zrlgck60yd6f6nqvvtcg5772pngthzrkmdxkc6kqqdj56v2", + "params": "osmo1et0qv7acfv0wv3wlqmjtyflw5dectct24nuwjeqdkfzm9fznfunste0hnc" +} diff --git a/scripts/deploy/osmosis/testnetConfig.ts b/scripts/deploy/osmosis/testnetConfig.ts index 176b6da9..2077662c 100644 --- a/scripts/deploy/osmosis/testnetConfig.ts +++ b/scripts/deploy/osmosis/testnetConfig.ts @@ -137,7 +137,9 @@ export const osmosisTestnetConfig = { mainnet: false, feeCollectorDenom: mars, safetyFundDenom: nUSDC, - swapRoutes: [{ denom_in: atom, denom_out: osmo, route: [{ pool_id: 12, token_out_denom: osmo }] }], + swapRoutes: [ + { denom_in: atom, denom_out: osmo, route: [{ pool_id: 12, token_out_denom: osmo }] }, + ], safetyFundAddr: safetyFundAddr, protocolAdminAddr: protocolAdminAddr, feeCollectorAddr: feeCollectorAddr, From e29c5513f5137f0d8913423974e6bba155f9d443 Mon Sep 17 00:00:00 2001 From: brimigs Date: Mon, 10 Jul 2023 17:39:13 -0400 Subject: [PATCH 7/8] review updates --- scripts/deploy/base/deployer.ts | 2 +- scripts/deploy/neutron/config.ts | 2 +- scripts/deploy/osmosis/mainnetConfig.ts | 8 ++++---- scripts/deploy/osmosis/testnetConfig.ts | 4 ++-- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/scripts/deploy/base/deployer.ts b/scripts/deploy/base/deployer.ts index 0739d2e5..7ff2db10 100644 --- a/scripts/deploy/base/deployer.ts +++ b/scripts/deploy/base/deployer.ts @@ -59,7 +59,7 @@ export class Deployer { Number(accountBalance.amount) / 1e6 } ${this.config.chainPrefix})`, ) - if (Number(accountBalance.amount) < 1_000_000 && this.config.chainId === 'osmo-test-4') { + if (Number(accountBalance.amount) < 1_000_000 && this.config.chainId === 'osmo-test-5') { printRed( `not enough ${this.config.chainPrefix} tokens to complete action, you may need to go to a test faucet to get more tokens.`, ) diff --git a/scripts/deploy/neutron/config.ts b/scripts/deploy/neutron/config.ts index 888c7494..835be7f0 100644 --- a/scripts/deploy/neutron/config.ts +++ b/scripts/deploy/neutron/config.ts @@ -111,7 +111,7 @@ export const axlUSDCOracleTestnet: OracleConfig = { } export const neutronTestnetConfig = { - chainName: 'wasm', + oracleName: 'wasm', atomDenom: atomTestnet, baseAssetDenom: 'untrn', gasPrice: '0untrn', diff --git a/scripts/deploy/osmosis/mainnetConfig.ts b/scripts/deploy/osmosis/mainnetConfig.ts index 207d8a0c..25d9dc72 100644 --- a/scripts/deploy/osmosis/mainnetConfig.ts +++ b/scripts/deploy/osmosis/mainnetConfig.ts @@ -7,11 +7,11 @@ const axlUSDC = 'ibc/D189335C6E4A68B513C10AB227BF1C1D38C746766278BA3EEB4FB14124F const mars = 'ibc/573FCD90FACEE750F55A8864EF7D38265F07E5A9273FA0E8DAFD39951332B580' const pythContractAddr = 'UPDATE' +const protocolAdminAddr = 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n' -// note the following three addresses are all 'mars' bech32 prefix -const safetyFundAddr = 'UPDATE' -const protocolAdminAddr = 'UPDATE' -const feeCollectorAddr = 'UPDATE' +// note the following addresses are all 'mars' bech32 prefix +const safetyFundAddr = 'mars1s4hgh56can3e33e0zqpnjxh0t5wdf7u3pze575' +const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' export const osmoAsset: AssetConfig = { credit_manager: { diff --git a/scripts/deploy/osmosis/testnetConfig.ts b/scripts/deploy/osmosis/testnetConfig.ts index 2077662c..65ed2939 100644 --- a/scripts/deploy/osmosis/testnetConfig.ts +++ b/scripts/deploy/osmosis/testnetConfig.ts @@ -7,10 +7,10 @@ const nUSDC = 'ibc/40F1B2458AEDA66431F9D44F48413240B8D28C072463E2BF5365572868358 const mars = 'ibc/2E7368A14AC9AB7870F32CFEA687551C5064FA861868EDF7437BC877358A81F9' const pythContractAddr = 'UPDATE' +const protocolAdminAddr = 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n' -// note the following three addresses are all 'mars' bech32 prefix +// note the following addresses are all 'mars' bech32 prefix const safetyFundAddr = 'mars1s4hgh56can3e33e0zqpnjxh0t5wdf7u3pze575' -const protocolAdminAddr = 'osmo14w4x949nwcrqgfe53pxs3k7x53p0gvlrq34l5n' const feeCollectorAddr = 'mars17xpfvakm2amg962yls6f84z3kell8c5ldy6e7x' export const osmoAsset: AssetConfig = { From 802756fabf6050b93a7ba5f0db88f4fa30d132a3 Mon Sep 17 00:00:00 2001 From: brimigs Date: Mon, 10 Jul 2023 21:44:50 -0400 Subject: [PATCH 8/8] update --- scripts/deploy/base/index.ts | 2 +- scripts/deploy/osmosis/mainnetConfig.ts | 2 +- scripts/deploy/osmosis/testnetConfig.ts | 4 ++-- scripts/types/config.ts | 2 +- 4 files changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/deploy/base/index.ts b/scripts/deploy/base/index.ts index 1f7a3396..a1ca1f11 100644 --- a/scripts/deploy/base/index.ts +++ b/scripts/deploy/base/index.ts @@ -13,7 +13,7 @@ export const taskRunner = async (config: DeploymentConfig) => { await deployer.upload('red-bank', 'mars_red_bank.wasm') await deployer.upload('address-provider', 'mars_address_provider.wasm') await deployer.upload('incentives', 'mars_incentives.wasm') - await deployer.upload('oracle', `mars_oracle_${config.chainName}.wasm`) + await deployer.upload('oracle', `mars_oracle_${config.oracleName}.wasm`) await deployer.upload('rewards-collector', `mars_rewards_collector.wasm`) await deployer.upload('params', `mars_params.wasm`) await deployer.upload('swapper', `mars_swapper_${config.swapperDexName}.wasm`) diff --git a/scripts/deploy/osmosis/mainnetConfig.ts b/scripts/deploy/osmosis/mainnetConfig.ts index 25d9dc72..7e07d104 100644 --- a/scripts/deploy/osmosis/mainnetConfig.ts +++ b/scripts/deploy/osmosis/mainnetConfig.ts @@ -104,7 +104,7 @@ export const axlUSDCOracle: OracleConfig = { } export const osmosisMainnet: DeploymentConfig = { - chainName: 'osmosis', + oracleName: 'osmosis', atomDenom: atom, baseAssetDenom: osmo, gasPrice: '0.1uosmo', diff --git a/scripts/deploy/osmosis/testnetConfig.ts b/scripts/deploy/osmosis/testnetConfig.ts index 65ed2939..8cce3b5e 100644 --- a/scripts/deploy/osmosis/testnetConfig.ts +++ b/scripts/deploy/osmosis/testnetConfig.ts @@ -118,7 +118,7 @@ export const USDCOracle: OracleConfig = { } export const osmosisTestnetConfig = { - chainName: 'osmosis', + oracleName: 'osmosis', atomDenom: atom, baseAssetDenom: osmo, gasPrice: '0.1uosmo', @@ -153,7 +153,7 @@ export const osmosisTestnetConfig = { } export const osmosisTestMultisig: DeploymentConfig = { - chainName: 'osmosis', + oracleName: 'osmosis', atomDenom: atom, baseAssetDenom: 'uosmo', gasPrice: '0.1uosmo', diff --git a/scripts/types/config.ts b/scripts/types/config.ts index 7240c57c..810b3241 100644 --- a/scripts/types/config.ts +++ b/scripts/types/config.ts @@ -33,7 +33,7 @@ export function isAstroportRoute(route: OsmosisRoute | AstroportRoute): route is } export interface DeploymentConfig { - chainName: string + oracleName: string rewardCollectorTimeoutSeconds: number marsDenom: string baseAssetDenom: string