Skip to content

Commit 37de961

Browse files
authored
Merge pull request #264 from InjectiveLabs/feat/upgrade-to-chain-1.18
2 parents cbac7f2 + dda4034 commit 37de961

6 files changed

Lines changed: 63 additions & 38 deletions

File tree

.gitignore

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,3 +27,4 @@ tarpaulin-report.*
2727
packages/*/schema
2828
contracts/*/schema
2929
/packages/injective-cosmwasm/Cargo.lock
30+
/CLAUDE.md

build.sh

Lines changed: 36 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -1,42 +1,55 @@
11
#!/bin/bash
2-
# Usage: ./build.sh [contract-name]
3-
# Purpose: Builds a CosmWasm smart contract using the cosmwasm/optimizer Docker image.
4-
# - Defaults to building the 'injective-cosmwasm-mock' contract if no argument is provided.
5-
# - Specify a contract name (e.g., 'atomic-order-example') to build a different contract.
6-
# - The contract must be a directory in 'contracts/' (e.g., 'contracts/[contract-name]').
7-
# - Run from the workspace root (e.g., cw-injective) to ensure access to the workspace pCargo.toml.
8-
# Examples:
9-
# ./build.sh # Builds injective-cosmwasm-mock
10-
# ./build.sh atomic-order-example # Builds atomic-order-example
11-
# ./build.sh dummy # Builds dummy
12-
# ./build.sh injective-cosmwasm-stargate-example # Builds injective-cosmwasm-stargate-example
13-
# Output: Produces an optimized .wasm file in target/wasm32-unknown-unknown/release/
2+
# Usage: ./build.sh <alias|contract-dir>
3+
# Aliases:
4+
# stargate -> injective-cosmwasm-stargate-example
5+
# mock -> injective-cosmwasm-mock
6+
# atomic -> atomic-order-example
7+
# dummy -> dummy
8+
# Full contract directory names also accepted.
149

1510
ARCH=""
16-
17-
# Set architecture suffix for arm64
18-
if [[ $(arch) = "arm64" ]]; then
11+
if [ "$(arch)" = "arm64" ]; then
1912
ARCH=-arm64
2013
fi
2114

22-
# Default contract name
23-
DEFAULT_CONTRACT="injective-cosmwasm-mock"
24-
CONTRACT=${1:-$DEFAULT_CONTRACT}
15+
resolve_alias() {
16+
case "$1" in
17+
stargate) echo "injective-cosmwasm-stargate-example" ;;
18+
mock) echo "injective-cosmwasm-mock" ;;
19+
atomic) echo "atomic-order-example" ;;
20+
dummy) echo "dummy" ;;
21+
*) echo "$1" ;;
22+
esac
23+
}
24+
25+
if [ -z "$1" ]; then
26+
echo "Usage: ./build.sh <alias|contract-dir>"
27+
echo ""
28+
echo "Aliases:"
29+
echo " stargate -> injective-cosmwasm-stargate-example"
30+
echo " mock -> injective-cosmwasm-mock"
31+
echo " atomic -> atomic-order-example"
32+
echo " dummy -> dummy"
33+
echo ""
34+
echo "Available contract directories:"
35+
ls -1 contracts/
36+
exit 1
37+
fi
38+
39+
CONTRACT=$(resolve_alias "$1")
2540

26-
# Validate that the contract directory exists
27-
if [[ ! -d "contracts/$CONTRACT" ]]; then
41+
if [ ! -d "contracts/$CONTRACT" ]; then
2842
echo "Error: Contract directory 'contracts/$CONTRACT' does not exist."
2943
echo "Available contracts:"
3044
ls -1 contracts/
3145
exit 1
3246
fi
3347

34-
# Run the optimizer with the specified or default contract
3548
docker run --rm -v "$(pwd)":/code \
3649
-v "$HOME/.cargo/git":/usr/local/cargo/git \
37-
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/code/target \
50+
--mount type=volume,source="$(basename "$(pwd)")_cache",target=/target \
3851
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
39-
cosmwasm/optimizer${ARCH}:0.16.1 /code/contracts/$CONTRACT
52+
cosmwasm/optimizer${ARCH}:0.17.0 /code/contracts/$CONTRACT
4053

4154

4255

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
#!/bin/bash
2+
ARCH=""
3+
4+
if [[ $(arch) = "arm64" ]]; then
5+
ARCH=-arm64
6+
fi
7+
8+
WORKSPACE_ROOT="$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd)"
9+
10+
docker run --rm -v "$WORKSPACE_ROOT":/code -v "$HOME/.cargo/git":/usr/local/cargo/git \
11+
--mount type=volume,source="$(basename "$WORKSPACE_ROOT")_cache",target=/target \
12+
--mount type=volume,source=registry_cache,target=/usr/local/cargo/registry \
13+
cosmwasm/optimizer${ARCH}:0.17.0 "./"

