Skip to content

Commit f5b4ce5

Browse files
bogwarclaude
andcommitted
feat(ic-icrc1-ledger): add icrc152 feature flag to FeatureFlags
Adds `icrc152: bool` to `FeatureFlags` (default `false`). Unlike the existing `icrc2` flag, this one is always enforced: the `icrc152_mint` and `icrc152_burn` endpoints (added in the next commit) return a `GenericError` when the flag is off. The field is annotated `#[serde(default)]` so existing ledger state serialized without it deserializes safely with `icrc152 = false`. Unit tests cover: default value, init-time enabling, upgrade enable, upgrade disable, and upgrade-without-flags preserves existing value. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
1 parent 9999570 commit f5b4ce5

File tree

8 files changed

+143
-9
lines changed

8 files changed

+143
-9
lines changed

rs/ledger_suite/icrc1/index-ng/tests/common/mod.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,10 @@ pub fn install_ledger(
8585
.with_metadata_entry(TEXT_META_KEY, TEXT_META_VALUE)
8686
.with_metadata_entry(BLOB_META_KEY, BLOB_META_VALUE)
8787
.with_archive_options(archive_options)
88-
.with_feature_flags(FeatureFlags { icrc2: true });
88+
.with_feature_flags(FeatureFlags {
89+
icrc2: true,
90+
icrc152: false,
91+
});
8992
if let Some(fee_collector_account) = fee_collector_account {
9093
builder = builder.with_fee_collector_account(fee_collector_account);
9194
}

rs/ledger_suite/icrc1/ledger/src/benches/benches_u256.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -138,7 +138,7 @@ fn cketh_ledger_init_args_with_archive() -> InitArgs {
138138
.with_transfer_fee(2_000_000_000_000_u64)
139139
.with_token_symbol("ckETH")
140140
.with_token_name("ckETH")
141-
.with_feature_flags(FeatureFlags { icrc2: true })
141+
.with_feature_flags(FeatureFlags { icrc2: true, icrc152: false })
142142
.with_metadata_entry(MetadataKey::ICRC1_LOGO, "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjE0NiIgdmlld0JveD0iMCAwIDE0NiAxNDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNDYiIGhlaWdodD0iMTQ2IiByeD0iNzMiIGZpbGw9IiMzQjAwQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi4zODM3IDc3LjIwNTJDMTguNDM0IDEwNS4yMDYgNDAuNzk0IDEyNy41NjYgNjguNzk0OSAxMjkuNjE2VjEzNS45NEMzNy4zMDg3IDEzMy44NjcgMTIuMTMzIDEwOC42OTEgMTAuMDYwNSA3Ny4yMDUySDE2LjM4MzdaIiBmaWxsPSJ1cmwoI3BhaW50MF9saW5lYXJfMTEwXzU4NikiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik02OC43NjQ2IDE2LjM1MzRDNDAuNzYzOCAxOC40MDM2IDE4LjQwMzcgNDAuNzYzNyAxNi4zNTM1IDY4Ljc2NDZMMTAuMDMwMyA2OC43NjQ2QzEyLjEwMjcgMzcuMjc4NCAzNy4yNzg1IDEyLjEwMjYgNjguNzY0NiAxMC4wMzAyTDY4Ljc2NDYgMTYuMzUzNFoiIGZpbGw9IiMyOUFCRTIiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xMjkuNjE2IDY4LjczNDNDMTI3LjU2NiA0MC43MzM0IDEwNS4yMDYgMTguMzczMyA3Ny4yMDUxIDE2LjMyMzFMNzcuMjA1MSA5Ljk5OTk4QzEwOC42OTEgMTIuMDcyNCAxMzMuODY3IDM3LjI0ODEgMTM1LjkzOSA2OC43MzQzTDEyOS42MTYgNjguNzM0M1oiIGZpbGw9InVybCgjcGFpbnQxX2xpbmVhcl8xMTBfNTg2KSIvPgo8cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTc3LjIzNTQgMTI5LjU4NkMxMDUuMjM2IDEyNy41MzYgMTI3LjU5NiAxMDUuMTc2IDEyOS42NDcgNzcuMTc0OUwxMzUuOTcgNzcuMTc0OUMxMzMuODk3IDEwOC42NjEgMTA4LjcyMiAxMzMuODM3IDc3LjIzNTQgMTM1LjkwOUw3Ny4yMzU0IDEyOS41ODZaIiBmaWxsPSIjMjlBQkUyIi8+CjxwYXRoIGQ9Ik03My4xOTA0IDMxVjYxLjY4MThMOTkuMTIzIDczLjI2OTZMNzMuMTkwNCAzMVoiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNzMuMTkwNCAzMUw0Ny4yNTQ0IDczLjI2OTZMNzMuMTkwNCA2MS42ODE4VjMxWiIgZmlsbD0id2hpdGUiLz4KPHBhdGggZD0iTTczLjE5MDQgOTMuMTUyM1YxMTRMOTkuMTQwMyA3OC4wOTg0TDczLjE5MDQgOTMuMTUyM1oiIGZpbGw9IndoaXRlIiBmaWxsLW9wYWNpdHk9IjAuNiIvPgo8cGF0aCBkPSJNNzMuMTkwNCAxMTRWOTMuMTQ4OEw0Ny4yNTQ0IDc4LjA5ODRMNzMuMTkwNCAxMTRaIiBmaWxsPSJ3aGl0ZSIvPgo8cGF0aCBkPSJNNzMuMTkwNCA4OC4zMjY5TDk5LjEyMyA3My4yNjk2TDczLjE5MDQgNjEuNjg4N1Y4OC4zMjY5WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC4yIi8+CjxwYXRoIGQ9Ik00Ny4yNTQ0IDczLjI2OTZMNzMuMTkwNCA4OC4zMjY5VjYxLjY4ODdMNDcuMjU0NCA3My4yNjk2WiIgZmlsbD0id2hpdGUiIGZpbGwtb3BhY2l0eT0iMC42Ii8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTEwXzU4NiIgeDE9IjUzLjQ3MzYiIHkxPSIxMjIuNzkiIHgyPSIxNC4wMzYyIiB5Mj0iODkuNTc4NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMjEiIHN0b3AtY29sb3I9IiNFRDFFNzkiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNTIyNzg1Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMTBfNTg2IiB4MT0iMTIwLjY1IiB5MT0iNTUuNjAyMSIgeDI9IjgxLjIxMyIgeTI9IjIyLjM5MTQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agb2Zmc2V0PSIwLjIxIiBzdG9wLWNvbG9yPSIjRjE1QTI0Ii8+CjxzdG9wIG9mZnNldD0iMC42ODQxIiBzdG9wLWNvbG9yPSIjRkJCMDNCIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==")
143143
.with_archive_options(ArchiveOptions {
144144
trigger_threshold: 2_000,

rs/ledger_suite/icrc1/ledger/src/benches/benches_u64.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ fn ckbtc_ledger_init_args_with_archive() -> InitArgs {
137137
.with_transfer_fee(10_u64)
138138
.with_token_symbol("ckBTC")
139139
.with_token_name("ckBTC")
140-
.with_feature_flags(FeatureFlags { icrc2: true })
140+
.with_feature_flags(FeatureFlags { icrc2: true, icrc152: false })
141141
.with_metadata_entry(MetadataKey::ICRC1_LOGO, "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTQ2IiBoZWlnaHQ9IjE0NiIgdmlld0JveD0iMCAwIDE0NiAxNDYiIGZpbGw9Im5vbmUiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+CjxyZWN0IHdpZHRoPSIxNDYiIGhlaWdodD0iMTQ2IiByeD0iNzMiIGZpbGw9IiMzQjAwQjkiLz4KPHBhdGggZmlsbC1ydWxlPSJldmVub2RkIiBjbGlwLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNi4zODM3IDc3LjIwNTJDMTguNDM0IDEwNS4yMDYgNDAuNzk0IDEyNy41NjYgNjguNzk0OSAxMjkuNjE2VjEzNS45MzlDMzcuMzA4NyAxMzMuODY3IDEyLjEzMyAxMDguNjkxIDEwLjA2MDUgNzcuMjA1MkgxNi4zODM3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzExMF81NzIpIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNjguNzY0NiAxNi4zNTM0QzQwLjc2MzggMTguNDAzNiAxOC40MDM3IDQwLjc2MzcgMTYuMzUzNSA2OC43NjQ2TDEwLjAzMDMgNjguNzY0NkMxMi4xMDI3IDM3LjI3ODQgMzcuMjc4NSAxMi4xMDI2IDY4Ljc2NDYgMTAuMDMwMkw2OC43NjQ2IDE2LjM1MzRaIiBmaWxsPSIjMjlBQkUyIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNMTI5LjYxNiA2OC43MzQzQzEyNy41NjYgNDAuNzMzNSAxMDUuMjA2IDE4LjM3MzQgNzcuMjA1MSAxNi4zMjMyTDc3LjIwNTEgMTBDMTA4LjY5MSAxMi4wNzI0IDEzMy44NjcgMzcuMjQ4MiAxMzUuOTM5IDY4LjczNDNMMTI5LjYxNiA2OC43MzQzWiIgZmlsbD0idXJsKCNwYWludDFfbGluZWFyXzExMF81NzIpIi8+CjxwYXRoIGZpbGwtcnVsZT0iZXZlbm9kZCIgY2xpcC1ydWxlPSJldmVub2RkIiBkPSJNNzcuMjM1NCAxMjkuNTg2QzEwNS4yMzYgMTI3LjUzNiAxMjcuNTk2IDEwNS4xNzYgMTI5LjY0NyA3Ny4xNzQ5TDEzNS45NyA3Ny4xNzQ5QzEzMy44OTcgMTA4LjY2MSAxMDguNzIyIDEzMy44MzcgNzcuMjM1NCAxMzUuOTA5TDc3LjIzNTQgMTI5LjU4NloiIGZpbGw9IiMyOUFCRTIiLz4KPHBhdGggZD0iTTk5LjgyMTcgNjQuNzI0NUMxMDEuMDE0IDU2Ljc1MzggOTQuOTQ0NyA1Mi40Njg5IDg2LjY0NTUgNDkuNjEwNEw4OS4zMzc2IDM4LjgxM0w4Mi43NjQ1IDM3LjE3NUw4MC4xNDM1IDQ3LjY4NzlDNzguNDE1NSA0Ny4yNTczIDc2LjY0MDYgNDYuODUxMSA3NC44NzcxIDQ2LjQ0ODdMNzcuNTE2OCAzNS44NjY1TDcwLjk0NzQgMzQuMjI4NUw2OC4yNTM0IDQ1LjAyMjJDNjYuODIzIDQ0LjY5NjUgNjUuNDE4OSA0NC4zNzQ2IDY0LjA1NiA0NC4wMzU3TDY0LjA2MzUgNDQuMDAyTDU0Ljk5ODUgNDEuNzM4OEw1My4yNDk5IDQ4Ljc1ODZDNTMuMjQ5OSA0OC43NTg2IDU4LjEyNjkgNDkuODc2MiA1OC4wMjM5IDQ5Ljk0NTRDNjAuNjg2MSA1MC42MSA2MS4xNjcyIDUyLjM3MTUgNjEuMDg2NyA1My43NjhDNTguNjI3IDYzLjYzNDUgNTYuMTcyMSA3My40Nzg4IDUzLjcxMDQgODMuMzQ2N0M1My4zODQ3IDg0LjE1NTQgNTIuNTU5MSA4NS4zNjg0IDUwLjY5ODIgODQuOTA3OUM1MC43NjM3IDg1LjAwMzQgNDUuOTIwNCA4My43MTU1IDQ1LjkyMDQgODMuNzE1NUw0Mi42NTcyIDkxLjIzODlMNTEuMjExMSA5My4zNzFDNTIuODAyNSA5My43Njk3IDU0LjM2MTkgOTQuMTg3MiA1NS44OTcxIDk0LjU4MDNMNTMuMTc2OSAxMDUuNTAxTDU5Ljc0MjYgMTA3LjEzOUw2Mi40MzY2IDk2LjMzNDNDNjQuMjMwMSA5Ni44MjEgNjUuOTcxMiA5Ny4yNzAzIDY3LjY3NDkgOTcuNjkzNEw2NC45OTAyIDEwOC40NDhMNzEuNTYzNCAxMTAuMDg2TDc0LjI4MzYgOTkuMTg1M0M4NS40OTIyIDEwMS4zMDYgOTMuOTIwNyAxMDAuNDUxIDk3LjQ2ODQgOTAuMzE0MUMxMDAuMzI3IDgyLjE1MjQgOTcuMzI2MSA3Ny40NDQ1IDkxLjQyODggNzQuMzc0NUM5NS43MjM2IDczLjM4NDIgOTguOTU4NiA3MC41NTk0IDk5LjgyMTcgNjQuNzI0NVpNODQuODAzMiA4NS43ODIxQzgyLjc3MiA5My45NDM4IDY5LjAyODQgODkuNTMxNiA2NC41NzI3IDg4LjQyNTNMNjguMTgyMiA3My45NTdDNzIuNjM4IDc1LjA2ODkgODYuOTI2MyA3Ny4yNzA0IDg0LjgwMzIgODUuNzgyMVpNODYuODM2NCA2NC42MDY2Qzg0Ljk4MyA3Mi4wMzA3IDczLjU0NDEgNjguMjU4OCA2OS44MzM1IDY3LjMzNEw3My4xMDYgNTQuMjExN0M3Ni44MTY2IDU1LjEzNjQgODguNzY2NiA1Ni44NjIzIDg2LjgzNjQgNjQuNjA2NloiIGZpbGw9IndoaXRlIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfMTEwXzU3MiIgeDE9IjUzLjQ3MzYiIHkxPSIxMjIuNzkiIHgyPSIxNC4wMzYyIiB5Mj0iODkuNTc4NiIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBvZmZzZXQ9IjAuMjEiIHN0b3AtY29sb3I9IiNFRDFFNzkiLz4KPHN0b3Agb2Zmc2V0PSIxIiBzdG9wLWNvbG9yPSIjNTIyNzg1Ii8+CjwvbGluZWFyR3JhZGllbnQ+CjxsaW5lYXJHcmFkaWVudCBpZD0icGFpbnQxX2xpbmVhcl8xMTBfNTcyIiB4MT0iMTIwLjY1IiB5MT0iNTUuNjAyMSIgeDI9IjgxLjIxMyIgeTI9IjIyLjM5MTQiIGdyYWRpZW50VW5pdHM9InVzZXJTcGFjZU9uVXNlIj4KPHN0b3Agb2Zmc2V0PSIwLjIxIiBzdG9wLWNvbG9yPSIjRjE1QTI0Ii8+CjxzdG9wIG9mZnNldD0iMC42ODQxIiBzdG9wLWNvbG9yPSIjRkJCMDNCIi8+CjwvbGluZWFyR3JhZGllbnQ+CjwvZGVmcz4KPC9zdmc+Cg==")
142142
.with_archive_options(ArchiveOptions {
143143
trigger_threshold: 2_000,

rs/ledger_suite/icrc1/ledger/src/lib.rs

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -595,11 +595,19 @@ pub struct Ledger {
595595
#[derive(Clone, Eq, PartialEq, Debug, CandidType, Deserialize, Serialize)]
596596
pub struct FeatureFlags {
597597
pub icrc2: bool,
598+
/// Enable the ICRC-152 privileged supply-change endpoints (`icrc152_mint`,
599+
/// `icrc152_burn`), callable only by ledger controllers. Defaults to
600+
/// `false`; must be explicitly opted in via `InitArgs` or `UpgradeArgs`.
601+
#[serde(default)]
602+
pub icrc152: bool,
598603
}
599604

600605
impl FeatureFlags {
601606
const fn const_default() -> Self {
602-
Self { icrc2: true }
607+
Self {
608+
icrc2: true,
609+
icrc152: false,
610+
}
603611
}
604612
}
605613

rs/ledger_suite/icrc1/ledger/src/tests.rs

Lines changed: 108 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -858,3 +858,111 @@ mod metadata_validation_tests {
858858
}
859859
}
860860
}
861+
862+
#[cfg(test)]
863+
mod feature_flags_tests {
864+
use super::*;
865+
use crate::FeatureFlags;
866+
867+
#[test]
868+
fn icrc152_defaults_to_false() {
869+
assert!(!FeatureFlags::default().icrc152);
870+
}
871+
872+
#[test]
873+
fn feature_flags_default_preserves_icrc2_enabled() {
874+
// icrc2 stays true by default (existing behaviour).
875+
assert!(FeatureFlags::default().icrc2);
876+
}
877+
878+
#[test]
879+
fn icrc152_init_disabled_by_default() {
880+
let now = TimeStamp::from_nanos_since_unix_epoch(0);
881+
// feature_flags: None → default flags → icrc152 = false.
882+
let ledger = Ledger::from_init_args(DummyLogger, default_init_args(), now);
883+
assert!(!ledger.feature_flags().icrc152);
884+
}
885+
886+
#[test]
887+
fn icrc152_can_be_enabled_at_init() {
888+
let now = TimeStamp::from_nanos_since_unix_epoch(0);
889+
let args = InitArgs {
890+
feature_flags: Some(FeatureFlags {
891+
icrc2: true,
892+
icrc152: true,
893+
}),
894+
..default_init_args()
895+
};
896+
let ledger = Ledger::from_init_args(DummyLogger, args, now);
897+
assert!(ledger.feature_flags().icrc152);
898+
}
899+
900+
#[test]
901+
fn icrc152_can_be_enabled_via_upgrade() {
902+
let now = TimeStamp::from_nanos_since_unix_epoch(0);
903+
let mut ledger = Ledger::from_init_args(DummyLogger, default_init_args(), now);
904+
assert!(!ledger.feature_flags().icrc152);
905+
906+
ledger.upgrade(
907+
DummyLogger,
908+
UpgradeArgs {
909+
feature_flags: Some(FeatureFlags {
910+
icrc2: true,
911+
icrc152: true,
912+
}),
913+
..UpgradeArgs::default()
914+
},
915+
);
916+
assert!(ledger.feature_flags().icrc152);
917+
}
918+
919+
#[test]
920+
fn icrc152_can_be_disabled_via_upgrade() {
921+
let now = TimeStamp::from_nanos_since_unix_epoch(0);
922+
let args = InitArgs {
923+
feature_flags: Some(FeatureFlags {
924+
icrc2: true,
925+
icrc152: true,
926+
}),
927+
..default_init_args()
928+
};
929+
let mut ledger = Ledger::from_init_args(DummyLogger, args, now);
930+
assert!(ledger.feature_flags().icrc152);
931+
932+
ledger.upgrade(
933+
DummyLogger,
934+
UpgradeArgs {
935+
feature_flags: Some(FeatureFlags {
936+
icrc2: true,
937+
icrc152: false,
938+
}),
939+
..UpgradeArgs::default()
940+
},
941+
);
942+
assert!(!ledger.feature_flags().icrc152);
943+
}
944+
945+
#[test]
946+
fn upgrade_without_feature_flags_preserves_icrc152() {
947+
let now = TimeStamp::from_nanos_since_unix_epoch(0);
948+
let args = InitArgs {
949+
feature_flags: Some(FeatureFlags {
950+
icrc2: true,
951+
icrc152: true,
952+
}),
953+
..default_init_args()
954+
};
955+
let mut ledger = Ledger::from_init_args(DummyLogger, args, now);
956+
assert!(ledger.feature_flags().icrc152);
957+
958+
// Upgrade with no feature_flags → existing value untouched.
959+
ledger.upgrade(
960+
DummyLogger,
961+
UpgradeArgs {
962+
feature_flags: None,
963+
..UpgradeArgs::default()
964+
},
965+
);
966+
assert!(ledger.feature_flags().icrc152);
967+
}
968+
}

rs/ledger_suite/icrc1/ledger/tests/tests.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -869,7 +869,10 @@ fn test_icrc2_feature_flag_doesnt_disable_icrc2_endpoints() {
869869
max_transactions_per_response: None,
870870
},
871871
max_memo_length: None,
872-
feature_flags: Some(FeatureFlags { icrc2: false }),
872+
feature_flags: Some(FeatureFlags {
873+
icrc2: false,
874+
icrc152: false
875+
}),
873876
index_principal: None,
874877
}))
875878
.unwrap();
@@ -1904,7 +1907,10 @@ mod verify_written_blocks {
19041907
max_transactions_per_response: None,
19051908
},
19061909
max_memo_length: None,
1907-
feature_flags: Some(FeatureFlags { icrc2: true }),
1910+
feature_flags: Some(FeatureFlags {
1911+
icrc2: true,
1912+
icrc152: false,
1913+
}),
19081914
index_principal: None,
19091915
});
19101916

rs/ledger_suite/icrc1/tests/upgrade_downgrade.rs

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -116,7 +116,10 @@ fn install_ledger(
116116
.with_metadata_entry(TEXT_META_KEY, TEXT_META_VALUE)
117117
.with_metadata_entry(BLOB_META_KEY, BLOB_META_VALUE)
118118
.with_archive_options(archive_options)
119-
.with_feature_flags(FeatureFlags { icrc2: true });
119+
.with_feature_flags(FeatureFlags {
120+
icrc2: true,
121+
icrc152: false,
122+
});
120123
if let Some(fee_collector_account) = fee_collector_account {
121124
builder = builder.with_fee_collector_account(fee_collector_account);
122125
}

rs/ledger_suite/tests/sm-tests/src/lib.rs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -379,7 +379,10 @@ fn init_args(initial_balances: Vec<(Account, u64)>) -> InitArgs {
379379
cycles_for_archive_creation: Some(0),
380380
max_transactions_per_response: None,
381381
},
382-
feature_flags: Some(FeatureFlags { icrc2: true }),
382+
feature_flags: Some(FeatureFlags {
383+
icrc2: true,
384+
icrc152: false,
385+
}),
383386
index_principal: None,
384387
}
385388
}
@@ -3256,7 +3259,10 @@ where
32563259
);
32573260

32583261
let upgrade_args = LedgerArgument::Upgrade(Some(UpgradeArgs {
3259-
feature_flags: Some(FeatureFlags { icrc2: true }),
3262+
feature_flags: Some(FeatureFlags {
3263+
icrc2: true,
3264+
icrc152: false,
3265+
}),
32603266
..UpgradeArgs::default()
32613267
}));
32623268

0 commit comments

Comments
 (0)