diff --git a/CHANGELOG.md b/CHANGELOG.md index 6f9585bde..45e109b8d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,8 +6,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 [Unreleased] +## [5.0.3] + +### Added +- Deny overflowing (and lossy) integer type cast operations - [#1895](https://github.com/use-ink/cargo-contract/pull/1895) + ### Changed -- Use ink! release version in new contract template - [1896](https://github.com/use-ink/cargo-contract/pull/1896) +- Use latest ink! release version in new contract template - [#1896](https://github.com/use-ink/cargo-contract/pull/1896) ## [5.0.2] diff --git a/Cargo.lock b/Cargo.lock index a2da20e81..2f53dd0db 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1556,7 +1556,7 @@ dependencies = [ [[package]] name = "cargo-contract" -version = "5.0.2" +version = "5.0.3" dependencies = [ "anyhow", "assert_cmd", @@ -1906,7 +1906,7 @@ checksum = "cd7e35aee659887cbfb97aaf227ac12cad1a9d7c71e55ff3376839ed4e282d08" [[package]] name = "contract-analyze" -version = "5.0.2" +version = "5.0.3" dependencies = [ "anyhow", "contract-metadata", @@ -1916,7 +1916,7 @@ dependencies = [ [[package]] name = "contract-build" -version = "5.0.2" +version = "5.0.3" dependencies = [ "anyhow", "blake2", @@ -1957,7 +1957,7 @@ dependencies = [ [[package]] name = "contract-extrinsics" -version = "5.0.2" +version = "5.0.3" dependencies = [ "anyhow", "assert_cmd", @@ -1995,7 +1995,7 @@ dependencies = [ [[package]] name = "contract-metadata" -version = "5.0.2" +version = "5.0.3" dependencies = [ "anyhow", "impl-serde 0.5.0", @@ -2008,7 +2008,7 @@ dependencies = [ [[package]] name = "contract-transcode" -version = "5.0.2" +version = "5.0.3" dependencies = [ "anyhow", "assert_matches", diff --git a/crates/analyze/Cargo.toml b/crates/analyze/Cargo.toml index e443f1dd1..86ec5a70a 100644 --- a/crates/analyze/Cargo.toml +++ b/crates/analyze/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "contract-analyze" -version = "5.0.2" +version = "5.0.3" authors = ["Use Ink "] edition = "2021" @@ -14,7 +14,7 @@ keywords = ["wasm", "ink", "webassembly", "blockchain", "edsl"] include = ["Cargo.toml", "*.rs", "LICENSE"] [dependencies] -contract-metadata = { version = "5.0.2", path = "../metadata" } +contract-metadata = { version = "5.0.3", path = "../metadata" } wasmparser = "0.220.0" anyhow = "1.0.94" diff --git a/crates/build/Cargo.toml b/crates/build/Cargo.toml index 9db87b8ce..d6c2467cf 100644 --- a/crates/build/Cargo.toml +++ b/crates/build/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "contract-build" -version = "5.0.2" +version = "5.0.3" authors = ["Use Ink "] edition = "2021" @@ -47,7 +47,7 @@ tokio-stream = "0.1" bollard = "0.18" crossterm = "0.28.1" -contract-metadata = { version = "5.0.2", path = "../metadata" } +contract-metadata = { version = "5.0.3", path = "../metadata" } [target.'cfg(unix)'.dependencies] uzers = "0.12" diff --git a/crates/build/src/lib.rs b/crates/build/src/lib.rs index cb35ad290..b3d058c28 100644 --- a/crates/build/src/lib.rs +++ b/crates/build/src/lib.rs @@ -504,9 +504,14 @@ fn exec_cargo_clippy(crate_metadata: &CrateMetadata, verbosity: Verbosity) -> Re "--all-features", // customize clippy lints after the "--" "--", - // this is a hard error because we want to guarantee that implicit overflows - // never happen + // these are hard errors because we want to guarantee that implicit overflows + // and lossy integer conversions never happen + // See https://github.com/use-ink/cargo-contract/pull/1190 "-Dclippy::arithmetic_side_effects", + // See https://github.com/use-ink/cargo-contract/pull/1895 + "-Dclippy::cast_possible_truncation", + "-Dclippy::cast_possible_wrap", + "-Dclippy::cast_sign_loss", ]; // we execute clippy with the plain manifest no temp dir required execute_cargo(util::cargo_cmd( diff --git a/crates/cargo-contract/Cargo.toml b/crates/cargo-contract/Cargo.toml index 5314ffaf8..26bef194e 100644 --- a/crates/cargo-contract/Cargo.toml +++ b/crates/cargo-contract/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "cargo-contract" -version = "5.0.2" +version = "5.0.3" authors = ["Use Ink "] build = "build.rs" edition = "2021" @@ -18,11 +18,11 @@ include = [ ] [dependencies] -contract-build = { version = "5.0.2", path = "../build" } -contract-extrinsics = { version = "5.0.2", path = "../extrinsics" } -contract-transcode = { version = "5.0.2", path = "../transcode" } -contract-metadata = { version = "5.0.2", path = "../metadata" } -contract-analyze = { version = "5.0.2", path = "../analyze" } +contract-build = { version = "5.0.3", path = "../build" } +contract-extrinsics = { version = "5.0.3", path = "../extrinsics" } +contract-transcode = { version = "5.0.3", path = "../transcode" } +contract-metadata = { version = "5.0.3", path = "../metadata" } +contract-analyze = { version = "5.0.3", path = "../analyze" } anyhow = "1.0.94" clap = { version = "4.5.22", features = ["derive", "env"] } diff --git a/crates/extrinsics/Cargo.toml b/crates/extrinsics/Cargo.toml index 82627e299..94d1d495c 100644 --- a/crates/extrinsics/Cargo.toml +++ b/crates/extrinsics/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "contract-extrinsics" -version = "5.0.2" +version = "5.0.3" authors = ["Use Ink "] edition = "2021" rust-version = "1.70" @@ -15,9 +15,9 @@ keywords = ["wasm", "ink", "webassembly", "blockchain", "edsl"] include = ["Cargo.toml", "*.rs", "LICENSE",] [dependencies] -contract-build = { version = "5.0.2", path = "../build" } -contract-metadata = { version = "5.0.2", path = "../metadata" } -contract-transcode = { version = "5.0.2", path = "../transcode" } +contract-build = { version = "5.0.3", path = "../build" } +contract-metadata = { version = "5.0.3", path = "../metadata" } +contract-transcode = { version = "5.0.3", path = "../transcode" } anyhow = "1.0.94" blake2 = { version = "0.10.6", default-features = false } diff --git a/crates/metadata/Cargo.toml b/crates/metadata/Cargo.toml index 9c233695c..609b3a21c 100644 --- a/crates/metadata/Cargo.toml +++ b/crates/metadata/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "contract-metadata" -version = "5.0.2" +version = "5.0.3" authors = ["Use Ink "] edition = "2021" diff --git a/crates/metadata/compatibility_list.json b/crates/metadata/compatibility_list.json index fd63a952f..4c0ade210 100644 --- a/crates/metadata/compatibility_list.json +++ b/crates/metadata/compatibility_list.json @@ -28,7 +28,7 @@ "5.0.2" ] }, - "5.0.2": { + "5.0.3": { "ink": [ ">=5.0.0-rc.2", "5.0.2" diff --git a/crates/metadata/src/compatibility.rs b/crates/metadata/src/compatibility.rs index 2c6b83faf..56850c6a1 100644 --- a/crates/metadata/src/compatibility.rs +++ b/crates/metadata/src/compatibility.rs @@ -172,4 +172,28 @@ mod tests { let res = check_contract_ink_compatibility(&ink_version, None); assert!(res.is_ok()); } + + #[test] + fn check_current_ink_and_cargo_contract_versions() { + // Current `cargo-contract` version is 5.0.3 + let cargo_contract_version = Some(Version::new(5, 0, 3)); + + let ink_version = Version::new(5, 1, 1); + let res = check_contract_ink_compatibility( + &ink_version, + cargo_contract_version.clone(), + ); + assert!(res.is_ok()); + + let ink_version = Version::new(5, 0, 0); + let res = check_contract_ink_compatibility( + &ink_version, + cargo_contract_version.clone(), + ); + assert!(res.is_ok()); + + let ink_version = Version::new(5, 1, 0); + let res = check_contract_ink_compatibility(&ink_version, cargo_contract_version); + assert!(res.is_ok()); + } } diff --git a/crates/transcode/Cargo.toml b/crates/transcode/Cargo.toml index dcda17b2b..d7f498db7 100644 --- a/crates/transcode/Cargo.toml +++ b/crates/transcode/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "contract-transcode" -version = "5.0.2" +version = "5.0.3" authors = ["Use Ink "] edition = "2021" @@ -20,7 +20,7 @@ path = "src/lib.rs" anyhow = "1.0.94" base58 = { version = "0.2.0" } blake2 = { version = "0.10.6", default-features = false } -contract-metadata = { version = "5.0.2", path = "../metadata" } +contract-metadata = { version = "5.0.3", path = "../metadata" } escape8259 = "0.5.2" hex = "0.4.3" indexmap = "2.2.6"