From 8bfffcc62af77a153a66e2f5f29ab49309385be1 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Wed, 10 Dec 2025 17:36:36 +0000 Subject: [PATCH 01/20] chore: rust 1.90.0 -> 1.91.1 --- bazel/rust.MODULE.bazel | 8 ++++---- rust-toolchain.toml | 2 +- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/bazel/rust.MODULE.bazel b/bazel/rust.MODULE.bazel index 39e13ab12e6a..cacf8d0210f7 100644 --- a/bazel/rust.MODULE.bazel +++ b/bazel/rust.MODULE.bazel @@ -2,23 +2,23 @@ # Run `./bin/bazel-pin.sh` from the top-level directory of the working tree after changing this file # to regenerate Cargo Bazel lockfiles. -bazel_dep(name = "rules_rust", version = "0.67.0") +bazel_dep(name = "rules_rust", version = "0.68.1") archive_override( module_name = "rules_rust", - integrity = "sha256-3Ch+PsqAsp1cyV4mHK4nPu3xr0oAqWrpN+I0U02tskw=", + integrity = "sha256-yKqAbPYGZnmsI0YyQe6ArWkiZdrQRl9RERy74wuJA1I=", patch_strip = 1, patches = [ "//bazel:rules_rust_strip_level.patch", "//bazel:rules_rust_package_alias.patch", "//bazel:rules_rust_rust_test.patch", ], - urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.67.0/rules_rust-0.67.0.tar.gz"], + urls = ["https://github.com/bazelbuild/rules_rust/releases/download/0.68.1/rules_rust-0.68.1.tar.gz"], ) rust = use_extension("@rules_rust//rust:extensions.bzl", "rust") rust.toolchain( edition = "2024", - versions = ["1.90.0"], + versions = ["1.91.1"], ) # Repin with `CARGO_BAZEL_REPIN=true bazel build @crate_index//...` diff --git a/rust-toolchain.toml b/rust-toolchain.toml index 493a18ec0baf..dc68e91f0bcf 100644 --- a/rust-toolchain.toml +++ b/rust-toolchain.toml @@ -1,5 +1,5 @@ [toolchain] -channel = "1.90.0" +channel = "1.91.1" targets = ["wasm32-unknown-unknown"] profile = "default" components = [] From d8026e1c15adcec96b957029e344aa4b08fc5b90 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Wed, 10 Dec 2025 17:46:47 +0000 Subject: [PATCH 02/20] Updating container image to sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b Image tag: dfc32c6da13615e817f947e9a3aedea2cbf0a14529cfc3ac965627ec19f4c913 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 14a995a477ad..3dca00f8df6e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37", + "image": "ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 85d41e981d31..551abbad3d8f 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index f40708f45987..69fc8ff35b07 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 54fa4aa1bac1..8f0e7360db0c 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index 255f7480fa2e..f20f42a02fdd 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index be12ee544f5b..c833f6f4ffdb 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index e7bebe4bad91..19c368a9c5d1 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index 29932a62fd7d..966a77559585 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index b7828486de29..cc67c396a43c 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index 1b59948e9536..f27dac889570 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b # running on bare metal machine using ubuntu user options: --user ubuntu timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index fce67ff0bbbc..aa737dc62f48 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index 96c118c8d033..e54bf93197e0 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:86c24b5b717519527920d3b720906f91723514d63acddcbaeb27ecf4144aeb37 + image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info env: diff --git a/ci/container/TAG b/ci/container/TAG index e21414338b37..64a93e7170c9 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -aa4465680d4f91d55daf796721518ec5721781f67dd0021f1d902793740acb62 +dfc32c6da13615e817f947e9a3aedea2cbf0a14529cfc3ac965627ec19f4c913 From 755d5baa291c163481ec76a16dca10ab684aeccf Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Wed, 10 Dec 2025 19:07:01 +0000 Subject: [PATCH 03/20] cargo clippy --- rs/bitcoin/ckbtc/minter/src/state.rs | 11 +- rs/consensus/idkg/src/signer.rs | 2 +- rs/consensus/src/consensus/batch_delivery.rs | 4 +- rs/criterion_time/src/lib.rs | 8 +- .../canister_threshold_sig/src/utils/group.rs | 3 +- .../src/vault/api/tests.rs | 2 +- .../cketh/minter/src/dashboard/tests.rs | 8 +- .../minter/src/state/transactions/tests.rs | 4 +- rs/ethereum/cketh/minter/tests/ckerc20.rs | 212 ++++++++---------- rs/ethereum/cketh/minter/tests/cketh.rs | 24 +- rs/ethereum/cketh/test_utils/src/ckerc20.rs | 20 +- .../src/scheduler/tests.rs | 2 +- rs/execution_environment/tests/history.rs | 2 +- rs/ingress_manager/src/ingress_selector.rs | 4 +- rs/ledger_suite/icrc1/archive/tests/tests.rs | 2 +- rs/ledger_suite/icrc1/ledger/src/lib.rs | 9 +- .../common/rosetta_core/src/objects.rs | 11 +- rs/rosetta-api/icp/src/models.rs | 18 +- .../governance/src/proposal/minting_tests.rs | 2 +- 19 files changed, 155 insertions(+), 193 deletions(-) diff --git a/rs/bitcoin/ckbtc/minter/src/state.rs b/rs/bitcoin/ckbtc/minter/src/state.rs index 3797a046fb50..ed7a9ee8e1a5 100644 --- a/rs/bitcoin/ckbtc/minter/src/state.rs +++ b/rs/bitcoin/ckbtc/minter/src/state.rs @@ -240,7 +240,9 @@ pub enum RetrieveBtcStatusV2 { } /// Controls which operations the minter can perform. -#[derive(Clone, Eq, PartialEq, Debug, Serialize, candid::CandidType, serde::Deserialize)] +#[derive( + Clone, Eq, PartialEq, Debug, Serialize, candid::CandidType, serde::Deserialize, Default, +)] pub enum Mode { /// Minter's state is read-only. ReadOnly, @@ -249,6 +251,7 @@ pub enum Mode { /// Only the specified principals can deposit BTC. DepositsRestrictedTo(Vec), /// No restrictions on the minter interactions. + #[default] GeneralAvailability, } @@ -288,12 +291,6 @@ impl Mode { } } -impl Default for Mode { - fn default() -> Self { - Self::GeneralAvailability - } -} - /// The outcome of a UTXO check. #[derive(Copy, Clone, Eq, PartialEq, Debug)] pub enum UtxoCheckStatus { diff --git a/rs/consensus/idkg/src/signer.rs b/rs/consensus/idkg/src/signer.rs index 8f4ddadf75dd..6541b71ab5bc 100644 --- a/rs/consensus/idkg/src/signer.rs +++ b/rs/consensus/idkg/src/signer.rs @@ -1031,7 +1031,7 @@ mod tests { // Set up the IDKG pool. Pool has shares for requests 0, 1, 2. // Only the share for request 0 is issued by us - let shares = vec![ + let shares = [ create_signature_share(&key_id, NODE_1, ids[0]), create_signature_share(&key_id, NODE_2, ids[1]), create_signature_share(&key_id, NODE_3, ids[2]), diff --git a/rs/consensus/src/consensus/batch_delivery.rs b/rs/consensus/src/consensus/batch_delivery.rs index 3e8bc4f7c5b8..1aa22dded8cb 100644 --- a/rs/consensus/src/consensus/batch_delivery.rs +++ b/rs/consensus/src/consensus/batch_delivery.rs @@ -569,7 +569,7 @@ mod tests { const TARGET_ID: NiDkgTargetId = NiDkgTargetId::new([8; 32]); // Build some transcipts with matching ids and tags - let transcripts_for_remote_subnets = vec![ + let transcripts_for_remote_subnets = [ ( NiDkgId { start_block_height: Height::from(0), @@ -623,7 +623,7 @@ mod tests { }); // Build some transcipts with matching ids and tags - let transcripts_for_remote_subnets = vec![( + let transcripts_for_remote_subnets = [( NiDkgId { start_block_height: Height::from(0), dealer_subnet: subnet_test_id(0), diff --git a/rs/criterion_time/src/lib.rs b/rs/criterion_time/src/lib.rs index 08cebe2de948..93120ad5ecd4 100644 --- a/rs/criterion_time/src/lib.rs +++ b/rs/criterion_time/src/lib.rs @@ -16,19 +16,15 @@ use std::time::Duration; /// by the background load. /// /// This implementation uses getrusage system call to obtain the timings. +#[derive(Default)] pub enum ProcessTime { /// User time used by this process. UserTime, /// User + System time used by this process. + #[default] UserAndSystemTime, } -impl Default for ProcessTime { - fn default() -> Self { - Self::UserAndSystemTime - } -} - impl ProcessTime { fn now(&self) -> Duration { let usage = resource_usage(); diff --git a/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/src/utils/group.rs b/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/src/utils/group.rs index 6fa28755b740..84f61669a792 100644 --- a/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/src/utils/group.rs +++ b/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/src/utils/group.rs @@ -850,7 +850,7 @@ impl EccPoint { /// and performs one step for the scalar-point multiplication. /// This function must be called as many times as the length of /// the NAF representation of the scalar. - /// + /// /// Warning: this function leaks information about the scalars via /// side channels. Do not use this function with secret scalars. fn scalar_mul_step_vartime( @@ -1060,6 +1060,7 @@ impl EccPoint { let mut buckets: Vec = (0..Window::MAX).map(|_| id.clone()).collect(); + #[allow(clippy::needless_range_loop)] for i in 0..num_windows { for j in 0..point_scalar_pairs.len() { let bucket_index = windows[j][i] as usize; diff --git a/rs/crypto/internal/crypto_service_provider/src/vault/api/tests.rs b/rs/crypto/internal/crypto_service_provider/src/vault/api/tests.rs index 797d8fc81011..249c11485022 100644 --- a/rs/crypto/internal/crypto_service_provider/src/vault/api/tests.rs +++ b/rs/crypto/internal/crypto_service_provider/src/vault/api/tests.rs @@ -667,7 +667,7 @@ mod node_keys_errors_to_key_counts_conversions { #[test] fn should_collect_key_counts_for_single_external_malformed_key() { - let tests = vec![ + let tests = [ ParameterizedTest { input: NodeKeysErrors { node_signing_key_error: Some(NodeKeysError { diff --git a/rs/ethereum/cketh/minter/src/dashboard/tests.rs b/rs/ethereum/cketh/minter/src/dashboard/tests.rs index 667a74d2bd3f..94bd892e5239 100644 --- a/rs/ethereum/cketh/minter/src/dashboard/tests.rs +++ b/rs/ethereum/cketh/minter/src/dashboard/tests.rs @@ -510,7 +510,7 @@ fn should_display_pending_transactions_sorted_by_decreasing_cketh_ledger_burn_in let dashboard = { let mut state = initial_state_with_usdc_support(); - for (req, tx, _signed_tx, _receipt) in vec![ + for (req, tx, _signed_tx, _receipt) in [ cketh_withdrawal_flow( LedgerBurnIndex::new(15), TransactionNonce::from(0_u8), @@ -536,7 +536,7 @@ fn should_display_pending_transactions_sorted_by_decreasing_cketh_ledger_burn_in ); } - for (req, tx, signed_tx, _receipt) in vec![ + for (req, tx, signed_tx, _receipt) in [ cketh_withdrawal_flow( LedgerBurnIndex::new(17), TransactionNonce::from(2_u8), @@ -645,7 +645,7 @@ fn should_display_finalized_transactions_sorted_by_decreasing_cketh_ledger_burn_ mint_block_index: LedgerMintIndex::new(43), }, ); - for (req, tx, signed_tx, receipt) in vec![ + for (req, tx, signed_tx, receipt) in [ cketh_withdrawal_flow( LedgerBurnIndex::new(15), TransactionNonce::from(0_u8), @@ -785,7 +785,7 @@ fn should_display_reimbursed_requests() { }, ); - for ((req, tx, signed_tx, receipt), is_reimbursed) in vec![ + for ((req, tx, signed_tx, receipt), is_reimbursed) in [ ( cketh_withdrawal_flow( LedgerBurnIndex::new(15), diff --git a/rs/ethereum/cketh/minter/src/state/transactions/tests.rs b/rs/ethereum/cketh/minter/src/state/transactions/tests.rs index 195fe1c90624..dd1f350d9058 100644 --- a/rs/ethereum/cketh/minter/src/state/transactions/tests.rs +++ b/rs/ethereum/cketh/minter/src/state/transactions/tests.rs @@ -1443,7 +1443,7 @@ mod eth_transactions { &mut transactions, sent_tx_0_0.transaction().clone(), ); - let hashes_0: BTreeMap<_, _> = vec![sent_tx_0_0, sent_tx_0_1] + let hashes_0: BTreeMap<_, _> = [sent_tx_0_0, sent_tx_0_1] .iter() .map(|tx| (tx.hash(), first_cketh_ledger_burn_index)) .collect(); @@ -1458,7 +1458,7 @@ mod eth_transactions { &mut transactions, sent_tx_1_1.transaction().clone(), ); - let hashes_1: BTreeMap<_, _> = vec![sent_tx_1_0, sent_tx_1_1, sent_tx_1_2] + let hashes_1: BTreeMap<_, _> = [sent_tx_1_0, sent_tx_1_1, sent_tx_1_2] .iter() .map(|tx| (tx.hash(), second_cketh_ledger_burn_index)) .collect(); diff --git a/rs/ethereum/cketh/minter/tests/ckerc20.rs b/rs/ethereum/cketh/minter/tests/ckerc20.rs index 2f1a1f217a85..ad5a39a3eb39 100644 --- a/rs/ethereum/cketh/minter/tests/ckerc20.rs +++ b/rs/ethereum/cketh/minter/tests/ckerc20.rs @@ -80,14 +80,14 @@ fn should_add_ckusdc_and_ckusdt_to_minter_via_orchestrator() { .ledger .unwrap(); - ckerc20 = ckerc20 - .check_events() - .assert_has_unique_events_in_order(&vec![EventPayload::AddedCkErc20Token { + ckerc20 = ckerc20.check_events().assert_has_unique_events_in_order(&[ + EventPayload::AddedCkErc20Token { chain_id: token.contract.chain_id, address: format_ethereum_address_to_eip_55(&token.contract.address), ckerc20_token_symbol: token.ledger_init_arg.token_symbol, ckerc20_ledger_id: new_ledger_id, - }]); + }, + ]); } } @@ -128,7 +128,7 @@ fn should_retry_to_add_usdc_when_minter_stopped() { ckerc20 .cketh - .assert_has_unique_events_in_order(&vec![EventPayload::AddedCkErc20Token { + .assert_has_unique_events_in_order(&[EventPayload::AddedCkErc20Token { chain_id: usdc.contract.chain_id, address: format_ethereum_address_to_eip_55(&usdc.contract.address), ckerc20_token_symbol: usdc.ledger_init_arg.token_symbol, @@ -449,16 +449,14 @@ mod withdraw_erc20 { balance_before_withdrawal - Nat::from(transaction_fee), ); let reimbursed_amount = Nat::from(transaction_fee - CKETH_TRANSFER_FEE); - ckerc20 = ckerc20 - .check_events() - .assert_has_unique_events_in_order(&vec![ - EventPayload::FailedErc20WithdrawalRequest { - withdrawal_id: cketh_burn_index.into(), - reimbursed_amount: reimbursed_amount.clone(), - to: caller, - to_subaccount: None, - }, - ]); + ckerc20 = ckerc20.check_events().assert_has_unique_events_in_order(&[ + EventPayload::FailedErc20WithdrawalRequest { + withdrawal_id: cketh_burn_index.into(), + reimbursed_amount: reimbursed_amount.clone(), + to: caller, + to_subaccount: None, + }, + ]); ckerc20.env.advance_time(PROCESS_REIMBURSEMENT); ckerc20.env.tick(); @@ -469,7 +467,7 @@ mod withdraw_erc20 { ); ckerc20 .check_events() - .assert_has_unique_events_in_order(&vec![EventPayload::ReimbursedEthWithdrawal { + .assert_has_unique_events_in_order(&[EventPayload::ReimbursedEthWithdrawal { withdrawal_id: cketh_burn_index.into(), reimbursed_in_block: Nat::from(cketh_burn_index) + 1_u8, reimbursed_amount: reimbursed_amount.clone(), @@ -775,60 +773,54 @@ mod withdraw_erc20 { let estimated_max_fee_per_gas = Nat::from(33_003_708_258_u64); let estimated_gas_limit = Nat::from(65_000_u64); - let ckerc20 = ckerc20 - .check_events() - .assert_has_unique_events_in_order(&vec![ - EventPayload::AcceptedErc20WithdrawalRequest { - max_transaction_fee: ckerc20_tx_fee.into(), - withdrawal_amount: ckerc20_withdrawal_amount.into(), - erc20_contract_address: deposit_params - .token() - .erc20_contract_address - .clone(), - destination: DEFAULT_ERC20_WITHDRAWAL_DESTINATION_ADDRESS.to_string(), - cketh_ledger_burn_index: cketh_block_index.clone(), - ckerc20_ledger_id: deposit_params.token().ledger_canister_id, - ckerc20_ledger_burn_index: ckerc20_block_index.clone(), - from: ckerc20_account.owner, - from_subaccount: ckerc20_account.subaccount, - created_at: time, - }, - EventPayload::CreatedTransaction { - withdrawal_id: cketh_block_index.clone(), - transaction: UnsignedTransaction { - chain_id: Nat::from(1_u8), - nonce: Nat::from(0_u8), - max_priority_fee_per_gas: 1_500_000_000_u64.into(), - max_fee_per_gas: estimated_max_fee_per_gas.clone(), - gas_limit: estimated_gas_limit.clone(), - destination: deposit_params.token().erc20_contract_address.clone(), - value: 0_u8.into(), - data: ByteBuf::from(erc20_transfer_data( - &DEFAULT_ERC20_WITHDRAWAL_DESTINATION_ADDRESS - .parse() - .unwrap(), - &ckerc20_withdrawal_amount.into(), - )), - access_list: vec![], - }, - }, - EventPayload::SignedTransaction { - withdrawal_id: cketh_block_index.clone(), - raw_transaction: DEFAULT_CKERC20_WITHDRAWAL_TRANSACTION.to_string(), + let ckerc20 = ckerc20.check_events().assert_has_unique_events_in_order(&[ + EventPayload::AcceptedErc20WithdrawalRequest { + max_transaction_fee: ckerc20_tx_fee.into(), + withdrawal_amount: ckerc20_withdrawal_amount.into(), + erc20_contract_address: deposit_params.token().erc20_contract_address.clone(), + destination: DEFAULT_ERC20_WITHDRAWAL_DESTINATION_ADDRESS.to_string(), + cketh_ledger_burn_index: cketh_block_index.clone(), + ckerc20_ledger_id: deposit_params.token().ledger_canister_id, + ckerc20_ledger_burn_index: ckerc20_block_index.clone(), + from: ckerc20_account.owner, + from_subaccount: ckerc20_account.subaccount, + created_at: time, + }, + EventPayload::CreatedTransaction { + withdrawal_id: cketh_block_index.clone(), + transaction: UnsignedTransaction { + chain_id: Nat::from(1_u8), + nonce: Nat::from(0_u8), + max_priority_fee_per_gas: 1_500_000_000_u64.into(), + max_fee_per_gas: estimated_max_fee_per_gas.clone(), + gas_limit: estimated_gas_limit.clone(), + destination: deposit_params.token().erc20_contract_address.clone(), + value: 0_u8.into(), + data: ByteBuf::from(erc20_transfer_data( + &DEFAULT_ERC20_WITHDRAWAL_DESTINATION_ADDRESS + .parse() + .unwrap(), + &ckerc20_withdrawal_amount.into(), + )), + access_list: vec![], }, - EventPayload::FinalizedTransaction { - withdrawal_id: cketh_block_index.clone(), - transaction_receipt: TransactionReceipt { - block_hash: DEFAULT_BLOCK_HASH.to_string(), - block_number: Nat::from(DEFAULT_BLOCK_NUMBER), - effective_gas_price: Nat::from(4_277_923_390_u64), - gas_used: Nat::from(21_000_u64), - status: transaction_status.clone(), - transaction_hash: DEFAULT_CKERC20_WITHDRAWAL_TRANSACTION_HASH - .to_string(), - }, + }, + EventPayload::SignedTransaction { + withdrawal_id: cketh_block_index.clone(), + raw_transaction: DEFAULT_CKERC20_WITHDRAWAL_TRANSACTION.to_string(), + }, + EventPayload::FinalizedTransaction { + withdrawal_id: cketh_block_index.clone(), + transaction_receipt: TransactionReceipt { + block_hash: DEFAULT_BLOCK_HASH.to_string(), + block_number: Nat::from(DEFAULT_BLOCK_NUMBER), + effective_gas_price: Nat::from(4_277_923_390_u64), + gas_used: Nat::from(21_000_u64), + status: transaction_status.clone(), + transaction_hash: DEFAULT_CKERC20_WITHDRAWAL_TRANSACTION_HASH.to_string(), }, - ]); + }, + ]); ckerc20.env.advance_time(PROCESS_REIMBURSEMENT); let cketh_balance_after_reimbursement = ckerc20.wait_for_updated_ledger_balance( @@ -853,18 +845,16 @@ mod withdraw_erc20 { ); ckerc20 .check_events() - .assert_has_unique_events_in_order(&vec![ - EventPayload::ReimbursedErc20Withdrawal { - withdrawal_id: cketh_block_index.clone(), - burn_in_block: ckerc20_block_index.clone(), - reimbursed_in_block: Nat::from(3_u8), - ledger_id: deposit_params.token().ledger_canister_id, - reimbursed_amount: ckerc20_withdrawal_amount.into(), - transaction_hash: Some( - DEFAULT_CKERC20_WITHDRAWAL_TRANSACTION_HASH.to_string(), - ), - }, - ]) + .assert_has_unique_events_in_order(&[EventPayload::ReimbursedErc20Withdrawal { + withdrawal_id: cketh_block_index.clone(), + burn_in_block: ckerc20_block_index.clone(), + reimbursed_in_block: Nat::from(3_u8), + ledger_id: deposit_params.token().ledger_canister_id, + reimbursed_amount: ckerc20_withdrawal_amount.into(), + transaction_hash: Some( + DEFAULT_CKERC20_WITHDRAWAL_TRANSACTION_HASH.to_string(), + ), + }]) .call_ckerc20_ledger_get_transaction( deposit_params.token().ledger_canister_id, 3_u8, @@ -1149,7 +1139,7 @@ mod withdraw_erc20 { resubmitted_tx_sig, ) .check_events() - .assert_has_unique_events_in_order(&vec![ + .assert_has_unique_events_in_order(&[ EventPayload::ReplacedTransaction { withdrawal_id: cketh_block_index.clone(), transaction: UnsignedTransaction { @@ -1503,7 +1493,7 @@ fn should_deposit_cketh_and_ckerc20_when_ledger_temporary_offline() { let ckerc20 = deposit_flow .setup .check_events() - .assert_has_unique_events_in_order(&vec![ + .assert_has_unique_events_in_order(&[ EventPayload::AcceptedDeposit { transaction_hash: DEFAULT_DEPOSIT_TRANSACTION_HASH.to_string(), block_number: Nat::from(DEFAULT_DEPOSIT_BLOCK_NUMBER), @@ -1543,26 +1533,24 @@ fn should_deposit_cketh_and_ckerc20_when_ledger_temporary_offline() { ckerc20.env.advance_time(MINT_RETRY_DELAY); ckerc20.env.tick(); - let ckerc20 = ckerc20 - .check_events() - .assert_has_unique_events_in_order(&vec![ - EventPayload::MintedCkEth { - event_source: EventSource { - transaction_hash: DEFAULT_DEPOSIT_TRANSACTION_HASH.to_string(), - log_index: Nat::from(DEFAULT_DEPOSIT_LOG_INDEX), - }, - mint_block_index: Nat::from(0_u8), + let ckerc20 = ckerc20.check_events().assert_has_unique_events_in_order(&[ + EventPayload::MintedCkEth { + event_source: EventSource { + transaction_hash: DEFAULT_DEPOSIT_TRANSACTION_HASH.to_string(), + log_index: Nat::from(DEFAULT_DEPOSIT_LOG_INDEX), }, - EventPayload::MintedCkErc20 { - event_source: EventSource { - transaction_hash: DEFAULT_ERC20_DEPOSIT_TRANSACTION_HASH.to_string(), - log_index: Nat::from(DEFAULT_ERC20_DEPOSIT_LOG_INDEX), - }, - ckerc20_token_symbol: ckusdc.ckerc20_token_symbol, - erc20_contract_address: ckusdc.erc20_contract_address, - mint_block_index: Nat::from(0_u8), + mint_block_index: Nat::from(0_u8), + }, + EventPayload::MintedCkErc20 { + event_source: EventSource { + transaction_hash: DEFAULT_ERC20_DEPOSIT_TRANSACTION_HASH.to_string(), + log_index: Nat::from(DEFAULT_ERC20_DEPOSIT_LOG_INDEX), }, - ]); + ckerc20_token_symbol: ckusdc.ckerc20_token_symbol, + erc20_contract_address: ckusdc.erc20_contract_address, + mint_block_index: Nat::from(0_u8), + }, + ]); assert_eq!( call_ledger_icrc1_total_supply(&ckerc20.env, ckerc20.cketh.ledger_id,), @@ -1590,7 +1578,7 @@ fn should_block_deposit_from_blocked_address() { }) .expect_no_mint() .check_events() - .assert_has_unique_events_in_order(&vec![EventPayload::InvalidDeposit { + .assert_has_unique_events_in_order(&[EventPayload::InvalidDeposit { event_source: EventSource { transaction_hash: DEFAULT_ERC20_DEPOSIT_TRANSACTION_HASH.to_string(), log_index: Nat::from(DEFAULT_ERC20_DEPOSIT_LOG_INDEX), @@ -1613,7 +1601,7 @@ fn should_block_deposit_from_corrupted_principal() { }) .expect_no_mint() .check_events() - .assert_has_unique_events_in_order(&vec![EventPayload::InvalidDeposit { + .assert_has_unique_events_in_order(&[EventPayload::InvalidDeposit { event_source: EventSource { transaction_hash: DEFAULT_ERC20_DEPOSIT_TRANSACTION_HASH.to_string(), log_index: Nat::from(DEFAULT_ERC20_DEPOSIT_LOG_INDEX), @@ -1823,16 +1811,14 @@ fn should_scrape_from_last_scraped_after_upgrade() { ckerc20 .cketh .check_audit_logs_and_upgrade_as_ref(Default::default()); - ckerc20 = ckerc20 - .check_events() - .assert_has_unique_events_in_order(&vec![ - EventPayload::SyncedToBlock { - block_number: latest_finalized_block.into(), - }, - EventPayload::SyncedErc20ToBlock { - block_number: latest_finalized_block.into(), - }, - ]); + ckerc20 = ckerc20.check_events().assert_has_unique_events_in_order(&[ + EventPayload::SyncedToBlock { + block_number: latest_finalized_block.into(), + }, + EventPayload::SyncedErc20ToBlock { + block_number: latest_finalized_block.into(), + }, + ]); // Advance block height and scrape again let latest_finalized_block = @@ -2044,7 +2030,7 @@ fn should_skip_single_block_containing_too_many_events() { } => address.to_lowercase() == ETH_HELPER_CONTRACT_ADDRESS, _ => false, }) - .assert_has_unique_events_in_order(&vec![ + .assert_has_unique_events_in_order(&[ EventPayload::SkippedBlock { contract_address: Some( ERC20_HELPER_CONTRACT_ADDRESS diff --git a/rs/ethereum/cketh/minter/tests/cketh.rs b/rs/ethereum/cketh/minter/tests/cketh.rs index 540ac0b673aa..3aaa173e09ce 100644 --- a/rs/ethereum/cketh/minter/tests/cketh.rs +++ b/rs/ethereum/cketh/minter/tests/cketh.rs @@ -129,7 +129,7 @@ fn should_deposit_and_withdraw() { }); assert_eq!(cketh.balance_of(account), Nat::from(0_u8)); - cketh.assert_has_unique_events_in_order(&vec![ + cketh.assert_has_unique_events_in_order(&[ EventPayload::AcceptedEthWithdrawalRequest { withdrawal_amount: withdrawal_amount.clone(), destination: destination.clone(), @@ -226,7 +226,7 @@ fn should_block_deposit_from_blocked_address() { ..Default::default() }) .expect_no_mint() - .assert_has_unique_events_in_order(&vec![EventPayload::InvalidDeposit { + .assert_has_unique_events_in_order(&[EventPayload::InvalidDeposit { event_source: EventSource { transaction_hash: DEFAULT_DEPOSIT_TRANSACTION_HASH.to_string(), log_index: Nat::from(DEFAULT_DEPOSIT_LOG_INDEX), @@ -549,7 +549,7 @@ fn should_reimburse() { created_at_time: None, fee: None, }) - .assert_has_unique_events_in_order(&vec![ + .assert_has_unique_events_in_order(&[ EventPayload::AcceptedEthWithdrawalRequest { withdrawal_amount: withdrawal_amount.clone(), destination: destination.clone(), @@ -663,7 +663,7 @@ fn should_resubmit_new_transaction_when_price_increased() { resubmitted_tx.clone(), resubmitted_tx_sig, ) - .assert_has_unique_events_in_order(&vec![ + .assert_has_unique_events_in_order(&[ EventPayload::ReplacedTransaction { withdrawal_id: withdrawal_id.clone(), transaction: UnsignedTransaction { @@ -743,7 +743,7 @@ fn should_not_overlap_when_scrapping_logs() { cketh .check_audit_logs_and_upgrade(Default::default()) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: second_to_block.into(), }]); } @@ -779,7 +779,7 @@ fn should_retry_from_same_block_when_scrapping_fails() { .check_audit_logs_and_upgrade(Default::default()) .check_events() .skip(prev_events_len) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: LAST_SCRAPED_BLOCK_NUMBER_AT_INSTALL.into(), }]); @@ -801,7 +801,7 @@ fn should_retry_from_same_block_when_scrapping_fails() { cketh .check_audit_logs_and_upgrade(Default::default()) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: Nat::from(to_block), }]); } @@ -843,7 +843,7 @@ fn should_panic_when_last_finalized_block_in_the_past() { .check_audit_logs_and_upgrade(Default::default()) .check_events() .skip(prev_events_len) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: LAST_SCRAPED_BLOCK_NUMBER_AT_INSTALL.into(), }]); @@ -869,7 +869,7 @@ fn should_panic_when_last_finalized_block_in_the_past() { cketh .check_audit_logs_and_upgrade(Default::default()) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: last_finalized_block.into(), }]); } @@ -906,7 +906,7 @@ fn should_skip_scrapping_when_last_seen_block_newer_than_current_height() { ethereum_block_height: Some(CandidBlockTag::Finalized), ..Default::default() }) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: safe_block_number.into(), }]); cketh.env.tick(); @@ -978,7 +978,7 @@ fn should_half_range_of_scrapped_logs_when_response_over_two_mega_bytes() { cketh .check_audit_logs_and_upgrade(Default::default()) - .assert_has_unique_events_in_order(&vec![EventPayload::SyncedToBlock { + .assert_has_unique_events_in_order(&[EventPayload::SyncedToBlock { block_number: half_to_block.into(), }]) .assert_has_no_event_satisfying(|event| matches!(event, EventPayload::SkippedBlock { .. })); @@ -1055,7 +1055,7 @@ fn should_skip_single_block_containing_too_many_events() { cketh .check_audit_logs_and_upgrade(Default::default()) - .assert_has_unique_events_in_order(&vec![ + .assert_has_unique_events_in_order(&[ EventPayload::SkippedBlock { contract_address: Some( ETH_HELPER_CONTRACT_ADDRESS diff --git a/rs/ethereum/cketh/test_utils/src/ckerc20.rs b/rs/ethereum/cketh/test_utils/src/ckerc20.rs index fb9dc7b4adcd..023674311327 100644 --- a/rs/ethereum/cketh/test_utils/src/ckerc20.rs +++ b/rs/ethereum/cketh/test_utils/src/ckerc20.rs @@ -117,14 +117,14 @@ impl CkErc20Setup { .ledger .unwrap(); - self.cketh = self.cketh.assert_has_unique_events_in_order(&vec![ - EventPayload::AddedCkErc20Token { - chain_id: token.contract.chain_id.clone(), - address: format_ethereum_address_to_eip_55(&token.contract.address), - ckerc20_token_symbol: token.ledger_init_arg.token_symbol.clone(), - ckerc20_ledger_id: new_ledger_id, - }, - ]); + self.cketh = + self.cketh + .assert_has_unique_events_in_order(&[EventPayload::AddedCkErc20Token { + chain_id: token.contract.chain_id.clone(), + address: format_ethereum_address_to_eip_55(&token.contract.address), + ckerc20_token_symbol: token.ledger_init_arg.token_symbol.clone(), + ckerc20_ledger_id: new_ledger_id, + }]); } self } @@ -713,7 +713,7 @@ impl CkErc20DepositFlow { if let Some(deposit) = self.params.cketh_deposit() { let eth_tx_data = deposit.transaction_data(); - self.setup.cketh = self.setup.cketh.assert_has_unique_events_in_order(&vec![ + self.setup.cketh = self.setup.cketh.assert_has_unique_events_in_order(&[ EventPayload::AcceptedDeposit { transaction_hash: eth_tx_data.transaction_hash.to_string(), block_number: Nat::from(eth_tx_data.block_number), @@ -734,7 +734,7 @@ impl CkErc20DepositFlow { } let erc20_tx_data = self.params.transaction_data(); - self.setup.cketh = self.setup.cketh.assert_has_unique_events_in_order(&vec![ + self.setup.cketh = self.setup.cketh.assert_has_unique_events_in_order(&[ EventPayload::AcceptedErc20Deposit { transaction_hash: erc20_tx_data.transaction_hash.to_string(), block_number: Nat::from(erc20_tx_data.block_number), diff --git a/rs/ethereum/ledger-suite-orchestrator/src/scheduler/tests.rs b/rs/ethereum/ledger-suite-orchestrator/src/scheduler/tests.rs index 5dc211e2a00a..02fb280d2320 100644 --- a/rs/ethereum/ledger-suite-orchestrator/src/scheduler/tests.rs +++ b/rs/ethereum/ledger-suite-orchestrator/src/scheduler/tests.rs @@ -1023,7 +1023,7 @@ mod upgrade_ledger_suite { s.record_created_canister::(&usdc, LEDGER_PRINCIPAL); }); - for (task, canister_id) in vec![ + for (task, canister_id) in [ (update_index_task, INDEX_PRINCIPAL), (update_ledger_task, LEDGER_PRINCIPAL), ] { diff --git a/rs/execution_environment/tests/history.rs b/rs/execution_environment/tests/history.rs index 7dc1e3bd87e8..d5fe2132f888 100644 --- a/rs/execution_environment/tests/history.rs +++ b/rs/execution_environment/tests/history.rs @@ -216,7 +216,7 @@ fn test_invalid_transitions() { }) .collect::>(); - let all_statuses = vec![Unknown, received(), processing(), completed(), failed()]; + let all_statuses = [Unknown, received(), processing(), completed(), failed()]; // creates the cartesian product of all states and filters out the valid // transitions diff --git a/rs/ingress_manager/src/ingress_selector.rs b/rs/ingress_manager/src/ingress_selector.rs index fe2419cee745..5f60762fc9ff 100644 --- a/rs/ingress_manager/src/ingress_selector.rs +++ b/rs/ingress_manager/src/ingress_selector.rs @@ -812,7 +812,7 @@ mod tests { .expiry_time(time) .build(); - let ingress_messages = vec![m1.clone(), m2, m3]; + let ingress_messages = [m1.clone(), m2, m3]; for m in ingress_messages.iter() { let message_id = IngressMessageId::from(m); access_ingress_pool(&ingress_pool, |ingress_pool| { @@ -1534,7 +1534,7 @@ mod tests { certified_height: Height::from(0), }; - let ingress_messages = vec![m1.clone(), m2.clone(), m3, m4]; + let ingress_messages = [m1.clone(), m2.clone(), m3, m4]; for m in ingress_messages.iter() { let message_id = IngressMessageId::from(m); diff --git a/rs/ledger_suite/icrc1/archive/tests/tests.rs b/rs/ledger_suite/icrc1/archive/tests/tests.rs index 6c0bd75a8a5f..b25043ad8230 100644 --- a/rs/ledger_suite/icrc1/archive/tests/tests.rs +++ b/rs/ledger_suite/icrc1/archive/tests/tests.rs @@ -187,7 +187,7 @@ fn test_icrc3_get_blocks() { block2.encode(), block3.encode(), ]; - let blockids = vec![blockid0, blockid1, blockid2, blockid3]; + let blockids = [blockid0, blockid1, blockid2, blockid3]; let _ = setup.append_blocks(blocks); let check_icrc3_get_blocks = diff --git a/rs/ledger_suite/icrc1/ledger/src/lib.rs b/rs/ledger_suite/icrc1/ledger/src/lib.rs index e75378d145d1..0d52629bc3cc 100644 --- a/rs/ledger_suite/icrc1/ledger/src/lib.rs +++ b/rs/ledger_suite/icrc1/ledger/src/lib.rs @@ -556,18 +556,13 @@ pub enum LedgerField { Blocks, } -#[derive(Copy, Clone, Serialize, Deserialize, Debug)] +#[derive(Copy, Clone, Serialize, Deserialize, Debug, Default)] pub enum LedgerState { Migrating(LedgerField), + #[default] Ready, } -impl Default for LedgerState { - fn default() -> Self { - Self::Ready - } -} - type StableLedgerBalances = Balances; #[derive(Debug, Deserialize, Serialize)] diff --git a/rs/rosetta-api/common/rosetta_core/src/objects.rs b/rs/rosetta-api/common/rosetta_core/src/objects.rs index 34eac2e31c14..ed8444c8a537 100644 --- a/rs/rosetta-api/common/rosetta_core/src/objects.rs +++ b/rs/rosetta-api/common/rosetta_core/src/objects.rs @@ -443,9 +443,12 @@ pub struct BalanceExemption { /// ExemptionType is used to indicate if the live balance for an account subject to a BalanceExemption could increase above, /// decrease below, or equal the computed balance. -#[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Deserialize, Serialize)] +#[derive( + Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Deserialize, Serialize, Default, +)] pub enum ExemptionType { /// The live balance may increase above or equal the computed balance. This typically occurs with staking rewards that accrue on each block. + #[default] GreaterOrEqual, /// The live balance may decrease below or equal the computed balance. This typically occurs as balance moves from locked to spendable on a vesting account. LessOrEqual, @@ -453,12 +456,6 @@ pub enum ExemptionType { Dynamic, } -impl Default for ExemptionType { - fn default() -> ExemptionType { - Self::GreaterOrEqual - } -} - /// Case specifies the expected case for strings and hashes. #[derive(Copy, Clone, Eq, PartialEq, Ord, PartialOrd, Hash, Debug, Deserialize, Serialize)] pub enum Case { diff --git a/rs/rosetta-api/icp/src/models.rs b/rs/rosetta-api/icp/src/models.rs index 267596f6ec1d..ed80e63ea44d 100644 --- a/rs/rosetta-api/icp/src/models.rs +++ b/rs/rosetta-api/icp/src/models.rs @@ -73,10 +73,11 @@ impl EnvelopePair { } } -#[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize)] +#[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize, Default)] #[serde(rename_all = "snake_case")] #[serde(tag = "account_type")] pub enum AccountType { + #[default] Ledger, Neuron { #[serde(default)] @@ -84,12 +85,6 @@ pub enum AccountType { }, } -impl Default for AccountType { - fn default() -> Self { - Self::Ledger - } -} - #[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize)] pub struct ConstructionDeriveRequestMetadata { #[serde(flatten)] @@ -355,10 +350,11 @@ pub struct NeuronSubaccountComponents { /// We use this type to make query to the governance /// canister about the current neuron information. -#[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize)] +#[derive(Clone, Eq, PartialEq, Debug, Deserialize, Serialize, Default)] #[serde(tag = "account_type")] pub enum BalanceAccountType { #[serde(rename = "ledger")] + #[default] Ledger, #[serde(rename = "neuron")] Neuron { @@ -379,12 +375,6 @@ pub enum BalanceAccountType { }, } -impl Default for BalanceAccountType { - fn default() -> Self { - Self::Ledger - } -} - /// The type of metadata for the /account/balance endpoint. #[derive(Clone, Eq, PartialEq, Debug, Default, Deserialize, Serialize)] pub struct AccountBalanceMetadata { diff --git a/rs/sns/governance/src/proposal/minting_tests.rs b/rs/sns/governance/src/proposal/minting_tests.rs index a09da899fca9..7a1b3ec14d5c 100644 --- a/rs/sns/governance/src/proposal/minting_tests.rs +++ b/rs/sns/governance/src/proposal/minting_tests.rs @@ -125,7 +125,7 @@ fn test_total_minting_amount_tokens() { } }; - let proposals = vec![ + let proposals = [ // Skip because not of type MintSnsTokens. ProposalData { proposal: Some(Proposal { From 620ed71b27be0e9dd4e3e75f7f6947b45faaac32 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Wed, 10 Dec 2025 19:19:07 +0000 Subject: [PATCH 04/20] num-bigint-dig: 0.8.4 -> 0.9.1 --- Cargo.Bazel.json.lock | 127 ++++++++++++++++-- Cargo.Bazel.toml.lock | 21 ++- Cargo.lock | 21 ++- bazel/rust.MODULE.bazel | 2 +- .../fe-derive/Cargo.toml | 2 +- 5 files changed, 155 insertions(+), 18 deletions(-) diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index c526ec34094e..6fde35855b6a 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "5bba51aaf15cae3539a8811baf5d2a5022a20ec14bb5281436382786cc526224", + "checksum": "ce0a6990af64a8d6980858362d28d1fe6133389e95867fa53a4c791b599171a5", "crates": { "abnf 0.12.0": { "name": "abnf", @@ -21952,7 +21952,7 @@ "target": "num_bigint" }, { - "id": "num-bigint-dig 0.8.4", + "id": "num-bigint-dig 0.9.1", "target": "num_bigint_dig" }, { @@ -51513,12 +51513,9 @@ ], "crate_features": { "common": [ - "default", "i128", "prime", "rand", - "serde", - "std", "u64_digit", "zeroize" ], @@ -51558,10 +51555,6 @@ "id": "rand 0.8.5", "target": "rand" }, - { - "id": "serde 1.0.228", - "target": "serde" - }, { "id": "smallvec 1.15.1", "target": "smallvec" @@ -51594,6 +51587,120 @@ ], "license_file": "LICENSE-APACHE" }, + "num-bigint-dig 0.9.1": { + "name": "num-bigint-dig", + "version": "0.9.1", + "package_url": "https://github.com/dignifiedquire/num-bigint", + "repository": { + "Http": { + "url": "https://static.crates.io/crates/num-bigint-dig/0.9.1/download", + "sha256": "a7f9a86e097b0d187ad0e65667c2f58b9254671e86e7dbb78036b16692eae099" + } + }, + "targets": [ + { + "Library": { + "crate_name": "num_bigint_dig", + "crate_root": "src/lib.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + }, + { + "BuildScript": { + "crate_name": "build_script_build", + "crate_root": "build.rs", + "srcs": { + "allow_empty": true, + "include": [ + "**/*.rs" + ] + } + } + } + ], + "library_target_name": "num_bigint_dig", + "common_attrs": { + "compile_data_glob": [ + "**" + ], + "crate_features": { + "common": [ + "default", + "prime", + "rand", + "serde", + "std", + "u64_digit" + ], + "selects": {} + }, + "deps": { + "common": [ + { + "id": "libm 0.2.15", + "target": "libm" + }, + { + "id": "num-bigint-dig 0.9.1", + "target": "build_script_build" + }, + { + "id": "num-integer 0.1.46", + "target": "num_integer" + }, + { + "id": "num-iter 0.1.45", + "target": "num_iter" + }, + { + "id": "num-traits 0.2.19", + "target": "num_traits" + }, + { + "id": "once_cell 1.21.3", + "target": "once_cell" + }, + { + "id": "rand 0.9.0", + "target": "rand" + }, + { + "id": "serde 1.0.228", + "target": "serde" + }, + { + "id": "smallvec 1.15.1", + "target": "smallvec" + } + ], + "selects": {} + }, + "edition": "2021", + "version": "0.9.1" + }, + "build_script_attrs": { + "compile_data_glob": [ + "**" + ], + "compile_data_glob_excludes": [ + "**/*.rs" + ], + "data_glob": [ + "**" + ] + }, + "license": "MIT/Apache-2.0", + "license_ids": [ + "Apache-2.0", + "MIT" + ], + "license_file": "LICENSE-APACHE" + }, "num-cmp 0.1.0": { "name": "num-cmp", "version": "0.1.0", @@ -97827,7 +97934,7 @@ "nftables 0.4.1", "nix 0.24.3", "num-bigint 0.4.6", - "num-bigint-dig 0.8.4", + "num-bigint-dig 0.9.1", "num-rational 0.2.4", "num-traits 0.2.19", "num_cpus 1.16.0", diff --git a/Cargo.Bazel.toml.lock b/Cargo.Bazel.toml.lock index 804654b1ebce..3ab0bab7d42e 100644 --- a/Cargo.Bazel.toml.lock +++ b/Cargo.Bazel.toml.lock @@ -3777,7 +3777,7 @@ dependencies = [ "nftables", "nix 0.24.3", "num-bigint 0.4.6", - "num-bigint-dig", + "num-bigint-dig 0.9.1", "num-rational 0.2.4", "num-traits", "num_cpus", @@ -8844,11 +8844,26 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", - "serde", "smallvec", "zeroize", ] +[[package]] +name = "num-bigint-dig" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f9a86e097b0d187ad0e65667c2f58b9254671e86e7dbb78036b16692eae099" +dependencies = [ + "libm", + "num-integer", + "num-iter", + "num-traits", + "once_cell", + "rand 0.9.0", + "serde", + "smallvec", +] + [[package]] name = "num-cmp" version = "0.1.0" @@ -11484,7 +11499,7 @@ checksum = "5d0e5124fcb30e76a7e79bfee683a2746db83784b86289f6251b54b7950a0dfc" dependencies = [ "const-oid", "digest 0.10.7", - "num-bigint-dig", + "num-bigint-dig 0.8.4", "num-integer", "num-traits", "pkcs1", diff --git a/Cargo.lock b/Cargo.lock index 1c30feb5f6ab..ff44023a0f31 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -4812,7 +4812,7 @@ name = "fe-derive" version = "0.9.0" dependencies = [ "hex", - "num-bigint-dig", + "num-bigint-dig 0.9.1", "num-traits", "proc-macro2", "quote", @@ -18673,11 +18673,26 @@ dependencies = [ "num-iter", "num-traits", "rand 0.8.5", - "serde", "smallvec", "zeroize", ] +[[package]] +name = "num-bigint-dig" +version = "0.9.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7f9a86e097b0d187ad0e65667c2f58b9254671e86e7dbb78036b16692eae099" +dependencies = [ + "libm", + "num-integer", + "num-iter", + "num-traits", + "once_cell", + "rand 0.9.0", + "serde", + "smallvec", +] + [[package]] name = "num-cmp" version = "0.1.0" @@ -21793,7 +21808,7 @@ checksum = "47c75d7c5c6b673e58bf54d8544a9f432e3a925b0e80f7cd3602ab5c50c55519" dependencies = [ "const-oid", "digest 0.10.7", - "num-bigint-dig", + "num-bigint-dig 0.8.4", "num-integer", "num-traits", "pkcs1", diff --git a/bazel/rust.MODULE.bazel b/bazel/rust.MODULE.bazel index cacf8d0210f7..b48dd65b9560 100644 --- a/bazel/rust.MODULE.bazel +++ b/bazel/rust.MODULE.bazel @@ -992,7 +992,7 @@ crate.spec( crate.spec( features = ["prime"], package = "num-bigint-dig", - version = "^0.8", + version = "^0.9", ) crate.spec( package = "num-rational", diff --git a/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/fe-derive/Cargo.toml b/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/fe-derive/Cargo.toml index 1edbc16e4c33..5b1bc227167c 100644 --- a/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/fe-derive/Cargo.toml +++ b/rs/crypto/internal/crypto_lib/threshold_sig/canister_threshold_sig/fe-derive/Cargo.toml @@ -11,7 +11,7 @@ proc-macro = true [dependencies] hex = { workspace = true } -num-bigint-dig = { version = "0.8", features = ["prime"] } +num-bigint-dig = { version = "0.9", features = ["prime"] } num-traits = { workspace = true } proc-macro2 = { workspace = true } quote = { workspace = true } From cb70170411eb005f8257aaa7ca0450e22b3b472b Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Wed, 10 Dec 2025 21:49:11 +0000 Subject: [PATCH 05/20] bazel run //rs/nns/governance:governance-canbench_update --- .../governance/canbench/canbench_results.yml | 60 +++++++++---------- 1 file changed, 30 insertions(+), 30 deletions(-) diff --git a/rs/nns/governance/canbench/canbench_results.yml b/rs/nns/governance/canbench/canbench_results.yml index 2d32b6fb9c4d..4bd04d2f736a 100644 --- a/rs/nns/governance/canbench/canbench_results.yml +++ b/rs/nns/governance/canbench/canbench_results.yml @@ -2,206 +2,206 @@ benches: add_neuron_active_maximum: total: calls: 1 - instructions: 61500129 + instructions: 59464201 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_active_typical: total: calls: 1 - instructions: 4397745 + instructions: 4319962 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_inactive_maximum: total: calls: 1 - instructions: 61500250 + instructions: 59464322 heap_increase: 0 stable_memory_increase: 0 scopes: {} add_neuron_inactive_typical: total: calls: 1 - instructions: 4397866 + instructions: 4320083 heap_increase: 0 stable_memory_increase: 0 scopes: {} cascading_vote_stable_everything: total: calls: 1 - instructions: 106307790 + instructions: 103056446 heap_increase: 0 stable_memory_increase: 128 scopes: {} centralized_following_all: total: calls: 1 - instructions: 42125388 + instructions: 41330458 heap_increase: 0 stable_memory_increase: 128 scopes: {} compute_ballots_for_new_proposal_with_stable_neurons: total: calls: 1 - instructions: 1777765 + instructions: 1806549 heap_increase: 0 stable_memory_increase: 256 scopes: {} distribute_rewards_with_stable_neurons: total: calls: 1 - instructions: 2788359 + instructions: 2815904 heap_increase: 0 stable_memory_increase: 256 scopes: {} draw_maturity_from_neurons_fund: total: calls: 1 - instructions: 7564743 + instructions: 7611679 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_active_neurons_fund_neurons: total: calls: 1 - instructions: 2194821 + instructions: 2148691 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_neurons: total: calls: 1 - instructions: 64143895 + instructions: 63464384 heap_increase: 9 stable_memory_increase: 0 scopes: {} list_neurons_by_subaccount: total: calls: 1 - instructions: 63240563 + instructions: 62386107 heap_increase: 5 stable_memory_increase: 0 scopes: {} list_proposals: total: calls: 1 - instructions: 79657 + instructions: 78249 heap_increase: 0 stable_memory_increase: 0 scopes: {} list_ready_to_spawn_neuron_ids: total: calls: 1 - instructions: 36832813 + instructions: 37032683 heap_increase: 0 stable_memory_increase: 0 scopes: {} neuron_data_validation: total: calls: 1 - instructions: 206304392 + instructions: 195281915 heap_increase: 0 stable_memory_increase: 0 scopes: {} neuron_metrics_calculation: total: calls: 1 - instructions: 2683225 + instructions: 2704999 heap_increase: 0 stable_memory_increase: 0 scopes: {} range_neurons_performance: total: calls: 1 - instructions: 51683572 + instructions: 51119791 heap_increase: 0 stable_memory_increase: 0 scopes: {} record_known_neuron_vote: total: calls: 1 - instructions: 182534 + instructions: 183172 heap_increase: 0 stable_memory_increase: 128 scopes: {} record_neuron_vote_known_neuron_voting_history: total: calls: 1 - instructions: 142560 + instructions: 143333 heap_increase: 0 stable_memory_increase: 0 scopes: {} single_vote_all: total: calls: 1 - instructions: 278483 + instructions: 274837 heap_increase: 0 stable_memory_increase: 128 scopes: {} unstake_maturity_of_dissolved_neurons: total: calls: 1 - instructions: 63745188 + instructions: 63704195 heap_increase: 0 stable_memory_increase: 0 scopes: list_neuron_ids: calls: 1 - instructions: 38189482 + instructions: 38361301 heap_increase: 0 stable_memory_increase: 0 unstake_maturity: calls: 1 - instructions: 25553547 + instructions: 25340736 heap_increase: 0 stable_memory_increase: 0 voting_power_snapshots_is_latest_snapshot_a_spike_false: total: calls: 1 - instructions: 30194 + instructions: 30221 heap_increase: 0 stable_memory_increase: 0 scopes: {} voting_power_snapshots_is_latest_snapshot_a_spike_true: total: calls: 1 - instructions: 30205 + instructions: 30232 heap_increase: 0 stable_memory_increase: 0 scopes: {} voting_power_snapshots_latest_snapshot_timestamp_seconds: total: calls: 1 - instructions: 7608 + instructions: 7632 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_all_sections_maximum: total: calls: 1 - instructions: 4221086 + instructions: 4105991 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_all_sections_typical: total: calls: 1 - instructions: 838750 + instructions: 824778 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_main_section_maximum: total: calls: 1 - instructions: 2330589 + instructions: 2261182 heap_increase: 0 stable_memory_increase: 0 scopes: {} with_neuron_mut_main_section_typical: total: calls: 1 - instructions: 392586 + instructions: 389060 heap_increase: 0 stable_memory_increase: 0 scopes: {} From 54d01071bec518a8c9e90216eef32dc0fd0d876c Mon Sep 17 00:00:00 2001 From: Adam Bratschi-Kaye Date: Thu, 11 Dec 2025 08:48:54 +0000 Subject: [PATCH 06/20] Update canister backtrace tests for new compiler generated function names --- rs/execution_environment/tests/backtraces.rs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/rs/execution_environment/tests/backtraces.rs b/rs/execution_environment/tests/backtraces.rs index 697d92c00c0b..6eae5b0cfed4 100644 --- a/rs/execution_environment/tests/backtraces.rs +++ b/rs/execution_environment/tests/backtraces.rs @@ -27,8 +27,8 @@ const IC0_TRAP_ERROR: &str = const IC0_TRAP_BACKTRACE: &str = r#" Canister Backtrace: ic_cdk_executor::machinery::setup_panic_hook::{{closure}}::{{closure}} -std::panicking::rust_panic_with_hook -std::panicking::begin_panic_handler::{{closure}} +std::panicking::panic_with_hook +std::panicking::panic_handler::{{closure}} std::sys::backtrace::__rust_end_short_backtrace __rustc::rust_begin_unwind core::panicking::panic_fmt From b1ae7dd116d8ea56a73f46676252aaaac431c08d Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation Date: Thu, 11 Dec 2025 14:33:50 +0000 Subject: [PATCH 07/20] Automatically updated Cargo*.lock --- Cargo.Bazel.json.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index 0f5b92bf59fa..0ce87c7aa985 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "f2b663842d4b3596c854e7277531a75307a2cc76fbaa0c6055c36667503f26bf", + "checksum": "513b52a49f7b9de5fa1fc383e34a9a5e23690093c1455711ff26e1bdb530218e", "crates": { "abnf 0.12.0": { "name": "abnf", From 1ed9b82cce182b267e39d85c43a794c4cc969d46 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Thu, 11 Dec 2025 19:37:29 +0000 Subject: [PATCH 08/20] Updating container image to sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 Image tag: 5c0f17687b89610095b58757e9aab0e4665c0c02da638c854cd1b9ddb0c470a2 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 3dca00f8df6e..67ce13a1c5f5 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b", + "image": "ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 551abbad3d8f..dcdaaaae6940 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index 97bb797fcc6e..a392790f39fd 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 8f0e7360db0c..19db3ec7745c 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index f20f42a02fdd..f27604e4ad4d 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index c833f6f4ffdb..3f798dd6ad35 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index 19c368a9c5d1..076f46c5c860 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index 966a77559585..862b1c864504 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index cc67c396a43c..9dc73008d796 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index f27dac889570..21cdd10e81af 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 # running on bare metal machine using ubuntu user options: --user ubuntu timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index aa737dc62f48..f435dd1b6d80 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index e54bf93197e0..92f03f834c02 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:e43446b3e617e4282205c5f54717d938863fdfcece225e4be74d876187d26a7b + image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info env: diff --git a/ci/container/TAG b/ci/container/TAG index a86eb194d54a..f189ea9a0f53 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -8ce8e7a0eca913f2a2b8dbb2d8170bebe1537d353e8147edd2d912c6a322f329 +5c0f17687b89610095b58757e9aab0e4665c0c02da638c854cd1b9ddb0c470a2 From c0a97edb0260940f9fd9f9be5f0d01f53e99f93c Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation Date: Fri, 12 Dec 2025 11:46:07 +0000 Subject: [PATCH 09/20] Automatically updated Cargo*.lock --- Cargo.Bazel.json.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index 8708792bcced..6fde35855b6a 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "5bba51aaf15cae3539a8811baf5d2a5022a20ec14bb5281436382786cc526224", + "checksum": "ce0a6990af64a8d6980858362d28d1fe6133389e95867fa53a4c791b599171a5", "crates": { "abnf 0.12.0": { "name": "abnf", From 31474c353b2c92d8666fb4d9fb5a796576583321 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Fri, 12 Dec 2025 11:56:03 +0000 Subject: [PATCH 10/20] Updating container image to sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a Image tag: dfc32c6da13615e817f947e9a3aedea2cbf0a14529cfc3ac965627ec19f4c913 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 67ce13a1c5f5..8703ce345115 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674", + "image": "ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index dcdaaaae6940..10dce9318a8f 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index a392790f39fd..aad97772a477 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 19db3ec7745c..4e5670262d41 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index f27604e4ad4d..1518413de6b1 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index 3f798dd6ad35..cf5c9f21da0d 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index 076f46c5c860..24a14c0d3d00 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index 862b1c864504..f577b246bf4e 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index 9dc73008d796..d63439169397 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index 21cdd10e81af..13e00ab1848c 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a # running on bare metal machine using ubuntu user options: --user ubuntu timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index f435dd1b6d80..98cdb752b6e6 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index 92f03f834c02..baf53e1339c2 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:1d3443dff021a8077fb85d2878cf3abf25529bd8dabae0492cfe4a2aa89f2674 + image: ghcr.io/dfinity/ic-build@sha256:47726c0439220885f2a0fa4b0988a99b6285bf86d59e7a55f4a391fe87c5890a options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info env: diff --git a/ci/container/TAG b/ci/container/TAG index e21414338b37..64a93e7170c9 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -aa4465680d4f91d55daf796721518ec5721781f67dd0021f1d902793740acb62 +dfc32c6da13615e817f947e9a3aedea2cbf0a14529cfc3ac965627ec19f4c913 From 7d6f815a31ccdba6bd87e49e5977ee8985bd80d4 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Sat, 13 Dec 2025 11:51:42 +0000 Subject: [PATCH 11/20] Updating container image to sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 Image tag: f946ee8365c0f76f373639eb1e6f363e8584adee09e31a45751f39fe7cb04ccd --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index c98462e1fc22..53758671c7c0 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649", + "image": "ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index fb8112b59691..2a1536d130b5 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index 04029da8eb7a..779928dcde4b 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 20908aeab205..fff009cba529 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index de95ebf86a1a..9b60f73b9889 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index e849e1352688..f4e0b8929795 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index 2914c3c1d800..ee508040d690 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index 37b8b315da14..dcc4a3900a4e 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index adf6fef16584..26a3d2069d84 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index a01a627871a0..67121e0285e1 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 # running on bare metal machine using ubuntu user options: --user ubuntu timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index 8cd3b3d15684..7965cf91d207 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index 11cee5693b7a..1f316f5d84e8 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:0f2cb83ac752aaa9e91ac8a983dde46e9af4d5f8dfb5d7577c3c5592a150e649 + image: ghcr.io/dfinity/ic-build@sha256:e3e768a7989900abd87ed25fc9f438f39a012aad37a2e99c3565f96daa0481f8 options: >- -e NODE_NAME --privileged --cgroupns host -v /var/sysimage:/var/sysimage -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info env: diff --git a/ci/container/TAG b/ci/container/TAG index 2035a7c8b6db..fe126b5af99d 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -355e456ba62792419b57a83e19e62d08648f1f659e0eaed84e66528808becc2c +f946ee8365c0f76f373639eb1e6f363e8584adee09e31a45751f39fe7cb04ccd From ac9395bd15790c4c33394485d77f71b06c71a416 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 13 Dec 2025 13:06:42 +0000 Subject: [PATCH 12/20] fix --- rs/bitcoin/ckbtc/minter/src/state.rs | 1 - 1 file changed, 1 deletion(-) diff --git a/rs/bitcoin/ckbtc/minter/src/state.rs b/rs/bitcoin/ckbtc/minter/src/state.rs index ed46198828fa..19ee0d4ebe6b 100644 --- a/rs/bitcoin/ckbtc/minter/src/state.rs +++ b/rs/bitcoin/ckbtc/minter/src/state.rs @@ -349,7 +349,6 @@ pub enum Mode { DepositsRestrictedTo(Vec), #[default] /// No restrictions on the minter interactions. - #[default] GeneralAvailability, } From 74b8c255d6daece36bb7f3908799cb4bbed6ff89 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Sat, 13 Dec 2025 14:00:57 +0000 Subject: [PATCH 13/20] render non-reproducible artifacts in a table --- .github/workflows/ci-main.yml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 2a1536d130b5..c2f9bcdac9f3 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -582,7 +582,8 @@ jobs: -t, -o 1.1,1.2,1.3,2.3 -12 -22 \ execlogs-cache/execlogs.csv \ execlogs-nocache/execlogs.csv \ - | awk -F, 'BEGIN { N_BAD=0; } $3 != $4 { print $1 " " $2 ": " $3 " != " $4; N_BAD++; } END { if (N_BAD) { print N_BAD " mismatches found"; exit 1; } else { print "No mismatches"; }; }' + | awk -F, 'BEGIN { N_BAD=0; } $3 != $4 { print $1 " " $2 ": " $3 " != " $4; N_BAD++; } END { if (N_BAD) { print N_BAD " mismatches found"; exit 1; } else { print "No mismatches"; }; }' \ + | column -t | sort bazel-build-all-no-cache: name: Bazel Build All No Cache From 1c5e51d0b0e631ca1f076a66047ae1f2c9bc6065 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Mon, 15 Dec 2025 16:29:04 +0000 Subject: [PATCH 14/20] Revert "render non-reproducible artifacts in a table" This reverts commit 74b8c255d6daece36bb7f3908799cb4bbed6ff89. --- .github/workflows/ci-main.yml | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index c2f9bcdac9f3..2a1536d130b5 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -582,8 +582,7 @@ jobs: -t, -o 1.1,1.2,1.3,2.3 -12 -22 \ execlogs-cache/execlogs.csv \ execlogs-nocache/execlogs.csv \ - | awk -F, 'BEGIN { N_BAD=0; } $3 != $4 { print $1 " " $2 ": " $3 " != " $4; N_BAD++; } END { if (N_BAD) { print N_BAD " mismatches found"; exit 1; } else { print "No mismatches"; }; }' \ - | column -t | sort + | awk -F, 'BEGIN { N_BAD=0; } $3 != $4 { print $1 " " $2 ": " $3 " != " $4; N_BAD++; } END { if (N_BAD) { print N_BAD " mismatches found"; exit 1; } else { print "No mismatches"; }; }' bazel-build-all-no-cache: name: Bazel Build All No Cache From 5297df5efdd0c91ab869c1884c7b7ff1775128bb Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation Date: Thu, 18 Dec 2025 10:15:54 +0000 Subject: [PATCH 15/20] Automatically updated Cargo*.lock --- Cargo.Bazel.json.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index 0597d2cb5d93..62097fdaa03a 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "eb1238a28f64129c059dd57bd2fa3a10a476cd9eabe52d5139c092b8f46150f1", + "checksum": "d6681672ce3a92c94fb408a809ed5b2b660a49f76cac197c8ade1be20a5c6b32", "crates": { "abnf 0.12.0": { "name": "abnf", From 9fe8abfd6f0c9e8a05cfe3a8b37382215c044e9b Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Thu, 18 Dec 2025 10:26:02 +0000 Subject: [PATCH 16/20] Updating container image to sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf Image tag: 917865c5b49b26d142f66e51d6e100952cdc4b95de180b802d8ae782f0ec5d67 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index f559420c4fcb..bece4104a54f 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee", + "image": "ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 7f0d7cc6fde2..3ff5207f6995 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index 981f2d1cf341..3b07da95c524 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --mount type=tmpfs,target="/home/buildifier/.local/share/containers" steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 95a6c270b12e..101072f01b2c 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index ee62ae66f3d7..bd219275e6fb 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index 2502ccbe5f07..078c1383d089 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index 718c5d8eeb07..677597dce7e8 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index 2acf10f4aa6d..85efc9cabf93 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index 71adde4a6a11..64d484f8a14d 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index 5b8b05d09d19..0b0e55cb2a75 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf # running on bare metal machine using ubuntu user options: --user ubuntu --mount type=tmpfs,target="/home/ubuntu/.local/share/containers" timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index 4150e1fac5c7..0a8b262bc9da 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index 7b09a4e196bb..9b4ebdf7ae3f 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:f5cb4f3813d09becd303fc14036568eecb7cdf3ffc65098e5a42c15d3ce77cee + image: ghcr.io/dfinity/ic-build@sha256:59684b173cd648274fd01b393bdf2fb86087b3ab2ee9a2cf8d1b38a64b1937cf options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" env: diff --git a/ci/container/TAG b/ci/container/TAG index 8682149a1a43..76382f0b1b6b 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -3d0a83598a461e9988e36b7720ae70782b96cee350fbe8391a96dba1519f3566 +917865c5b49b26d142f66e51d6e100952cdc4b95de180b802d8ae782f0ec5d67 From dd1db743f351608b44aa5540cb7da007a86ca0c4 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Fri, 19 Dec 2025 11:01:14 +0000 Subject: [PATCH 17/20] bin/bazel-pin.sh --force --- Cargo.Bazel.json.lock | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Cargo.Bazel.json.lock b/Cargo.Bazel.json.lock index 93ae4fcf82e9..2c03235c1f3d 100644 --- a/Cargo.Bazel.json.lock +++ b/Cargo.Bazel.json.lock @@ -1,5 +1,5 @@ { - "checksum": "971e5d282607108262108ca673f422f2836eabfcb73687aedd1d7aeade59afa4", + "checksum": "b4acf73f327c9480df503755398c1f3e0270f16d50c7de7f3fa85d6a6b94a714", "crates": { "abnf 0.12.0": { "name": "abnf", From 6f591afad4617e7b21237d2c3da3a818280d07ad Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Mon, 22 Dec 2025 16:06:31 +0000 Subject: [PATCH 18/20] Updating container image to sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d Image tag: 5f11b175b71f03f1824b3238706be063a60326b0dcb59dcc8831243666a22722 --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index 090d21427d2a..385f2feddec8 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3", + "image": "ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index b9ab4232530f..104b563850e7 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index 19a84c01b062..a591d86db7eb 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --mount type=tmpfs,target="/home/buildifier/.local/share/containers" steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 83fb6da76dcb..82dee89231b4 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index 1a349788399a..79c83d2faa37 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index 27e8ecf7bb56..38874c12cec4 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index 325fa1683673..76bba9882434 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index ce44ddb4c407..ef34101b776e 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index 4184b3f28a1e..09b5a88796d8 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index b5085f903a0d..4fa653977b32 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d # running on bare metal machine using ubuntu user options: --user ubuntu --mount type=tmpfs,target="/home/ubuntu/.local/share/containers" timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index 265306a907a8..13adcd6cd5a6 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index 6daf1259b61d..599ba0d3d3cf 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:30b49530b965954154a44fa703aace501c6d5f6c60eb30f51083213659d5bae3 + image: ghcr.io/dfinity/ic-build@sha256:9896617d0d867468cbaf17cc1ecf8daa0988354abc5a8a32bb51bcb8ef15650d options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" env: diff --git a/ci/container/TAG b/ci/container/TAG index eb794f314bad..1403198eb95f 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -90f5469f25af69167e1535b12c3c0cdc7c06da37c94de68bb08ef12889142a49 +5f11b175b71f03f1824b3238706be063a60326b0dcb59dcc8831243666a22722 From 911de75f77cdee2c18960617dca389b0cc68ec00 Mon Sep 17 00:00:00 2001 From: IDX GitHub Automation <> Date: Mon, 22 Dec 2025 18:16:21 +0000 Subject: [PATCH 19/20] Updating container image to sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c Image tag: 9c3e262973508c067ce10e21b61b18876114d1278f1edc456d604df73156582e --- .devcontainer/devcontainer.json | 2 +- .github/workflows/ci-main.yml | 2 +- .github/workflows/ci-pr-only.yml | 2 +- .github/workflows/pocket-ic-tests-windows.yml | 2 +- .github/workflows/rate-limits-backend-release.yml | 2 +- .github/workflows/release-testing.yml | 2 +- .github/workflows/rosetta-release.yml | 2 +- .github/workflows/salt-sharing-canister-release.yml | 2 +- .github/workflows/schedule-daily.yml | 2 +- .github/workflows/schedule-rust-bench.yml | 2 +- .github/workflows/schedule-weekly.yml | 2 +- .github/workflows/update-mainnet-canister-revisions.yaml | 2 +- ci/container/TAG | 2 +- 13 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json index b55b7abe2888..f3ef0cdf4c4e 100644 --- a/.devcontainer/devcontainer.json +++ b/.devcontainer/devcontainer.json @@ -1,5 +1,5 @@ { - "image": "ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7", + "image": "ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c", "remoteUser": "ubuntu", "privileged": true, "runArgs": [ diff --git a/.github/workflows/ci-main.yml b/.github/workflows/ci-main.yml index 2bad12ab13e8..43ff265eb483 100644 --- a/.github/workflows/ci-main.yml +++ b/.github/workflows/ci-main.yml @@ -26,7 +26,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 90 diff --git a/.github/workflows/ci-pr-only.yml b/.github/workflows/ci-pr-only.yml index 5032785cd5e8..7051fec45d2a 100644 --- a/.github/workflows/ci-pr-only.yml +++ b/.github/workflows/ci-pr-only.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-small-setup labels: dind-small container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --mount type=tmpfs,target="/home/buildifier/.local/share/containers" steps: diff --git a/.github/workflows/pocket-ic-tests-windows.yml b/.github/workflows/pocket-ic-tests-windows.yml index 8c497bdf514d..a26efcc49d05 100644 --- a/.github/workflows/pocket-ic-tests-windows.yml +++ b/.github/workflows/pocket-ic-tests-windows.yml @@ -45,7 +45,7 @@ jobs: bazel-build-pocket-ic: name: Bazel Build PocketIC container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 90 diff --git a/.github/workflows/rate-limits-backend-release.yml b/.github/workflows/rate-limits-backend-release.yml index c5317ad59b9a..8a2570853a1f 100644 --- a/.github/workflows/rate-limits-backend-release.yml +++ b/.github/workflows/rate-limits-backend-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" diff --git a/.github/workflows/release-testing.yml b/.github/workflows/release-testing.yml index 465fb23dd708..207b28829dd6 100644 --- a/.github/workflows/release-testing.yml +++ b/.github/workflows/release-testing.yml @@ -32,7 +32,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 180 diff --git a/.github/workflows/rosetta-release.yml b/.github/workflows/rosetta-release.yml index b8a7ac154ce2..852b336b6264 100644 --- a/.github/workflows/rosetta-release.yml +++ b/.github/workflows/rosetta-release.yml @@ -22,7 +22,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" environment: DockerHub diff --git a/.github/workflows/salt-sharing-canister-release.yml b/.github/workflows/salt-sharing-canister-release.yml index bcca69e67cf7..2bcf2f4cf895 100644 --- a/.github/workflows/salt-sharing-canister-release.yml +++ b/.github/workflows/salt-sharing-canister-release.yml @@ -32,7 +32,7 @@ jobs: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" diff --git a/.github/workflows/schedule-daily.yml b/.github/workflows/schedule-daily.yml index f5074f95e33a..e0ab6f0fb04c 100644 --- a/.github/workflows/schedule-daily.yml +++ b/.github/workflows/schedule-daily.yml @@ -20,7 +20,7 @@ jobs: runs-on: &dind-large-setup labels: dind-large container: &container-setup - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-rust-bench.yml b/.github/workflows/schedule-rust-bench.yml index 21f90a6a6b49..2385f166ac78 100644 --- a/.github/workflows/schedule-rust-bench.yml +++ b/.github/workflows/schedule-rust-bench.yml @@ -24,7 +24,7 @@ jobs: # see linux-x86-64 runner group labels: rust-benchmarks container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c # running on bare metal machine using ubuntu user options: --user ubuntu --mount type=tmpfs,target="/home/ubuntu/.local/share/containers" timeout-minutes: 720 # 12 hours diff --git a/.github/workflows/schedule-weekly.yml b/.github/workflows/schedule-weekly.yml index 5fc4e369d9a0..f7ce7ae86911 100644 --- a/.github/workflows/schedule-weekly.yml +++ b/.github/workflows/schedule-weekly.yml @@ -10,7 +10,7 @@ jobs: runs-on: labels: dind-large container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --mount type=tmpfs,target="/home/buildifier/.local/share/containers" timeout-minutes: 60 # 1 hour diff --git a/.github/workflows/update-mainnet-canister-revisions.yaml b/.github/workflows/update-mainnet-canister-revisions.yaml index 338364e76006..41e976edf504 100644 --- a/.github/workflows/update-mainnet-canister-revisions.yaml +++ b/.github/workflows/update-mainnet-canister-revisions.yaml @@ -21,7 +21,7 @@ jobs: labels: dind-small environment: CREATE_PR container: - image: ghcr.io/dfinity/ic-build@sha256:cb3a6693a10777d16c301d98f5b67e23db405bf962d0eb8cec74082916c17bc7 + image: ghcr.io/dfinity/ic-build@sha256:685920086805a9354cfe8a0c582ed6b66b546966a9be1f5a054fe2cb14584b4c options: >- -e NODE_NAME --privileged --cgroupns host -v /var/tmp:/var/tmp -v /ceph-s3-info:/ceph-s3-info --mount type=tmpfs,target="/home/buildifier/.local/share/containers" env: diff --git a/ci/container/TAG b/ci/container/TAG index d2da3fdf2103..1189c0a741a5 100644 --- a/ci/container/TAG +++ b/ci/container/TAG @@ -1 +1 @@ -d88b0bd827eb97cc1638efdb41846c3dbdcad4eca43891216fef16dc72d07092 +9c3e262973508c067ce10e21b61b18876114d1278f1edc456d604df73156582e From 2b844fb5eab991d978578af5789c51ac29877855 Mon Sep 17 00:00:00 2001 From: Bas van Dijk Date: Wed, 28 May 2025 14:49:45 +0000 Subject: [PATCH 20/20] fix: ensure reproducibility of the ledger_suite_orchestrator_canister --- .../ledger-suite-orchestrator/BUILD.bazel | 14 +++- .../ledger-suite-orchestrator/build.rs | 83 ++++++++++++++----- .../src/dashboard/mod.rs | 9 +- 3 files changed, 74 insertions(+), 32 deletions(-) diff --git a/rs/ethereum/ledger-suite-orchestrator/BUILD.bazel b/rs/ethereum/ledger-suite-orchestrator/BUILD.bazel index b66d0c055d10..1395e61ecf8d 100644 --- a/rs/ethereum/ledger-suite-orchestrator/BUILD.bazel +++ b/rs/ethereum/ledger-suite-orchestrator/BUILD.bazel @@ -1,3 +1,4 @@ +load("@rules_rust//cargo:defs.bzl", "cargo_build_script") load("@rules_rust//rust:defs.bzl", "rust_doc", "rust_library", "rust_test") load("//bazel:canisters.bzl", "rust_canister") load("//bazel:defs.bzl", "rust_ic_test") @@ -100,6 +101,15 @@ rust_test( ], ) +cargo_build_script( + name = "build_script", + srcs = ["build.rs"], + build_script_env = { + "IN_BAZEL": "1", + }, + data = ["templates/dashboard.html"], +) + [ rust_canister( name = "ledger_suite_orchestrator_canister" + name_suffix, @@ -109,9 +119,6 @@ rust_test( "src/dashboard/tests.rs", "src/main.rs", ], - compile_data = [ - "templates/dashboard.html", - ], crate_name = "ic_ledger_suite_orchestrator_canister" + name_suffix, opt = "z", proc_macro_deps = [ @@ -120,6 +127,7 @@ rust_test( service_file = "ledger_suite_orchestrator.did", deps = [ # Keep sorted. + ":build_script", ":ledger_suite_orchestrator" + name_suffix, "//packages/ic-http-types", "@crate_index//:askama", diff --git a/rs/ethereum/ledger-suite-orchestrator/build.rs b/rs/ethereum/ledger-suite-orchestrator/build.rs index f446128ee398..34ce411269bc 100644 --- a/rs/ethereum/ledger-suite-orchestrator/build.rs +++ b/rs/ethereum/ledger-suite-orchestrator/build.rs @@ -1,29 +1,68 @@ use std::env::{self}; +use std::fs::File; +use std::io::Write; use std::path::PathBuf; fn main() { - let cargo_manifest_dir = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); - let compile_time_env_variables = [ - "LEDGER_CANISTER_WASM_PATH", - "INDEX_CANISTER_WASM_PATH", - "LEDGER_ARCHIVE_NODE_CANISTER_WASM_PATH", - ]; - for env_var in compile_time_env_variables { - let archive_path = match env::var_os(env_var) { - Some(wasm_path) => PathBuf::from(wasm_path), - None => cargo_manifest_dir - // This is a hack. - // Cargo is called on CI via ci/src/rust_lint/lint.sh. - // The included WASMS binary for ledger, index and archive canisters are built by BAZEL tasks - // which would need here to be somehow spawned by Cargo. To avoid this, we just use a wasm binary that - // happens to be already checked-in in the repo. - .join("../../ledger_suite/icrc1/wasm/ic-icrc1-archive.wasm.gz") - .canonicalize() - .expect("failed to canonicalize a path"), - }; + if env::var_os("IN_BAZEL").is_none() { + let cargo_manifest_dir = PathBuf::from(env::var_os("CARGO_MANIFEST_DIR").unwrap()); + let compile_time_env_variables = [ + "LEDGER_CANISTER_WASM_PATH", + "INDEX_CANISTER_WASM_PATH", + "LEDGER_ARCHIVE_NODE_CANISTER_WASM_PATH", + ]; + for env_var in compile_time_env_variables { + let archive_path = match env::var_os(env_var) { + Some(wasm_path) => PathBuf::from(wasm_path), + None => cargo_manifest_dir + // This is a hack. + // Cargo is called on CI via ci/src/rust_lint/lint.sh. + // The included WASMS binary for ledger, index and archive canisters are built by BAZEL tasks + // which would need here to be somehow spawned by Cargo. To avoid this, we just use a wasm binary that + // happens to be already checked-in in the repo. + .join("../../ledger_suite/icrc1/wasm/ic-icrc1-archive.wasm.gz") + .canonicalize() + .expect("failed to canonicalize a path"), + }; - println!("cargo:rerun-if-changed={}", archive_path.display()); - println!("cargo:rerun-if-env-changed={env_var}"); - println!("cargo:rustc-env={}={}", env_var, archive_path.display()); + println!("cargo:rerun-if-changed={}", archive_path.display()); + println!("cargo:rerun-if-env-changed={env_var}"); + println!("cargo:rustc-env={}={}", env_var, archive_path.display()); + } } + + // Build reproducibility. askama adds a include_bytes! call when it's generating + // a template impl so that rustc will recompile the module when the file changes + // on disk. See https://github.com/djc/askama/blob/180696053833147a61b3348646a953e7d92ae582/askama_shared/src/generator.rs#L141 + // The stringified output of every proc-macro is added to the metadata hash for + // a crate. That output includes the full filepath to include_bytes!. It may be + // different on two machines, if they use different tempdir paths for the build. + // The metadata hash is an input to generated symbol names. + // So using the askama proc-macro could result in slightly different symbols. + // However, if we include the html source directly in the output, no + // inconsistency is introduced. + // + // This should really be fixed in askama. See: + // https://github.com/askama-rs/askama/issues/461 + println!("cargo:rerun-if-changed=templates/dashboard.html"); + let mut f = File::create( + PathBuf::from(std::env::var("OUT_DIR").unwrap()).join("dashboard_template.rs"), + ) + .unwrap(); + f.write_all( + format!( + r#" +#[derive(Template)] +#[template(escape = "html", source = {:?}, ext = "html")] +pub struct DashboardTemplate {{ + managed_canisters: BTreeMap, + other_canisters: BTreeMap>, + wasm_store: Vec, +}} + "#, + std::fs::read_to_string("templates/dashboard.html").unwrap() + ) + .as_bytes(), + ) + .unwrap(); } diff --git a/rs/ethereum/ledger-suite-orchestrator/src/dashboard/mod.rs b/rs/ethereum/ledger-suite-orchestrator/src/dashboard/mod.rs index 6a2bd3fc7b21..e89f3cf9f136 100644 --- a/rs/ethereum/ledger-suite-orchestrator/src/dashboard/mod.rs +++ b/rs/ethereum/ledger-suite-orchestrator/src/dashboard/mod.rs @@ -43,13 +43,8 @@ mod filters { } } -#[derive(Template)] -#[template(path = "dashboard.html")] -pub struct DashboardTemplate { - managed_canisters: BTreeMap, - other_canisters: BTreeMap>, - wasm_store: Vec, -} +// See build-canister.rs +include!(concat!(env!("OUT_DIR"), "/dashboard_template.rs")); #[derive(Clone, PartialEq, Debug, Default)] pub struct CanistersDashboardData {