From ebcaf7b06358253599f63d6a79549ae379889478 Mon Sep 17 00:00:00 2001 From: Piotr Babel Date: Tue, 1 Aug 2023 15:40:12 +0200 Subject: [PATCH] Update cw2 naming. Update config response. --- Cargo.lock | 2 + contracts/address-provider/src/contract.rs | 5 +- contracts/incentives/src/contract.rs | 5 +- contracts/oracle/osmosis/src/contract.rs | 5 +- contracts/oracle/wasm/src/contract.rs | 3 +- contracts/red-bank/src/execute.rs | 5 +- .../rewards-collector/base/src/contract.rs | 1 + .../rewards-collector/neutron/Cargo.toml | 2 +- .../rewards-collector/neutron/src/lib.rs | 5 ++ .../rewards-collector/osmosis/Cargo.toml | 2 +- .../rewards-collector/osmosis/src/lib.rs | 5 ++ .../osmosis/tests/test_admin.rs | 1 + packages/types/src/rewards_collector.rs | 2 + .../mars-rewards-collector-base.json | 56 +++++++++++++++++++ .../MarsRewardsCollectorBase.types.ts | 1 + 15 files changed, 89 insertions(+), 11 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index ceffa0018..01b560ac4 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1916,6 +1916,7 @@ dependencies = [ "cosmwasm-schema", "cosmwasm-std", "cw-storage-plus 1.1.0", + "cw2 1.1.0", "mars-osmosis", "mars-owner", "mars-red-bank-types", @@ -1936,6 +1937,7 @@ dependencies = [ "cosmwasm-schema", "cosmwasm-std", "cw-storage-plus 1.1.0", + "cw2 1.1.0", "mars-osmosis", "mars-owner", "mars-red-bank-types", diff --git a/contracts/address-provider/src/contract.rs b/contracts/address-provider/src/contract.rs index 94082b9ab..ed23ef332 100644 --- a/contracts/address-provider/src/contract.rs +++ b/contracts/address-provider/src/contract.rs @@ -5,6 +5,7 @@ use cosmwasm_std::entry_point; use cosmwasm_std::{ to_binary, Addr, Binary, Deps, DepsMut, Env, MessageInfo, Order, Response, StdResult, }; +use cw2::set_contract_version; use cw_storage_plus::Bound; use mars_owner::{OwnerInit::SetInitialOwner, OwnerUpdate}; use mars_red_bank_types::address_provider::{ @@ -19,7 +20,7 @@ use crate::{ state::{ADDRESSES, CONFIG, OWNER}, }; -pub const CONTRACT_NAME: &str = "crates.io:mars-address-provider"; +pub const CONTRACT_NAME: &str = env!("CARGO_PKG_NAME"); pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); const DEFAULT_LIMIT: u32 = 10; @@ -34,7 +35,7 @@ pub fn instantiate( _info: MessageInfo, msg: InstantiateMsg, ) -> Result { - cw2::set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; assert_valid_prefix(&msg.owner, &msg.prefix)?; diff --git a/contracts/incentives/src/contract.rs b/contracts/incentives/src/contract.rs index 4d8bd08c5..ec48353fb 100644 --- a/contracts/incentives/src/contract.rs +++ b/contracts/incentives/src/contract.rs @@ -4,6 +4,7 @@ use cosmwasm_std::{ attr, to_binary, Addr, BankMsg, Binary, Coin, Coins, Decimal, Deps, DepsMut, Env, Event, MessageInfo, Order, Response, StdError, StdResult, Uint128, }; +use cw2::set_contract_version; use cw_storage_plus::Bound; use mars_owner::{OwnerInit::SetInitialOwner, OwnerUpdate}; use mars_red_bank_types::{ @@ -27,7 +28,7 @@ use crate::{ }, }; -pub const CONTRACT_NAME: &str = "crates.io:mars-incentives"; +pub const CONTRACT_NAME: &str = env!("CARGO_PKG_NAME"); pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); /// The epoch duration should be at least one week, perhaps ideally one month. This is to ensure @@ -43,7 +44,7 @@ pub fn instantiate( _info: MessageInfo, msg: InstantiateMsg, ) -> Result { - cw2::set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; OWNER.initialize( deps.storage, diff --git a/contracts/oracle/osmosis/src/contract.rs b/contracts/oracle/osmosis/src/contract.rs index 254fdebbb..0e89b0102 100644 --- a/contracts/oracle/osmosis/src/contract.rs +++ b/contracts/oracle/osmosis/src/contract.rs @@ -8,12 +8,13 @@ use crate::{OsmosisPriceSourceChecked, OsmosisPriceSourceUnchecked}; pub type OsmosisOracle<'a> = OracleBase<'a, OsmosisPriceSourceChecked, OsmosisPriceSourceUnchecked, Empty, Empty, Empty>; -pub const CONTRACT_NAME: &str = "crates.io:mars-oracle-osmosis"; +pub const CONTRACT_NAME: &str = env!("CARGO_PKG_NAME"); pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); #[cfg(not(feature = "library"))] pub mod entry { use cosmwasm_std::{entry_point, Binary, Deps, DepsMut, Env, MessageInfo, Response}; + use cw2::set_contract_version; use mars_oracle_base::ContractResult; use mars_red_bank_types::oracle::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; @@ -27,7 +28,7 @@ pub mod entry { _info: MessageInfo, msg: InstantiateMsg, ) -> ContractResult { - cw2::set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; OsmosisOracle::default().instantiate(deps, msg) } diff --git a/contracts/oracle/wasm/src/contract.rs b/contracts/oracle/wasm/src/contract.rs index ab81f84fc..efc7d1624 100644 --- a/contracts/oracle/wasm/src/contract.rs +++ b/contracts/oracle/wasm/src/contract.rs @@ -23,6 +23,7 @@ pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); #[cfg(not(feature = "library"))] pub mod entry { use cosmwasm_std::{entry_point, Binary, Decimal, Deps, DepsMut, Env, MessageInfo, Response}; + use cw2::set_contract_version; use mars_oracle_base::{ContractError, ContractResult}; use mars_red_bank_types::oracle::msg::{ExecuteMsg, InstantiateMsg, QueryMsg}; @@ -36,7 +37,7 @@ pub mod entry { _info: MessageInfo, msg: InstantiateMsg, ) -> ContractResult { - cw2::set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; let custom_init = msg.custom_init.as_ref().ok_or(ContractError::MissingCustomInitParams {})?; diff --git a/contracts/red-bank/src/execute.rs b/contracts/red-bank/src/execute.rs index 48bec8c42..9507d5ec5 100644 --- a/contracts/red-bank/src/execute.rs +++ b/contracts/red-bank/src/execute.rs @@ -3,6 +3,7 @@ use std::{cmp::min, str}; use cosmwasm_std::{ Addr, Decimal, DepsMut, Env, MessageInfo, Response, StdError, StdResult, Uint128, }; +use cw2::set_contract_version; use mars_owner::{OwnerError, OwnerInit::SetInitialOwner, OwnerUpdate}; use mars_red_bank_types::{ address_provider::{self, MarsAddressType}, @@ -30,11 +31,11 @@ use crate::{ user::User, }; -pub const CONTRACT_NAME: &str = "crates.io:mars-red-bank"; +pub const CONTRACT_NAME: &str = env!("CARGO_PKG_NAME"); pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); pub fn instantiate(deps: DepsMut, msg: InstantiateMsg) -> Result { - cw2::set_contract_version(deps.storage, CONTRACT_NAME, CONTRACT_VERSION)?; + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; // Destructuring a struct’s fields into separate variables in order to force // compile error if we add more params diff --git a/contracts/rewards-collector/base/src/contract.rs b/contracts/rewards-collector/base/src/contract.rs index a3ef2a5c4..17a39f599 100644 --- a/contracts/rewards-collector/base/src/contract.rs +++ b/contracts/rewards-collector/base/src/contract.rs @@ -349,6 +349,7 @@ where channel_id: cfg.channel_id, timeout_seconds: cfg.timeout_seconds, slippage_tolerance: cfg.slippage_tolerance, + neutron_ibc_config: cfg.neutron_ibc_config, }) } } diff --git a/contracts/rewards-collector/neutron/Cargo.toml b/contracts/rewards-collector/neutron/Cargo.toml index 4768109ec..b3165b981 100644 --- a/contracts/rewards-collector/neutron/Cargo.toml +++ b/contracts/rewards-collector/neutron/Cargo.toml @@ -28,6 +28,7 @@ backtraces = [ [dependencies] cosmwasm-schema = { workspace = true } cosmwasm-std = { workspace = true, features = ["stargate"] } +cw2 = { workspace = true } cw-storage-plus = { workspace = true } mars-owner = { workspace = true } mars-red-bank-types = { workspace = true } @@ -38,7 +39,6 @@ serde = { workspace = true } thiserror = { workspace = true } neutron-sdk = { workspace = true } - [dev-dependencies] mars-osmosis = { workspace = true } mars-testing = { workspace = true } diff --git a/contracts/rewards-collector/neutron/src/lib.rs b/contracts/rewards-collector/neutron/src/lib.rs index f2360ecce..d84861f71 100644 --- a/contracts/rewards-collector/neutron/src/lib.rs +++ b/contracts/rewards-collector/neutron/src/lib.rs @@ -50,12 +50,16 @@ pub mod entry { use cosmwasm_std::{ entry_point, Binary, Deps, DepsMut, Empty, Env, MessageInfo, Response, StdResult, }; + use cw2::set_contract_version; use mars_red_bank_types::rewards_collector::{ExecuteMsg, InstantiateMsg, QueryMsg}; use mars_rewards_collector_base::ContractResult; use neutron_sdk::bindings::msg::NeutronMsg; use crate::NeutronCollector; + pub const CONTRACT_NAME: &str = env!("CARGO_PKG_NAME"); + pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); + #[entry_point] pub fn instantiate( deps: DepsMut, @@ -63,6 +67,7 @@ pub mod entry { info: MessageInfo, msg: InstantiateMsg, ) -> ContractResult { + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; let collector = NeutronCollector::default(); collector.instantiate(deps, env, info, msg) } diff --git a/contracts/rewards-collector/osmosis/Cargo.toml b/contracts/rewards-collector/osmosis/Cargo.toml index f35b4d951..2b4a2acb7 100644 --- a/contracts/rewards-collector/osmosis/Cargo.toml +++ b/contracts/rewards-collector/osmosis/Cargo.toml @@ -28,6 +28,7 @@ backtraces = [ [dependencies] cosmwasm-schema = { workspace = true } cosmwasm-std = { workspace = true, features = ["stargate"] } +cw2 = { workspace = true } cw-storage-plus = { workspace = true } mars-owner = { workspace = true } mars-red-bank-types = { workspace = true } @@ -37,7 +38,6 @@ schemars = { workspace = true } serde = { workspace = true } thiserror = { workspace = true } - [dev-dependencies] mars-osmosis = { workspace = true } mars-testing = { workspace = true } diff --git a/contracts/rewards-collector/osmosis/src/lib.rs b/contracts/rewards-collector/osmosis/src/lib.rs index c22b450d8..e7ddad77c 100644 --- a/contracts/rewards-collector/osmosis/src/lib.rs +++ b/contracts/rewards-collector/osmosis/src/lib.rs @@ -3,9 +3,13 @@ pub mod entry { use cosmwasm_std::{ entry_point, Binary, Deps, DepsMut, Empty, Env, MessageInfo, Response, StdResult, }; + use cw2::set_contract_version; use mars_red_bank_types::rewards_collector::{ExecuteMsg, InstantiateMsg, QueryMsg}; use mars_rewards_collector_base::{contract::Collector, ContractResult}; + pub const CONTRACT_NAME: &str = env!("CARGO_PKG_NAME"); + pub const CONTRACT_VERSION: &str = env!("CARGO_PKG_VERSION"); + pub type OsmosisCollector<'a> = Collector<'a, Empty, Empty>; #[entry_point] @@ -15,6 +19,7 @@ pub mod entry { info: MessageInfo, msg: InstantiateMsg, ) -> ContractResult { + set_contract_version(deps.storage, format!("crates.io:{CONTRACT_NAME}"), CONTRACT_VERSION)?; let collector = OsmosisCollector::default(); collector.instantiate(deps, env, info, msg) } diff --git a/contracts/rewards-collector/osmosis/tests/test_admin.rs b/contracts/rewards-collector/osmosis/tests/test_admin.rs index e25cd06c8..9fff2f58e 100644 --- a/contracts/rewards-collector/osmosis/tests/test_admin.rs +++ b/contracts/rewards-collector/osmosis/tests/test_admin.rs @@ -31,6 +31,7 @@ fn instantiating() { channel_id: config.channel_id, timeout_seconds: config.timeout_seconds, slippage_tolerance: config.slippage_tolerance, + neutron_ibc_config: config.neutron_ibc_config } ); diff --git a/packages/types/src/rewards_collector.rs b/packages/types/src/rewards_collector.rs index ee11c8f58..748e51c0a 100644 --- a/packages/types/src/rewards_collector.rs +++ b/packages/types/src/rewards_collector.rs @@ -180,6 +180,8 @@ pub struct ConfigResponse { pub timeout_seconds: u64, /// Maximum percentage of price movement (minimum amount you accept to receive during swap) pub slippage_tolerance: Decimal, + /// Neutron Ibc config + pub neutron_ibc_config: Option, } #[cw_serde] diff --git a/schemas/mars-rewards-collector-base/mars-rewards-collector-base.json b/schemas/mars-rewards-collector-base/mars-rewards-collector-base.json index 2be4ffe4f..e0b95cadc 100644 --- a/schemas/mars-rewards-collector-base/mars-rewards-collector-base.json +++ b/schemas/mars-rewards-collector-base/mars-rewards-collector-base.json @@ -552,6 +552,17 @@ "description": "The asset to which the fee collector share is converted", "type": "string" }, + "neutron_ibc_config": { + "description": "Neutron Ibc config", + "anyOf": [ + { + "$ref": "#/definitions/NeutronIbcConfig" + }, + { + "type": "null" + } + ] + }, "owner": { "description": "The contract's owner", "type": [ @@ -595,9 +606,54 @@ }, "additionalProperties": false, "definitions": { + "Coin": { + "type": "object", + "required": [ + "amount", + "denom" + ], + "properties": { + "amount": { + "$ref": "#/definitions/Uint128" + }, + "denom": { + "type": "string" + } + } + }, "Decimal": { "description": "A fixed-point decimal value with 18 fractional digits, i.e. Decimal(1_000_000_000_000_000_000) == 1.0\n\nThe greatest possible value that can be represented is 340282366920938463463.374607431768211455 (which is (2^128 - 1) / 10^18)", "type": "string" + }, + "NeutronIbcConfig": { + "type": "object", + "required": [ + "acc_fee", + "source_port", + "timeout_fee" + ], + "properties": { + "acc_fee": { + "type": "array", + "items": { + "$ref": "#/definitions/Coin" + } + }, + "source_port": { + "type": "string" + }, + "timeout_fee": { + "type": "array", + "items": { + "$ref": "#/definitions/Coin" + } + } + }, + "additionalProperties": false + }, + "Uint128": { + "description": "A thin wrapper around u128 that is using strings for JSON encoding/decoding, such that the full u128 range can be used for clients that convert JSON numbers to floats, like JavaScript and jq.\n\n# Examples\n\nUse `from` to create instances of this and `u128` to get the value out:\n\n``` # use cosmwasm_std::Uint128; let a = Uint128::from(123u128); assert_eq!(a.u128(), 123);\n\nlet b = Uint128::from(42u64); assert_eq!(b.u128(), 42);\n\nlet c = Uint128::from(70u32); assert_eq!(c.u128(), 70); ```", + "type": "string" } } } diff --git a/scripts/types/generated/mars-rewards-collector-base/MarsRewardsCollectorBase.types.ts b/scripts/types/generated/mars-rewards-collector-base/MarsRewardsCollectorBase.types.ts index a1148e582..eaef259bb 100644 --- a/scripts/types/generated/mars-rewards-collector-base/MarsRewardsCollectorBase.types.ts +++ b/scripts/types/generated/mars-rewards-collector-base/MarsRewardsCollectorBase.types.ts @@ -94,6 +94,7 @@ export interface ConfigResponse { address_provider: string channel_id: string fee_collector_denom: string + neutron_ibc_config?: NeutronIbcConfig | null owner?: string | null proposed_new_owner?: string | null safety_fund_denom: string