Skip to content
Open
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
26 changes: 13 additions & 13 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

14 changes: 14 additions & 0 deletions packages/injective-test-tube/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,20 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/).

## 1.20.0 - 2026-06-15

### Changed

- Bumped `injective-core@v1.20.0`
- Bumped `injective-std@=1.20.0`
- Bumped `injective-cosmwasm@0.3.7`, including transitive `injective-math@0.3.7`
- Bumped `test-tube-inj@2.0.11`

### Fixed

- Updated test app bootstrap for the `injective-core@v1.20.0` app config API
- Updated exchange and oracle test compatibility for new `injective-std@1.20.0` fields

## 1.19.0 - 2026-04-29

### Added
Expand Down
8 changes: 4 additions & 4 deletions packages/injective-test-tube/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -4,23 +4,23 @@ edition = "2021"
license = "MIT OR Apache-2.0"
name = "injective-test-tube"
repository = "https://github.com/InjectiveLabs/test-tube"
version = "1.19.0"
version = "1.20.0"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

exclude = [ "injective-core", "test_artifacts" ]

[dependencies]
cosmrs = { version = "0.22.0", features = [ "cosmwasm", "rpc" ] }
cosmwasm-std = { version = "3.0.5", features = [ "cosmwasm_1_2", "cosmwasm_1_3", "cosmwasm_1_4", "cosmwasm_2_0", "iterator", "stargate" ] }
injective-cosmwasm = { version = "0.3.6" }
injective-std = { version = "=1.19.0" }
injective-cosmwasm = { version = "0.3.7" }
injective-std = { version = "=1.20.0" }
k256 = { version = "0.13.3" }
prost = { version = "0.13.5", features = [ "derive" ] }
rlp = "0.5.2"
serde = "1.0.144"
serde_json = "1.0.85"
sha3 = { version = "0.10.8" }
test-tube-inj = { version = "2.0.10" }
test-tube-inj = { version = "2.0.11" }

