Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ version = "1.2.0"
authors = [
"Gabe R. <gabe.r@delphilabs.io>",
"Larry Engineer <larry@delphidigital.io>",
"Piotr Babel <piotr@delphilabs.io>",
"Piotr B. <piotr@delphilabs.io>",
"Spike Spiegel <spikeonmars@protonmail.com>",
"Brianna M. <brianna@delphilabs.io>",
"Ahmad Kaouk",
Expand Down
8 changes: 8 additions & 0 deletions scripts/deploy/addresses/neutron-1.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
{
"address-provider": "neutron17yehp4x7n79zq9dlw4g7xmnrvwdjjj2yecq26844sg8yu74knlxqfx5vqv",
"red-bank": "neutron1n97wnm7q6d2hrcna3rqlnyqw2we6k0l8uqvmyqq6gsml92epdu7quugyph",
"incentives": "neutron1aszpdh35zsaz0yj80mz7f5dtl9zq5jfl8hgm094y0j0vsychfekqxhzd39",
"oracle": "neutron1dwp6m7pdrz6rnhdyrx5ha0acsduydqcpzkylvfgspsz60pj2agxqaqrr7g",
"rewards-collector": "neutron1h4l6rvylzcuxwdw3gzkkdzfjdxf4mv2ypfdgvnvag0dtz6x07gps6fl2vm",
"swapper": "neutron1udr9fc3kd743dezrj38v2ac74pxxr6qsx4xt4nfpcfczgw52rvyqyjp5au"
}
12 changes: 6 additions & 6 deletions scripts/deploy/addresses/pion-1.json
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
{
"address-provider": "neutron15y9umftrhft509l2lkegqseafddrhvvfze3u5zghtf2l6zgc0dwsxqc89e",
"red-bank": "neutron15yd62stm3y3rrea6tw8xj3232navey8ugzyr29e8jc0wzgkuu2mqlnhfkt",
"incentives": "neutron1dj6jfctqmtzu3497yp2s0px5ucaakere8mahwgleqftgmkn6eers2rtdyp",
"oracle": "neutron13nyf8s03z30ha4ry9utv7y0pnwr3txnvdan6m0p5t549skzqwmxqx9h0xa",
"rewards-collector": "neutron16uvtpuh7qrqeg05kv8sgsjew3xg44sfj77yvse24l35nlu3gqswq303m40",
"swapper": "neutron1dax7tl6ydtpa2gym6xyaqdlrvqkkwh96q8e557fd03n945c0ux8q5k3r4j"
"address-provider": "neutron187fjlesys2c0z7xzhu43we4rx7tc4twnr5m6r2u7u5hpm03wvjqs0gk2lp",
"red-bank": "neutron15dn9w9vcdkpp2kfjuz4suqh2w8ajyqsgujlykm9x58hsjss5ff7qpmhlln",
"incentives": "neutron187hw8pqfhmxt4tk9star7tkjhu438k566jtgjskz4889pndp2vysh73ezh",
"oracle": "neutron1g4samkydfdyjec424ccucvjcuuls0ql8mfp2glf739mg0uqr74yqhdx9kn",
"rewards-collector": "neutron1re4v85k6kr8r7f3j4s4vrk3dvlyefc3xeg7jetv2jlpskahs5xrs8d6vw5",
"swapper": "neutron16xdh5w4dynfjrvnfuhv9h2znks94fyt4gp448jhtmjs3xd6smjvqumh9x2"
}
148 changes: 90 additions & 58 deletions scripts/deploy/base/deployer.ts
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ export class Deployer {
async instantiateOracle(init_params?: WasmOracleCustomInitParams) {
const msg: OracleInstantiateMsg = {
owner: this.deployerAddress,
base_denom: this.config.baseAssetDenom,
base_denom: this.config.oracleBaseDenom,
custom_init: init_params,
}
await this.instantiate('oracle', this.storage.codeIds.oracle!, msg)
Expand All @@ -151,15 +151,16 @@ export class Deployer {
safety_fund_denom: this.config.safetyFundDenom,
fee_collector_denom: this.config.feeCollectorDenom,
channel_id: this.config.channelId,
timeout_seconds: this.config.rewardCollectorTimeoutSeconds,
timeout_seconds: this.config.rewardsCollectorTimeoutSeconds,
slippage_tolerance: this.config.slippage_tolerance,
neutron_ibc_config: this.config.rewardsCollectorNeutronIbcConfig,
}
await this.instantiate('rewards-collector', this.storage.codeIds['rewards-collector']!, msg)
}

async instantiateSwapper() {
const msg: SwapperInstantiateMsg = {
owner: this.storage.owner!,
owner: this.deployerAddress,
}

await this.instantiate('swapper', this.storage.codeIds.swapper!, msg)
Expand Down Expand Up @@ -302,6 +303,8 @@ export class Deployer {
printYellow(`Twap snapshots recorded for denoms: ${denoms.join(',')}.`)
}
async setOracle(oracleConfig: OracleConfig) {
printBlue(`Setting oracle price source: ${JSON.stringify(oracleConfig)}`)

const msg = {
set_price_source: oracleConfig,
}
Expand All @@ -317,7 +320,7 @@ export class Deployer {
})) as { price: number; denom: string }

printGreen(
`${this.config.chainId} :: ${oracleConfig.denom} oracle price : ${JSON.stringify(
`${this.config.chainId} :: ${oracleConfig.denom} oracle price: ${JSON.stringify(
oracleResult,
)}`,
)
Expand Down Expand Up @@ -421,62 +424,74 @@ export class Deployer {
const coins = [
{
denom: this.config.atomDenom,
amount: '2000000',
amount: '20000',
},
]
await this.client.sendTokens(
this.deployerAddress,
this.storage.addresses['rewards-collector']!,
coins,
'auto',
)

// Check contract balance before swap
const atomBalanceBefore = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.atomDenom,
)
const baseAssetBalanceBefore = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.baseAssetDenom,
)
printYellow(
`Rewards Collector balance:
${atomBalanceBefore.amount} ${atomBalanceBefore.denom}
${baseAssetBalanceBefore.amount} ${baseAssetBalanceBefore.denom}`,
)

// Execute swap
const msg = {
swap_asset: {
denom: this.config.atomDenom,
},
}
await this.client.execute(
const deployerAtomBalance = await this.client.getBalance(
this.deployerAddress,
this.storage.addresses['rewards-collector']!,
msg,
'auto',
)
// Check contract balance after swap
const atomBalanceAfter = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.atomDenom,
)
const baseAssetBalanceAfter = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.baseAssetDenom,
)
printYellow(
`Swap executed. Rewards Collector balance:
${atomBalanceAfter.amount} ${atomBalanceAfter.denom},
${baseAssetBalanceAfter.amount} ${baseAssetBalanceAfter.denom}`,
)

// swapped all atom balance
assert.equal(Number(atomBalanceAfter.amount), 0)
// base asset balance should be greater after swap
assert(Number(baseAssetBalanceAfter.amount) > Number(baseAssetBalanceBefore.amount))
if (Number(deployerAtomBalance.amount) < Number(coins[0].amount)) {
printRed(
`not enough ATOM tokens to complete rewards-collector swap action, ${this.deployerAddress} has ${deployerAtomBalance.amount} ATOM but needs ${coins[0].amount}.`,
)
} else {
await this.client.sendTokens(
this.deployerAddress,
this.storage.addresses['rewards-collector']!,
coins,
'auto',
)

// Check contract balance before swap
const atomBalanceBefore = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.atomDenom,
)
const baseAssetBalanceBefore = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.baseAssetDenom,
)
printYellow(
`Rewards Collector balance:
${atomBalanceBefore.amount} ${atomBalanceBefore.denom}
${baseAssetBalanceBefore.amount} ${baseAssetBalanceBefore.denom}`,
)

// Execute swap
const msg = {
swap_asset: {
denom: this.config.atomDenom,
},
}
await this.client.execute(
this.deployerAddress,
this.storage.addresses['rewards-collector']!,
msg,
'auto',
)
// Check contract balance after swap
const atomBalanceAfter = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.atomDenom,
)
const baseAssetBalanceAfter = await this.client.getBalance(
this.storage.addresses['rewards-collector']!,
this.config.baseAssetDenom,
)
printYellow(
`Swap executed. Rewards Collector balance:
${atomBalanceAfter.amount} ${atomBalanceAfter.denom},
${baseAssetBalanceAfter.amount} ${baseAssetBalanceAfter.denom}`,
)

// swapped all atom balance
assert.equal(Number(atomBalanceAfter.amount), 0)
// base asset balance should be greater after swap
assert(Number(baseAssetBalanceAfter.amount) > Number(baseAssetBalanceBefore.amount))
}
}

async updateIncentivesContractOwner() {
Expand All @@ -494,7 +509,7 @@ export class Deployer {
{
config: {},
},
)) as { proposed_new_owner: string; prefix: string }
)) as { proposed_new_owner: string }

printRed(`${incentivesConfig.proposed_new_owner}`)
assert.equal(incentivesConfig.proposed_new_owner, this.config.multisigAddr)
Expand All @@ -520,7 +535,7 @@ export class Deployer {
{
config: {},
},
)) as { proposed_new_owner: string; prefix: string }
)) as { proposed_new_owner: string }

assert.equal(redbankConfig.proposed_new_owner, this.config.multisigAddr)
}
Expand All @@ -537,7 +552,7 @@ export class Deployer {
printYellow('Owner updated to Mutlisig for Oracle')
const oracleConfig = (await this.client.queryContractSmart(this.storage.addresses.oracle!, {
config: {},
})) as { proposed_new_owner: string; prefix: string }
})) as { proposed_new_owner: string }

assert.equal(oracleConfig.proposed_new_owner, this.config.multisigAddr)
}
Expand All @@ -562,11 +577,28 @@ export class Deployer {
{
config: {},
},
)) as { proposed_new_owner: string; prefix: string }
)) as { proposed_new_owner: string }

assert.equal(rewardsConfig.proposed_new_owner, this.config.multisigAddr)
}

async updateSwapperContractOwner() {
const msg = {
update_owner: {
propose_new_owner: {
proposed: this.storage.owner,
},
},
}
await this.client.execute(this.deployerAddress, this.storage.addresses.swapper!, msg, 'auto')
printYellow('Owner updated to Mutlisig for Swapper')
const swapperConfig = (await this.client.queryContractSmart(this.storage.addresses.swapper!, {
owner: {},
})) as { proposed: string }

assert.equal(swapperConfig.proposed, this.config.multisigAddr)
}

async updateAddressProviderContractOwner() {
const msg = {
update_owner: {
Expand All @@ -587,7 +619,7 @@ export class Deployer {
{
config: {},
},
)) as { proposed_new_owner: string; prefix: string }
)) as { proposed_new_owner: string }

assert.equal(addressProviderConfig.proposed_new_owner, this.config.multisigAddr)
}
Expand Down
8 changes: 6 additions & 2 deletions scripts/deploy/base/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ export const taskRunner = async (config: DeploymentConfig) => {
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('rewards-collector', `mars_rewards_collector.wasm`)
await deployer.upload(
'rewards-collector',
`mars_rewards_collector_${config.rewardsCollectorName}.wasm`,
)
await deployer.upload('swapper', `mars_swapper_${config.swapperDexName}.wasm`)

// Instantiate contracts
Expand All @@ -37,7 +40,7 @@ export const taskRunner = async (config: DeploymentConfig) => {
await deployer.setOracle(oracleConfig)
}

//run tests
// run tests
if (config.runTests) {
await deployer.executeDeposit()
await deployer.executeBorrow()
Expand All @@ -51,6 +54,7 @@ export const taskRunner = async (config: DeploymentConfig) => {
await deployer.updateRedBankContractOwner()
await deployer.updateOracleContractOwner()
await deployer.updateRewardsContractOwner()
await deployer.updateSwapperContractOwner()
await deployer.updateAddressProviderContractOwner()
printGreen('It is confirmed that all contracts have transferred ownership to the Multisig')
} else {
Expand Down
Loading