difftreelog
feat(common) force storage version
in: master
1 file changed
pallets/common/src/lib.rsdiffbeforeafterboth553 #[pallet::hooks]553 #[pallet::hooks]554 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {554 impl<T: Config> Hooks<BlockNumberFor<T>> for Pallet<T> {555 fn on_runtime_upgrade() -> Weight {555 fn on_runtime_upgrade() -> Weight {556 if StorageVersion::get::<Pallet<T>>() < StorageVersion::new(1) {556 StorageVersion::new(1).put::<Pallet<T>>();557 use up_data_structs::{CollectionVersion1, CollectionVersion2};558 <CollectionById<T>>::translate::<CollectionVersion1<T::AccountId>, _>(|id, v| {559 let mut props = Vec::new();560 if !v.offchain_schema.is_empty() {561 props.push(Property {562 key: b"_old_offchainSchema".to_vec().try_into().unwrap(),563 value: v564 .offchain_schema565 .clone()566 .into_inner()567 .try_into()568 .expect("offchain schema too big"),569 });570 }571 if !v.variable_on_chain_schema.is_empty() {572 props.push(Property {573 key: b"_old_variableOnChainSchema".to_vec().try_into().unwrap(),574 value: v575 .variable_on_chain_schema576 .clone()577 .into_inner()578 .try_into()579 .expect("offchain schema too big"),580 });581 }582 if !v.const_on_chain_schema.is_empty() {583 props.push(Property {584 key: b"_old_constOnChainSchema".to_vec().try_into().unwrap(),585 value: v586 .const_on_chain_schema587 .clone()588 .into_inner()589 .try_into()590 .expect("offchain schema too big"),591 });592 }593 props.push(Property {594 key: b"_old_schemaVersion".to_vec().try_into().unwrap(),595 value: match v.schema_version {596 SchemaVersion::ImageURL => b"ImageUrl".as_slice(),597 SchemaVersion::Unique => b"Unique".as_slice(),598 }599 .to_vec()600 .try_into()601 .unwrap(),602 });603 Self::set_scoped_collection_properties(604 id,605 PropertyScope::None,606 props.into_iter(),607 )608 .expect("existing data larger than properties");609 let mut new = CollectionVersion2::from(v.clone());610 new.permissions.access = Some(v.access);611 new.permissions.mint_mode = Some(v.mint_mode);612 Some(new)613 });614 }615557616 0558 0617 }559 }