contracts/injective-cosmwasm-stargate-example/src/query.rs

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ use crate::msg::QueryStargateResponse;
33
use base64::engine::general_purpose::STANDARD as BASE64_STANDARD;
44
use base64::Engine as _;
55
use cosmwasm_std::{to_json_binary, to_json_vec, Binary, ContractResult, Deps, QuerierWrapper, QueryRequest, StdError, StdResult, SystemResult};
6-
use injective_cosmwasm::{InjectiveQuerier, InjectiveQueryWrapper, MarketId};
6+
use injective_cosmwasm::{InjectiveQueryWrapper, MarketId};
77
use injective_std::types::{cosmos::bank::v1beta1::BankQuerier, injective::exchange::v2::ExchangeQuerier as ExchangeQuerierV2};
88

99
pub fn handle_query_stargate_raw(querier: &QuerierWrapper<InjectiveQueryWrapper>, path: String, query_request: String) -> StdResult<Binary> {
@@ -27,9 +27,8 @@ pub fn handle_query_stargate_raw(querier: &QuerierWrapper<InjectiveQueryWrapper>
2727
}
2828

2929
pub fn handle_query_spot_market(deps: Deps<InjectiveQueryWrapper>, market_id: &str) -> StdResult<Binary> {
30-
let querier = InjectiveQuerier::new(&deps.querier);
31-
let market_id = MarketId::new(market_id)?;
32-
to_json_binary(&querier.query_spot_market(&market_id)?)
30+
let querier = ExchangeQuerierV2::new(&deps.querier);
31+
to_json_binary(&querier.spot_market(market_id.to_string())?)
3332
}
3433

3534
pub fn handle_query_bank_params(deps: Deps<InjectiveQueryWrapper>) -> StdResult<Binary> {

contracts/injective-cosmwasm-stargate-example/src/testing/test_exchange_derivative.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,9 @@ use injective_std::types::injective::exchange::v2::{self, open_notional_cap::Cap
2020
use injective_test_tube::{
2121
injective_cosmwasm::get_default_subaccount_id_for_checked_address,
2222
injective_std::types::injective::exchange::v1beta1::{
23-
OrderType, QueryDerivativeMarketRequest, QueryDerivativeMidPriceAndTobRequest, QueryDerivativeOrderbookRequest,
24-
QueryPerpetualMarketFundingRequest, QueryPerpetualMarketInfoRequest, QuerySubaccountEffectivePositionInMarketRequest,
25-
QuerySubaccountPositionInMarketRequest, QueryTraderDerivativeOrdersRequest,
23+
OrderType, QueryDerivativeMarketRequest, QueryDerivativeOrderbookRequest, QueryPerpetualMarketFundingRequest,
24+
QueryPerpetualMarketInfoRequest, QuerySubaccountEffectivePositionInMarketRequest, QuerySubaccountPositionInMarketRequest,
25+
QueryTraderDerivativeOrdersRequest,
2626
},
2727
Account, Exchange, Module, Wasm,
2828
};
@@ -339,25 +339,24 @@ fn test_query_perpetual_market_funding() {
339339
assert_eq!(state.cumulative_price, FPDecimal::ZERO);
340340
}
341341

342-
#[ignore = "TODO fix me"]
343342
#[test]
344-
//#[cfg_attr(not(feature = "integration"), ignore)]
343+
#[cfg_attr(not(feature = "integration"), ignore)]
345344
fn test_query_derivative_market_mid_price_and_tob() {
346345
let env = Setup::new(ExchangeType::Derivative);
347346
let wasm = Wasm::new(&env.app);
348347
let market_id = env.market_id.unwrap();
349348

350349
add_perp_initial_liquidity(&env.app, market_id.to_owned());
351350
let query_msg = QueryMsg::QueryStargateRaw {
352-
path: "/injective.exchange.v1beta1.Query/DerivativeMidPriceAndTOB".to_string(),
353-
query_request: encode_proto_message(QueryDerivativeMidPriceAndTobRequest {
351+
path: "/injective.exchange.v2.Query/DerivativeMidPriceAndTOB".to_string(),
352+
query_request: encode_proto_message(v2::QueryDerivativeMidPriceAndTobRequest {
354353
market_id: market_id.to_owned(),
355354
}),
356355
};
357356
let res = get_stargate_query_result::<MarketMidPriceAndTOBResponse>(wasm.query(&env.contract_address, &query_msg)).unwrap();
358-
assert_eq!(res.mid_price, Some(human_to_dec("10", QUOTE_DECIMALS)));
359-
assert_eq!(res.best_buy_price, Some(human_to_dec("9.9", QUOTE_DECIMALS)));
360-
assert_eq!(res.best_sell_price, Some(human_to_dec("10.1", QUOTE_DECIMALS)));
357+
assert_eq!(res.mid_price, Some(FPDecimal::must_from_str("10")));
358+
assert_eq!(res.best_buy_price, Some(FPDecimal::must_from_str("9.9")));
359+
assert_eq!(res.best_sell_price, Some(FPDecimal::must_from_str("10.1")));
361360
}
362361

363362
#[test]

rust-toolchain.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
[toolchain]
2-
channel = "1.87.0"
2+
channel = "1.86.0"
33
components = [ "rustfmt" ]
44
profile = "minimal"
55
targets = [ "wasm32-unknown-unknown" ]

0 commit comments

Comments
 (0)