From d8741174f7bcf6e6f5544030342f2fbb9506ae4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Emil=20Holm=20Gj=C3=B8rup?= Date: Tue, 26 Mar 2024 14:50:18 +0100 Subject: [PATCH] Prepare smart contract testing library for release (#414) * Bump Rust SDK and therefore also MSRV to 1.73 * Use released version of testing library in templates --- .github/workflows/linter-testing-lib.yaml | 2 +- .github/workflows/linter.yml | 8 ++++---- concordium-rust-sdk | 2 +- concordium-std/src/impls.rs | 12 ++++-------- .../tests/state/map-multiple-entries.stderr | 4 ++-- .../tests/state/map-multiple-state-ref-mut.stderr | 4 ++-- contract-testing/CHANGELOG.md | 4 +++- contract-testing/Cargo.toml | 2 +- templates/cis2-nft/Cargo.toml | 2 +- templates/credential-registry/Cargo.toml | 2 +- templates/default/Cargo.toml | 2 +- 11 files changed, 21 insertions(+), 23 deletions(-) diff --git a/.github/workflows/linter-testing-lib.yaml b/.github/workflows/linter-testing-lib.yaml index dc89950f..e21c53a5 100644 --- a/.github/workflows/linter-testing-lib.yaml +++ b/.github/workflows/linter-testing-lib.yaml @@ -28,7 +28,7 @@ on: env: RUST_FMT: nightly-2023-04-01-x86_64-unknown-linux-gnu - RUST_CLIPPY: 1.72 + RUST_CLIPPY: 1.73 jobs: "lint_fmt": diff --git a/.github/workflows/linter.yml b/.github/workflows/linter.yml index a56d246c..29d7161c 100644 --- a/.github/workflows/linter.yml +++ b/.github/workflows/linter.yml @@ -12,8 +12,8 @@ name: Clippy & fmt env: RUST_FMT: nightly-2023-04-01 - RUST_VERSION: "1.66" - RUST_VERSION_TESTING_LIBRARY: "1.72" + RUST_VERSION: "1.73" + RUST_VERSION_TESTING_LIBRARY: "1.73" CARGO_CONCORDIUM_VERSION: "3.2.0" jobs: @@ -351,7 +351,7 @@ jobs: sed -i "s/root/Concordium /g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml sed -i "s/{version = \"10.0\", default-features = false}/{path = \"..\/..\/concordium-std\", default-features = false}/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml sed -i "s/{version = \"6.1\", default-features = false}/{path = \"..\/..\/concordium-cis2\", default-features = false}/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml - sed -i "s/concordium-smart-contract-testing = \"4.0\"/concordium-smart-contract-testing = {path = \"..\/..\/contract-testing\"}/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml + sed -i "s/concordium-smart-contract-testing = \"4.2\"/concordium-smart-contract-testing = {path = \"..\/..\/contract-testing\"}/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml diff ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml examples/cis2-nft/Cargo.toml diff ${{ runner.temp }}/$PROJECT_NAME/src/lib.rs examples/cis2-nft/src/lib.rs diff ${{ runner.temp }}/$PROJECT_NAME/tests/tests.rs examples/cis2-nft/tests/tests.rs @@ -399,7 +399,7 @@ jobs: sed -i "s/root/Concordium /g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml sed -i "s/version = \"10.0\", default-features = false/path = \"..\/..\/concordium-std\", version = \"10.0\", default-features = false/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml sed -i "s/version = \"6.1\", default-features = false/path = \"..\/..\/concordium-cis2\", version = \"6.1\", default-features = false/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml - sed -i "s/concordium-smart-contract-testing = \"4.0\"/concordium-smart-contract-testing = {path = \"..\/..\/contract-testing\"}/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml + sed -i "s/concordium-smart-contract-testing = \"4.2\"/concordium-smart-contract-testing = {path = \"..\/..\/contract-testing\"}/g" ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml diff ${{ runner.temp }}/$PROJECT_NAME/Cargo.toml examples/credential-registry/Cargo.toml diff ${{ runner.temp }}/$PROJECT_NAME/src/lib.rs examples/credential-registry/src/lib.rs diff ${{ runner.temp }}/$PROJECT_NAME/tests/tests.rs examples/credential-registry/tests/tests.rs diff --git a/concordium-rust-sdk b/concordium-rust-sdk index 6eb5f3b7..5e4b93c0 160000 --- a/concordium-rust-sdk +++ b/concordium-rust-sdk @@ -1 +1 @@ -Subproject commit 6eb5f3b768256b1e77d6d4340e121ead4a40aa20 +Subproject commit 5e4b93c0a0ae7aef16d3bb6c0e62c30424d900bc diff --git a/concordium-std/src/impls.rs b/concordium-std/src/impls.rs index 7e5b0a05..f25e7718 100644 --- a/concordium-std/src/impls.rs +++ b/concordium-std/src/impls.rs @@ -765,6 +765,7 @@ where StateApi: HasStateApi, { /// Ensures a value is in the entry by inserting the default value if empty. + #[allow(clippy::unwrap_or_default)] pub fn or_default(self) -> OccupiedEntry<'a, K, V, StateApi> { self.or_insert_with(Default::default) } @@ -2195,9 +2196,8 @@ fn query_exchange_rates_worker() -> ExchangeRates { /// two extern hosts below. fn query_account_public_keys_worker(address: AccountAddress) -> QueryAccountPublicKeysResult { let data: &[u8] = address.as_ref(); - let response = unsafe { - prims::invoke(INVOKE_QUERY_ACCOUNT_PUBLIC_KEYS_TAG, data.as_ptr() as *const u8, 32) - }; + let response = + unsafe { prims::invoke(INVOKE_QUERY_ACCOUNT_PUBLIC_KEYS_TAG, data.as_ptr(), 32) }; let mut return_value = parse_query_account_public_keys_response_code(response)?; Ok(crate::AccountPublicKeys::deserial(&mut return_value).unwrap_abort()) } @@ -2213,11 +2213,7 @@ fn check_account_signature_worker( signatures.serial(&mut buffer).unwrap_abort(); let response = unsafe { - prims::invoke( - INVOKE_CHECK_ACCOUNT_SIGNATURE_TAG, - buffer.as_ptr() as *const u8, - buffer.len() as u32, - ) + prims::invoke(INVOKE_CHECK_ACCOUNT_SIGNATURE_TAG, buffer.as_ptr(), buffer.len() as u32) }; // Be explicit that the buffer must survive up to here. drop(buffer); diff --git a/concordium-std/tests/state/map-multiple-entries.stderr b/concordium-std/tests/state/map-multiple-entries.stderr index 9fa1d65a..94fba8ed 100644 --- a/concordium-std/tests/state/map-multiple-entries.stderr +++ b/concordium-std/tests/state/map-multiple-entries.stderr @@ -2,9 +2,9 @@ error[E0499]: cannot borrow `map` as mutable more than once at a time --> tests/state/map-multiple-entries.rs:12:14 | 11 | let e1 = map.entry(0u8); - | -------------- first mutable borrow occurs here + | --- first mutable borrow occurs here 12 | let e2 = map.entry(1u8); - | ^^^^^^^^^^^^^^ second mutable borrow occurs here + | ^^^ second mutable borrow occurs here 13 | // Use them, so we are certain that their lifetimes overlap. 14 | e1.or_insert(1); | -- first borrow later used here diff --git a/concordium-std/tests/state/map-multiple-state-ref-mut.stderr b/concordium-std/tests/state/map-multiple-state-ref-mut.stderr index 444cfbf3..eb996224 100644 --- a/concordium-std/tests/state/map-multiple-state-ref-mut.stderr +++ b/concordium-std/tests/state/map-multiple-state-ref-mut.stderr @@ -2,9 +2,9 @@ error[E0499]: cannot borrow `map` as mutable more than once at a time --> tests/state/map-multiple-state-ref-mut.rs:14:14 | 13 | let e1 = map.get_mut(&0u8).unwrap(); - | ----------------- first mutable borrow occurs here + | --- first mutable borrow occurs here 14 | let e2 = map.get_mut(&1u8).unwrap(); - | ^^^^^^^^^^^^^^^^^ second mutable borrow occurs here + | ^^^ second mutable borrow occurs here 15 | // Use them, so we are certain that their lifetimes overlap. 16 | assert_eq!(*e1, *e2); | -- first borrow later used here diff --git a/contract-testing/CHANGELOG.md b/contract-testing/CHANGELOG.md index 45b7686a..f3a719fa 100644 --- a/contract-testing/CHANGELOG.md +++ b/contract-testing/CHANGELOG.md @@ -2,9 +2,11 @@ ## Unreleased changes +## 4.2.0 + - Add support for querying the module reference and contract name of an instance. This functionality is only available on-chain from protocol version 7. -- Bump minimum supported Rust version (MSRV) to `1.72`. +- Bump minimum supported Rust version (MSRV) to `1.73`. ## 4.1.0 diff --git a/contract-testing/Cargo.toml b/contract-testing/Cargo.toml index b6151ed3..109d7c0f 100644 --- a/contract-testing/Cargo.toml +++ b/contract-testing/Cargo.toml @@ -2,7 +2,7 @@ name = "concordium-smart-contract-testing" version = "4.2.0" edition = "2021" -rust-version = "1.72" +rust-version = "1.73" license = "MPL-2.0" readme = "README.md" description = "A companion crate to `concordium-std` that supports off-chain end-to-end testing of smart contracts." diff --git a/templates/cis2-nft/Cargo.toml b/templates/cis2-nft/Cargo.toml index 5ba57892..38ea10d3 100644 --- a/templates/cis2-nft/Cargo.toml +++ b/templates/cis2-nft/Cargo.toml @@ -16,7 +16,7 @@ concordium-std = {version = "10.0", default-features = false} concordium-cis2 = {version = "6.1", default-features = false} [dev-dependencies] -concordium-smart-contract-testing = "4.0" +concordium-smart-contract-testing = "4.2" [lib] crate-type=["cdylib", "rlib"] diff --git a/templates/credential-registry/Cargo.toml b/templates/credential-registry/Cargo.toml index ec535bae..2e40491d 100644 --- a/templates/credential-registry/Cargo.toml +++ b/templates/credential-registry/Cargo.toml @@ -20,7 +20,7 @@ concordium-cis2 = {version = "6.1", default-features = false} quickcheck = {version = "1"} [dev-dependencies] -concordium-smart-contract-testing = "4.0" +concordium-smart-contract-testing = "4.2" [lib] crate-type=["cdylib", "rlib"] diff --git a/templates/default/Cargo.toml b/templates/default/Cargo.toml index e2450aab..3ab7f95c 100644 --- a/templates/default/Cargo.toml +++ b/templates/default/Cargo.toml @@ -17,7 +17,7 @@ bump_alloc = ["concordium-std/bump_alloc"] concordium-std = {version = "10.0", default-features = false} [dev-dependencies] -concordium-smart-contract-testing = "4.0" +concordium-smart-contract-testing = "4.2" [lib] crate-type=["cdylib", "rlib"]