Skip to content

Commit

Permalink
Fix #261 Failure on migration when EventsMode::CES to EventsMode::CES
Browse files Browse the repository at this point in the history
  • Loading branch information
gRoussac committed Dec 29, 2023
1 parent 8ff7e9b commit cc9e1fa
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 6 deletions.
22 changes: 17 additions & 5 deletions contract/src/main.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2009,15 +2009,27 @@ pub extern "C" fn migrate() {
.try_into()
.unwrap_or_revert();

match events_mode {
EventsMode::NoEvents => {}
EventsMode::CES => {
let current_events_mode = runtime::get_key(EVENTS_MODE)
.and_then(|_| {
utils::get_stored_value_with_user_errors::<u8>(
EVENTS_MODE,
NFTCoreError::MissingEventsMode,
NFTCoreError::InvalidEventsMode,
)
.try_into()
.ok()
})
.unwrap_or(EventsMode::NoEvents);

match (current_events_mode, events_mode) {
(EventsMode::CES, EventsMode::CES) => casper_event_standard::emit(Migration::new()),
(_, EventsMode::CES) => {
// Initialize events structures.
utils::init_events();
// Emit Migration event.
casper_event_standard::emit(Migration::new());
}
EventsMode::CEP47 => record_cep47_event_dictionary(CEP47Event::Migrate),
(_, EventsMode::CEP47) => record_cep47_event_dictionary(CEP47Event::Migrate),
(_, _) => {}
}

runtime::put_key(EVENTS_MODE, storage::new_uref(events_mode as u8).into());
Expand Down
2 changes: 1 addition & 1 deletion contract/src/modalities.rs
Original file line number Diff line number Diff line change
Expand Up @@ -423,7 +423,7 @@ impl TryFrom<u8> for NamedKeyConventionMode {
}

#[repr(u8)]
#[derive(PartialEq, Eq)]
#[derive(PartialEq, Eq, Clone, Copy)]
#[allow(clippy::upper_case_acronyms)]
pub enum EventsMode {
NoEvents = 0,
Expand Down
4 changes: 4 additions & 0 deletions tests/src/upgrade.rs
Original file line number Diff line number Diff line change
Expand Up @@ -1175,6 +1175,7 @@ fn should_safely_upgrade_from_1_0_0_to_1_2_0_to_current_version() {
ARG_ACCESS_KEY_NAME_1_0_0 => format!("{PREFIX_ACCESS_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_HASH_KEY_NAME_1_0_0 => format!("{PREFIX_HASH_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_TOTAL_TOKEN_SUPPLY => 10u64,
ARG_EVENTS_MODE => EventsMode::CES as u8
},
)
.build();
Expand Down Expand Up @@ -1286,6 +1287,7 @@ fn should_safely_upgrade_from_1_0_0_to_1_3_0_to_current_version() {
ARG_ACCESS_KEY_NAME_1_0_0 => format!("{PREFIX_ACCESS_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_HASH_KEY_NAME_1_0_0 => format!("{PREFIX_HASH_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_TOTAL_TOKEN_SUPPLY => 10u64,
ARG_EVENTS_MODE => EventsMode::CES as u8
},
)
.build();
Expand Down Expand Up @@ -1397,6 +1399,7 @@ fn should_safely_upgrade_from_1_0_0_to_1_4_0_to_current_version() {
ARG_ACCESS_KEY_NAME_1_0_0 => format!("{PREFIX_ACCESS_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_HASH_KEY_NAME_1_0_0 => format!("{PREFIX_HASH_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_TOTAL_TOKEN_SUPPLY => 10u64,
ARG_EVENTS_MODE => EventsMode::CES as u8
},
)
.build();
Expand Down Expand Up @@ -1508,6 +1511,7 @@ fn should_safely_upgrade_from_1_0_0_to_1_5_0_to_current_version() {
ARG_ACCESS_KEY_NAME_1_0_0 => format!("{PREFIX_ACCESS_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_HASH_KEY_NAME_1_0_0 => format!("{PREFIX_HASH_KEY_NAME}_{NFT_TEST_COLLECTION}"),
ARG_TOTAL_TOKEN_SUPPLY => 10u64,
ARG_EVENTS_MODE => EventsMode::CES as u8
},
)
.build();
Expand Down

0 comments on commit cc9e1fa

Please sign in to comment.