[build-dependencies]
bindgen = "0.60.1"
Expand Down
4 changes: 2 additions & 2 deletions packages/injective-test-tube/build.rs
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ fn main() {
.join("artifacts")
.join("libinjectivetesttube.docrs.h")
} else {
out_dir.join(format!("lib{}.h", lib_name))
out_dir.join(format!("lib{lib_name}.h"))

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Check for MSRV declarations in project Cargo.toml files

echo "=== Checking for explicit MSRV declarations ==="
fd -t f -name "Cargo.toml" -path "*/packages/*" | xargs grep -H "rust-version" || echo "No explicit rust-version field found"

echo ""
echo "=== Checking for rust-toolchain files ==="
fd -t f -name "rust-toolchain*" || echo "No rust-toolchain files found"

echo ""
echo "=== Checking workspace Cargo.toml ==="
if [ -f "Cargo.toml" ]; then grep -A 5 "\[workspace\]" Cargo.toml | grep -i "rust\|version" || echo "No workspace-level MSRV"; fi

Repository: InjectiveLabs/test-tube

Length of output: 768


🏁 Script executed:

#!/bin/bash
# Verify the inline format syntax patterns in all four files

echo "=== File 1: packages/injective-test-tube/build.rs (line 19) ==="
sed -n '15,25p' packages/injective-test-tube/build.rs

echo ""
echo "=== File 2: packages/test-tube/src/runner/app.rs (line 384) ==="
sed -n '380,390p' packages/test-tube/src/runner/app.rs

echo ""
echo "=== File 3: packages/test-tube/src/runner/result.rs (line 242) ==="
sed -n '238,248p' packages/test-tube/src/runner/result.rs

echo ""
echo "=== File 4: packages/injective-test-tube/src/module/auction.rs (line 104) ==="
sed -n '100,110p' packages/injective-test-tube/src/module/auction.rs

echo ""
echo "=== Checking root Cargo.toml for package-level MSRV ==="
head -30 Cargo.toml | grep -E "rust|version"

Repository: InjectiveLabs/test-tube

Length of output: 2034


🌐 Web query:

Rust inline format string syntax minimum supported version requirement

💡 Result:

Rust's support for implicit named arguments within format strings (often referred to colloquially as "inline format strings" or f-string-like syntax, such as format!("Hello, {name}")) was stabilized in Rust 1.58.0, released on January 13, 2022 [1][2]. Prior to this version, developers were required to explicitly bind variables if they wanted to use them by name, such as format!("Hello, {name}", name = name). The introduction of this feature allows the macro to implicitly capture local variables with the same name as the identifier provided in the curly braces [3][2]. It is important to note that these are not true "f-strings" in the sense of some other programming languages (which often evaluate arbitrary expressions within the string at runtime). In Rust, the format string must still be a string literal, and the macro operates at compile-time to validate the format string against the provided arguments [4][1]. The feature simply provides syntactic sugar to reduce boilerplate when capturing local variables [3][2]. Subsequent compiler improvements, such as the one implemented in Rust 1.67, further optimized this system by allowing the compiler to flatten or inline literal arguments into the format string during compilation, which can improve performance and help with certain macro-related optimizations [5][6].

Citations:


Declare project MSRV to match Rust 1.58.0+ requirement for inline format syntax.

All four affected files use Rust's inline format string syntax ({variable} and {variable:?}), which requires Rust 1.58.0 or later. The project currently has no declared MSRV, which creates a compilation compatibility gap. Either add rust-version = "1.58" to the workspace Cargo.toml or revert to explicit format syntax (format!("{}", variable)) for compatibility with earlier Rust versions.

Affected files:

  • packages/injective-test-tube/build.rs:19
  • packages/test-tube/src/runner/app.rs:384
  • packages/test-tube/src/runner/result.rs:242
  • packages/injective-test-tube/src/module/auction.rs:104
📍 Affects 4 files
  • packages/injective-test-tube/build.rs#L19-L19 (this comment)
  • packages/test-tube/src/runner/app.rs#L384-L384
  • packages/test-tube/src/runner/result.rs#L242-L242
  • packages/injective-test-tube/src/module/auction.rs#L104-L104
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@packages/injective-test-tube/build.rs` at line 19, The code uses Rust's
inline format string syntax (like {variable}) which requires Rust 1.58.0 or
later, but the project has no declared MSRV. To fix this across all four
affected locations (packages/injective-test-tube/build.rs:19,
packages/test-tube/src/runner/app.rs:384,
packages/test-tube/src/runner/result.rs:242, and
packages/injective-test-tube/src/module/auction.rs:104), add rust-version =
"1.58" to the workspace Cargo.toml file. Alternatively, if earlier Rust version
compatibility is required, revert the inline format string syntax at all four
locations back to explicit syntax (e.g., format!("{}", variable) instead of
format!("{variable}")). Choose one approach and apply it consistently across all
affected files to resolve the compatibility gap.

};
// rerun when go code is updated
emit_rerun_if_changed(&manifest_dir.join("libinjectivetesttube"));
Expand Down Expand Up @@ -67,7 +67,7 @@ fn main() {

// disable linking if docrs
if std::env::var("DOCS_RS").is_err() {
println!("cargo:rustc-link-lib=dylib={}", lib_name);
println!("cargo:rustc-link-lib=dylib={lib_name}");
}

// The bindgen::Builder is the main entry point
Expand Down
37 changes: 17 additions & 20 deletions packages/injective-test-tube/libinjectivetesttube/go.mod
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ require (
github.com/cosmos/cosmos-db v1.1.1
github.com/cosmos/cosmos-sdk v0.50.14
github.com/cosmos/gogoproto v1.7.0
github.com/ethereum/go-ethereum v1.15.7
github.com/pkg/errors v0.9.1
)

Expand All @@ -27,15 +28,13 @@ require (
cosmossdk.io/x/tx v0.13.8 // indirect
cosmossdk.io/x/upgrade v0.1.4 // indirect
github.com/CosmWasm/wasmvm/v2 v2.1.5 // indirect
github.com/InjectiveLabs/metrics/v2 v2.0.0-beta.8 // indirect
github.com/bcp-innovations/hyperlane-cosmos v1.0.1 // indirect
github.com/InjectiveLabs/metrics/v2 v2.0.0-beta.9 // indirect
github.com/cenkalti/backoff/v5 v5.0.3 // indirect
github.com/cosmos/go-bip39 v1.0.0 // indirect
github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 v8.2.0 // indirect
github.com/cosmos/ibc-apps/modules/ibc-hooks/v8 v8.0.0 // indirect
github.com/cosmos/ibc-go/modules/capability v1.0.1 // indirect
github.com/cosmos/ibc-go/v8 v8.7.0 // indirect
github.com/ethereum/go-ethereum v1.15.7
github.com/ferranbt/fastssz v0.1.4 // indirect
github.com/go-jose/go-jose/v4 v4.1.1 // indirect
github.com/go-test/deep v1.0.7 // indirect
Expand Down Expand Up @@ -149,7 +148,6 @@ require (
github.com/go-logr/stdr v1.2.2 // indirect
github.com/go-ole/go-ole v1.3.0 // indirect
github.com/go-sourcemap/sourcemap v2.1.3+incompatible // indirect
github.com/go-task/slim-sprig/v3 v3.0.0 // indirect
github.com/godbus/dbus v0.0.0-20190726142602-4481cbc300e2 // indirect
github.com/gofrs/flock v0.12.1 // indirect
github.com/gogo/googleapis v1.4.1 // indirect
Expand Down Expand Up @@ -274,26 +272,25 @@ require (
)

replace (
cosmossdk.io/api => github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.9
cosmossdk.io/client/v2 => github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.9
cosmossdk.io/core => github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.9
cosmossdk.io/errors => github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.9
cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.9
cosmossdk.io/x/circuit => github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.9
cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.9
cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.9
cosmossdk.io/x/nft => github.com/InjectiveLabs/cosmos-sdk/x/nft v0.50.14-inj.9
cosmossdk.io/x/tx => github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.9
cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.9
cosmossdk.io/api => github.com/InjectiveLabs/cosmos-sdk/api v0.50.14-inj.10
cosmossdk.io/client/v2 => github.com/InjectiveLabs/cosmos-sdk/client/v2 v2.0.0-v0.50.14-inj.10
cosmossdk.io/core => github.com/InjectiveLabs/cosmos-sdk/core v0.50.14-inj.10
cosmossdk.io/errors => github.com/InjectiveLabs/cosmos-sdk/errors v0.50.14-inj.10
cosmossdk.io/store => github.com/InjectiveLabs/cosmos-sdk/store v0.50.14-inj.10
cosmossdk.io/x/circuit => github.com/InjectiveLabs/cosmos-sdk/x/circuit v0.50.14-inj.10
cosmossdk.io/x/evidence => github.com/InjectiveLabs/cosmos-sdk/x/evidence v0.50.14-inj.10
cosmossdk.io/x/feegrant => github.com/InjectiveLabs/cosmos-sdk/x/feegrant v0.50.14-inj.10
cosmossdk.io/x/nft => github.com/InjectiveLabs/cosmos-sdk/x/nft v0.50.14-inj.10
cosmossdk.io/x/tx => github.com/InjectiveLabs/cosmos-sdk/x/tx v0.50.14-inj.10
cosmossdk.io/x/upgrade => github.com/InjectiveLabs/cosmos-sdk/x/upgrade v0.50.14-inj.10

github.com/CosmWasm/wasmd => github.com/InjectiveLabs/wasmd v0.53.3-inj.3
github.com/InjectiveLabs/injective-core => github.com/InjectiveFoundation/injective-core v1.19.0
github.com/bcp-innovations/hyperlane-cosmos => github.com/InjectiveLabs/hyperlane-cosmos v1.0.1-inj
github.com/InjectiveLabs/injective-core => github.com/InjectiveFoundation/injective-core v1.20.0
github.com/coder/websocket => github.com/InjectiveLabs/websocket v1.8.13

github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.7
github.com/cometbft/cometbft/api => github.com/InjectiveLabs/cometbft/api v1.0.0-inj.3
github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.9
github.com/cometbft/cometbft => github.com/InjectiveLabs/cometbft v1.0.1-inj.v1.19.0-rollback
github.com/cometbft/cometbft/api => github.com/InjectiveLabs/cometbft/api v1.0.1-inj.v1.19.0-rollback
github.com/cosmos/cosmos-sdk => github.com/InjectiveLabs/cosmos-sdk v0.50.14-inj.10
github.com/cosmos/gogoproto => github.com/InjectiveLabs/gogoproto v1.7.2-inj.2

github.com/cosmos/ibc-apps/middleware/packet-forward-middleware/v8 => github.com/InjectiveLabs/ibc-apps/middleware/packet-forward-middleware/v8 v8.2.0-inj.4
Expand Down
Loading
Loading