Skip to content

Commit 397d2b6

Browse files
committed
chore: update to latest CosmWasm
1 parent d56991c commit 397d2b6

11 files changed

+193
-188
lines changed

Cargo.lock

Lines changed: 124 additions & 123 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

build_release.sh

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ if [[ $(arch) = "arm64" ]]; then
55
ARCH=-arm64
66
fi
77

8-
docker run --rm -v "$(pwd)":/code -v "$HOME/.cargo/git":/usr/local/cargo/git \
9-
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
10-
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
11-
cosmwasm/workspace-optimizer${ARCH}:0.12.13
8+
for contract_dir in contracts/*; do
9+
docker run --rm -v "$(pwd)":/code -v "$HOME/.cargo/git":/usr/local/cargo/git \
10+
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/target \
11+
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
12+
cosmwasm/workspace-optimizer${ARCH}:0.15.0 "$contract_dir"
13+
done

contracts/swap/Cargo.toml

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@ optimize = """docker run --rm -v "$(pwd)":/code \
2929
"""
3030

3131
[dependencies]
32-
cosmwasm-std = "1.0.0"
33-
cosmwasm-storage = "1.0.0"
32+
cosmwasm-std = { version = "1.5.0", features = [ "abort", "cosmwasm_1_2", "cosmwasm_1_3", "cosmwasm_1_4", "iterator", "stargate" ] }
33+
cosmwasm-storage = "1.5.0"
3434
cw-storage-plus = "0.14.0"
3535
cw-utils = "0.14.0"
3636
cw2 = "0.14.0"
37-
injective-cosmwasm = { version = "0.2.2" }
38-
injective-math = { version = "0.1.17" }
39-
injective-protobuf = { version = "0.1", git = "https://github.com/InjectiveLabs/cw-injective", branch = "dev" }
37+
injective-cosmwasm = { version = "0.2.18" }
38+
injective-math = { version = "0.2.4" }
39+
injective-protobuf = { version = "0.2.2" }
4040
num-traits = "0.2.15"
4141
protobuf = { version = "2", features = [ "with-bytes" ] }
4242
schemars = "0.8.8"
@@ -45,8 +45,8 @@ serde-json-wasm = "0.5.1"
4545
thiserror = { version = "1.0.31" }
4646

4747
[dev-dependencies]
48-
cosmwasm-schema = "1.0.0"
48+
cosmwasm-schema = "1.5.0"
4949
cw-multi-test = "0.16.2"
50-
injective-std = { version = "0.1.3" }
51-
injective-test-tube = { version = "1.1.3", git = "https://github.com/InjectiveLabs/test-tube.git", tag = "v1.1.3" }
50+
injective-std = { version = "0.1.5" }
51+
injective-test-tube = { git = "https://github.com/InjectiveLabs/test-tube", branch = "dev" }
5252
prost = "0.11.9"

contracts/swap/src/contract.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
#[cfg(not(feature = "library"))]
22
use cosmwasm_std::entry_point;
33
use cosmwasm_std::{
4-
to_binary, Binary, Deps, DepsMut, Env, MessageInfo, Reply, Response, StdResult,
4+
to_json_binary, Binary, Deps, DepsMut, Env, MessageInfo, Reply, Response, StdResult,
55
};
66
use cw2::set_contract_version;
77

@@ -104,7 +104,7 @@ pub fn query(deps: Deps<InjectiveQueryWrapper>, env: Env, msg: QueryMsg) -> StdR
104104
QueryMsg::GetRoute {
105105
source_denom,
106106
target_denom,
107-
} => Ok(to_binary(&read_swap_route(
107+
} => Ok(to_json_binary(&read_swap_route(
108108
deps.storage,
109109
&source_denom,
110110
&target_denom,
@@ -121,7 +121,7 @@ pub fn query(deps: Deps<InjectiveQueryWrapper>, env: Env, msg: QueryMsg) -> StdR
121121
target_denom,
122122
SwapQuantity::InputQuantity(from_quantity),
123123
)?;
124-
Ok(to_binary(&target_quantity)?)
124+
Ok(to_json_binary(&target_quantity)?)
125125
}
126126
QueryMsg::GetInputQuantity {
127127
to_quantity,
@@ -135,11 +135,11 @@ pub fn query(deps: Deps<InjectiveQueryWrapper>, env: Env, msg: QueryMsg) -> StdR
135135
target_denom,
136136
SwapQuantity::OutputQuantity(to_quantity),
137137
)?;
138-
Ok(to_binary(&target_quantity)?)
138+
Ok(to_json_binary(&target_quantity)?)
139139
}
140140
QueryMsg::GetAllRoutes {} => {
141141
let routes = get_all_swap_routes(deps.storage)?;
142-
Ok(to_binary(&routes)?)
142+
Ok(to_json_binary(&routes)?)
143143
}
144144
}
145145
}

contracts/swap/src/helpers.rs

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ use cosmwasm_std::{CosmosMsg, SubMsg};
22

33
use injective_cosmwasm::InjectiveMsgWrapper;
44
use injective_math::FPDecimal;
5-
use num_traits::pow::Pow;
65

76
pub fn i32_to_dec(source: i32) -> FPDecimal {
87
FPDecimal::from(i128::from(source))
@@ -39,12 +38,15 @@ pub trait Scaled {
3938

4039
impl Scaled for FPDecimal {
4140
fn scaled(self, digits: i32) -> Self {
42-
self.to_owned() * FPDecimal::from(10i128).pow(FPDecimal::from(digits as i128))
41+
self.to_owned()
42+
* FPDecimal::from(10i128)
43+
.pow(FPDecimal::from(digits as i128))
44+
.unwrap()
4345
}
4446
}
4547

4648
pub fn dec_scale_factor() -> FPDecimal {
47-
FPDecimal::one().scaled(18)
49+
FPDecimal::ONE.scaled(18)
4850
// FPDecimal::from(1000000000000000000_i128)
4951
}
5052

contracts/swap/src/queries.rs

Lines changed: 10 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ pub fn estimate_single_swap_execution(
127127

128128
let fee_percent = market.taker_fee_rate
129129
* fee_multiplier
130-
* (FPDecimal::one() - get_effective_fee_discount_rate(&market, is_self_relayer));
130+
* (FPDecimal::ONE - get_effective_fee_discount_rate(&market, is_self_relayer));
131131

132132
let is_estimating_from_target = matches!(
133133
swap_estimation_amount,
@@ -164,7 +164,7 @@ fn estimate_execution_buy_from_source(
164164
fee_percent: FPDecimal,
165165
is_simulation: bool,
166166
) -> StdResult<StepExecutionEstimate> {
167-
let available_swap_quote_funds = input_quote_quantity / (FPDecimal::one() + fee_percent);
167+
let available_swap_quote_funds = input_quote_quantity / (FPDecimal::ONE + fee_percent);
168168

169169
let orders = querier.query_spot_market_orderbook(
170170
&market.market_id,
@@ -190,7 +190,7 @@ fn estimate_execution_buy_from_source(
190190
let fee_estimate = input_quote_quantity - available_swap_quote_funds;
191191

192192
// check if user funds + contract funds are enough to create order
193-
let required_funds = worst_price * expected_base_quantity * (FPDecimal::one() + fee_percent);
193+
let required_funds = worst_price * expected_base_quantity * (FPDecimal::ONE + fee_percent);
194194
let funds_in_contract = deps
195195
.querier
196196
.query_balance(contract_address, &market.quote_denom)
@@ -260,8 +260,7 @@ fn estimate_execution_buy_from_target(
260260
let required_input_quote_quantity = expected_exchange_quote_quantity + fee_estimate;
261261

262262
// check if user funds + contract funds are enough to create order
263-
let required_funds =
264-
worst_price * target_base_output_quantity * (FPDecimal::one() + fee_percent);
263+
let required_funds = worst_price * target_base_output_quantity * (FPDecimal::ONE + fee_percent);
265264

266265
let funds_in_contract = deps
267266
.querier
@@ -386,7 +385,7 @@ fn estimate_execution_sell_from_target(
386385
fee_percent: FPDecimal,
387386
) -> StdResult<StepExecutionEstimate> {
388387
let required_swap_quantity_in_quote =
389-
target_quote_output_quantity / (FPDecimal::one() - fee_percent);
388+
target_quote_output_quantity / (FPDecimal::ONE - fee_percent);
390389
let required_fee = required_swap_quantity_in_quote - target_quote_output_quantity;
391390

392391
let orders = querier.query_spot_market_orderbook(
@@ -456,14 +455,14 @@ pub fn get_minimum_liquidity_levels(
456455
calc: fn(&PriceLevel) -> FPDecimal,
457456
min_quantity_tick_size: FPDecimal,
458457
) -> StdResult<Vec<PriceLevel>> {
459-
let mut sum = FPDecimal::zero();
458+
let mut sum = FPDecimal::ZERO;
460459
let mut orders: Vec<PriceLevel> = Vec::new();
461460

462461
for level in levels {
463462
let value = calc(level);
464463
assert_ne!(
465464
value,
466-
FPDecimal::zero(),
465+
FPDecimal::ZERO,
467466
"Price level with zero value, this should not happen"
468467
);
469468

@@ -506,13 +505,13 @@ fn get_average_price_from_orders(
506505
) -> FPDecimal {
507506
let (total_quantity, total_notional) = levels
508507
.iter()
509-
.fold((FPDecimal::zero(), FPDecimal::zero()), |acc, pl| {
508+
.fold((FPDecimal::ZERO, FPDecimal::ZERO), |acc, pl| {
510509
(acc.0 + pl.q, acc.1 + pl.p * pl.q)
511510
});
512511

513512
assert_ne!(
514513
total_quantity,
515-
FPDecimal::zero(),
514+
FPDecimal::ZERO,
516515
"total_quantity was zero and would result in division by zero"
517516
);
518517
let average_price = total_notional / total_quantity;
@@ -530,7 +529,7 @@ fn get_worst_price_from_orders(levels: &[PriceLevel]) -> FPDecimal {
530529

531530
fn get_effective_fee_discount_rate(market: &SpotMarket, is_self_relayer: bool) -> FPDecimal {
532531
if !is_self_relayer {
533-
FPDecimal::zero()
532+
FPDecimal::ZERO
534533
} else {
535534
market.relayer_fee_share_rate
536535
}

contracts/swap/src/swap.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ pub fn start_swap_flow(
8080
let is_input_quote = first_market.quote_denom == *source_denom;
8181

8282
let required_input = if is_input_quote {
83-
estimation.result_quantity.int() + FPDecimal::one()
83+
estimation.result_quantity.int() + FPDecimal::ONE
8484
} else {
8585
round_up_to_min_tick(
8686
estimation.result_quantity,
@@ -104,7 +104,7 @@ pub fn start_swap_flow(
104104

105105
FPDecimal::from(coin_provided.amount) - estimation.result_quantity
106106
} else {
107-
FPDecimal::zero()
107+
FPDecimal::ZERO
108108
};
109109

110110
let swap_operation = CurrentSwapOperation {
@@ -157,6 +157,7 @@ pub fn execute_swap_step(
157157
&market_id,
158158
subaccount_id,
159159
Some(fee_recipient.to_owned()),
160+
None,
160161
);
161162

162163
let order_message = SubMsg::reply_on_success(

contracts/swap/src/testing/integration_logic_tests.rs

Lines changed: 19 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -130,7 +130,7 @@ fn it_executes_a_swap_between_two_base_assets_with_multiple_price_levels() {
130130
let to_balance = query_bank_balance(&bank, ATOM, swapper.address().as_str());
131131
assert_eq!(
132132
from_balance,
133-
FPDecimal::zero(),
133+
FPDecimal::ZERO,
134134
"some of the original amount wasn't swapped"
135135
);
136136
assert_eq!(
@@ -271,7 +271,7 @@ fn it_executes_a_swap_between_two_base_assets_with_single_price_level() {
271271
let to_balance = query_bank_balance(&bank, ATOM, swapper.address().as_str());
272272
assert_eq!(
273273
from_balance,
274-
FPDecimal::zero(),
274+
FPDecimal::ZERO,
275275
"some of the original amount wasn't swapped"
276276
);
277277
assert_eq!(
@@ -413,7 +413,7 @@ fn it_executes_swap_between_markets_using_different_quote_assets() {
413413
let to_balance = query_bank_balance(&bank, ATOM, swapper.address().as_str());
414414
assert_eq!(
415415
from_balance,
416-
FPDecimal::zero(),
416+
FPDecimal::ZERO,
417417
"some of the original amount wasn't swapped"
418418
);
419419
assert_eq!(
@@ -548,7 +548,7 @@ fn it_reverts_swap_between_markets_using_different_quote_asset_if_one_quote_buff
548548
);
549549
assert_eq!(
550550
target_balance,
551-
FPDecimal::zero(),
551+
FPDecimal::ZERO,
552552
"target balance should not have changed after failed swap"
553553
);
554554

@@ -619,7 +619,7 @@ fn it_executes_a_sell_of_base_asset_to_receive_min_output_quantity() {
619619
+ FPDecimal::from(195_000u128) * FPDecimal::from(4u128)
620620
+ FPDecimal::from(192_000u128) * FPDecimal::from(3u128);
621621
let expected_target_quantity = orders_nominal_total_value
622-
* (FPDecimal::one()
622+
* (FPDecimal::ONE
623623
- FPDecimal::must_from_str(&format!(
624624
"{}",
625625
DEFAULT_TAKER_FEE * DEFAULT_ATOMIC_MULTIPLIER * DEFAULT_SELF_RELAYING_FEE_PART
@@ -665,7 +665,7 @@ fn it_executes_a_sell_of_base_asset_to_receive_min_output_quantity() {
665665

666666
assert_eq!(
667667
from_balance,
668-
FPDecimal::zero(),
668+
FPDecimal::ZERO,
669669
"some of the original amount wasn't swapped"
670670
);
671671
assert_eq!(
@@ -753,7 +753,7 @@ fn it_executes_a_buy_of_base_asset_to_receive_min_output_quantity() {
753753

754754
// calculate how much ETH we can buy with USDT we have
755755
let available_usdt_after_fee = FPDecimal::from(swapper_usdt)
756-
/ (FPDecimal::one()
756+
/ (FPDecimal::ONE
757757
+ FPDecimal::must_from_str(&format!(
758758
"{}",
759759
DEFAULT_TAKER_FEE * DEFAULT_ATOMIC_MULTIPLIER * DEFAULT_SELF_RELAYING_FEE_PART
@@ -826,7 +826,7 @@ fn it_executes_a_buy_of_base_asset_to_receive_min_output_quantity() {
826826

827827
assert_eq!(
828828
from_balance,
829-
FPDecimal::zero(),
829+
FPDecimal::ZERO,
830830
"some of the original amount wasn't swapped"
831831
);
832832
assert_eq!(
@@ -979,7 +979,7 @@ fn it_executes_a_swap_between_base_assets_with_external_fee_recipient() {
979979

980980
assert_eq!(
981981
from_balance,
982-
FPDecimal::zero(),
982+
FPDecimal::ZERO,
983983
"some of the original amount wasn't swapped"
984984
);
985985
assert_eq!(
@@ -1134,7 +1134,7 @@ fn it_reverts_the_swap_if_there_isnt_enough_buffer_for_buying_target_asset() {
11341134
);
11351135
assert_eq!(
11361136
to_balance,
1137-
FPDecimal::zero(),
1137+
FPDecimal::ZERO,
11381138
"target balance changes after failed swap"
11391139
);
11401140

@@ -1219,7 +1219,7 @@ fn it_reverts_swap_if_no_funds_were_passed() {
12191219
);
12201220
assert_eq!(
12211221
to_balance,
1222-
FPDecimal::zero(),
1222+
FPDecimal::ZERO,
12231223
"target balance changes after failed swap"
12241224
);
12251225

@@ -1394,7 +1394,7 @@ fn it_reverts_if_user_passes_quantities_equal_to_zero() {
13941394
&contr_addr,
13951395
&ExecuteMsg::SwapMinOutput {
13961396
target_denom: ATOM.to_string(),
1397-
min_output_quantity: FPDecimal::zero(),
1397+
min_output_quantity: FPDecimal::ZERO,
13981398
},
13991399
&[coin(12, ETH)],
14001400
&swapper,
@@ -1500,7 +1500,7 @@ fn it_reverts_if_user_passes_negative_quantities() {
15001500
);
15011501
assert_eq!(
15021502
to_balance,
1503-
FPDecimal::zero(),
1503+
FPDecimal::ZERO,
15041504
"target balance changed after failed swap"
15051505
);
15061506

@@ -1610,7 +1610,7 @@ fn it_reverts_if_there_arent_enough_orders_to_satisfy_min_quantity() {
16101610
);
16111611
assert_eq!(
16121612
to_balance,
1613-
FPDecimal::zero(),
1613+
FPDecimal::ZERO,
16141614
"target balance changed after failed swap"
16151615
);
16161616

@@ -1701,7 +1701,7 @@ fn it_reverts_if_min_quantity_cannot_be_reached() {
17011701
);
17021702
assert_eq!(
17031703
to_balance,
1704-
FPDecimal::zero(),
1704+
FPDecimal::ZERO,
17051705
"target balance changed after failed swap"
17061706
);
17071707

@@ -1806,7 +1806,7 @@ fn it_reverts_if_market_is_paused() {
18061806
);
18071807
assert_eq!(
18081808
to_balance,
1809-
FPDecimal::zero(),
1809+
FPDecimal::ZERO,
18101810
"target balance changed after failed swap"
18111811
);
18121812

@@ -1909,7 +1909,7 @@ fn it_reverts_if_user_doesnt_have_enough_inj_to_pay_for_gas() {
19091909
);
19101910
assert_eq!(
19111911
to_balance,
1912-
FPDecimal::zero(),
1912+
FPDecimal::ZERO,
19131913
"target balance changed after failed swap"
19141914
);
19151915

@@ -2105,14 +2105,14 @@ fn it_doesnt_allow_non_admin_to_withdraw_anything_from_contract() {
21052105
let random_dude_eth_balance = query_bank_balance(&bank, ETH, random_dude.address().as_str());
21062106
assert_eq!(
21072107
random_dude_eth_balance,
2108-
FPDecimal::zero(),
2108+
FPDecimal::ZERO,
21092109
"random dude has some eth balance after failed withdraw"
21102110
);
21112111

21122112
let random_dude_usdt_balance = query_bank_balance(&bank, USDT, random_dude.address().as_str());
21132113
assert_eq!(
21142114
random_dude_usdt_balance,
2115-
FPDecimal::zero(),
2115+
FPDecimal::ZERO,
21162116
"random dude has some usdt balance after failed withdraw"
21172117
);
21182118
}

0 commit comments

Comments
 (0)