From d454888ea588a4507d29ca78e9c5b21eea8d04c8 Mon Sep 17 00:00:00 2001 From: Henrique Nogara Date: Thu, 10 Oct 2024 09:58:35 -0300 Subject: [PATCH] Fix sto migration (#1730) * Fix sto migration * Fix identity migrations * Improve log messages * Remove migration for new storage * Bump RC spec_version --------- Co-authored-by: Adam Dossa --- pallets/asset/src/migrations.rs | 71 +++++++++++++------ pallets/compliance-manager/src/migrations.rs | 7 +- .../src/ballot/migrations.rs | 12 ++-- .../src/distribution/migrations.rs | 4 +- pallets/corporate-actions/src/migrations.rs | 14 ++-- pallets/external-agents/src/migrations.rs | 10 +-- pallets/identity/src/lib.rs | 39 +--------- pallets/identity/src/ticker_migrations.rs | 16 +++-- pallets/multisig/src/lib.rs | 6 +- pallets/nft/src/migrations.rs | 12 ++-- pallets/portfolio/src/migrations.rs | 19 +++-- pallets/runtime/develop/src/runtime.rs | 2 +- pallets/runtime/mainnet/src/runtime.rs | 2 +- pallets/runtime/testnet/src/runtime.rs | 2 +- pallets/settlement/src/migrations.rs | 11 +-- pallets/statistics/src/migrations.rs | 14 ++-- pallets/sto/src/migrations.rs | 41 +++++++++-- 17 files changed, 168 insertions(+), 114 deletions(-) diff --git a/pallets/asset/src/migrations.rs b/pallets/asset/src/migrations.rs index ea67bac0c0..3464e193d6 100644 --- a/pallets/asset/src/migrations.rs +++ b/pallets/asset/src/migrations.rs @@ -115,7 +115,7 @@ pub(crate) fn migrate_to_v5() { ticker_to_asset_id.insert(ticker, asset_id); UniqueTickerRegistration::::insert(ticker, ticker_registration); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.Tickers entries.", count); let mut count = 0; log::info!("Moving items from Tokens to Assets"); @@ -126,7 +126,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); Assets::insert(asset_id, asset_details); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.Tokens entries.", count); let mut count = 0; log::info!("Updating types for the AssetNames storage"); @@ -141,7 +141,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); AssetNames::insert(asset_id, asset_name); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.AssetNames entries.", count); let mut count = 0; log::info!("Updating types for the BalanceOf storage"); @@ -156,7 +156,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); BalanceOf::insert(asset_id, identity, balance); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.BalanceOf entries.", count); let mut count = 0; log::info!("Moving items from Identifiers to AssetIdentifiers"); @@ -167,7 +167,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); AssetIdentifiers::insert(asset_id, identifiers); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.Identifiers entries.", count); let mut count = 0; log::info!("Updating types for the FundingRound storage"); @@ -182,7 +182,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); FundingRound::insert(asset_id, name); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.FundingRound entries.", count); let mut count = 0; log::info!("Updating types for the IssuedInFundingRound storage"); @@ -197,7 +197,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); IssuedInFundingRound::insert((asset_id, name), balance); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.IssuedInFundingRound entries.", count); let mut count = 0; log::info!("Updating types for the Frozen storage"); @@ -209,7 +209,7 @@ pub(crate) fn migrate_to_v5() { .or_insert(AssetID::from(ticker)); Frozen::insert(asset_id, frozen); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.Frozen entries.", count); let mut count = 0; log::info!("Moving items from AssetOwnershipRelations to TickersOwnedByUser and SecurityTokensOwnedByUser"); @@ -230,7 +230,7 @@ pub(crate) fn migrate_to_v5() { AssetOwnershipRelation::NotOwned => {} } }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.AssetOwnershipRelation entries.", count); let mut count = 0; log::info!("Updating types for the AssetDocuments storage"); @@ -246,7 +246,7 @@ pub(crate) fn migrate_to_v5() { AssetDocuments::insert(asset_id, doc_id, doc); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.AssetDocuments entries.", count); let mut count = 0; log::info!("Updating types for the AssetDocumentsIdSequence storage"); @@ -262,7 +262,10 @@ pub(crate) fn migrate_to_v5() { AssetDocumentsIdSequence::insert(asset_id, seq); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.AssetDocumentsIdSequence entries.", + count + ); let mut count = 0; log::info!("Updating types for the AssetMetadataValues storage"); @@ -278,7 +281,7 @@ pub(crate) fn migrate_to_v5() { AssetMetadataValues::insert(asset_id, key, value); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.AssetMetadataValues entries.", count); let mut count = 0; log::info!("Updating types for the AssetMetadataValueDetails storage"); @@ -294,7 +297,10 @@ pub(crate) fn migrate_to_v5() { AssetMetadataValueDetails::::insert(asset_id, key, value); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.AssetMetadataValueDetails entries.", + count + ); let mut count = 0; log::info!("Updating types for the AssetMetadataLocalNameToKey storage"); @@ -310,7 +316,10 @@ pub(crate) fn migrate_to_v5() { AssetMetadataLocalNameToKey::insert(asset_id, name, local_key); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.AssetMetadataLocalNameToKey entries.", + count + ); let mut count = 0; log::info!("Updating types for the AssetMetadataLocalKeyToName storage"); @@ -326,7 +335,10 @@ pub(crate) fn migrate_to_v5() { AssetMetadataLocalKeyToName::insert(asset_id, local_key, name); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.AssetMetadataLocalKeyToName entries.", + count + ); let mut count = 0; log::info!("Updating types for the AssetMetadataLocalSpecs storage"); @@ -342,11 +354,17 @@ pub(crate) fn migrate_to_v5() { AssetMetadataLocalSpecs::insert(asset_id, local_key, spec); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.AssetMetadataLocalSpecs entries.", + count + ); log::info!("Removing old AssetMetadataNextLocalKey storage"); let res = v4::AssetMetadataNextLocalKey::clear(u32::max_value(), None); - log::info!("{:?} items have been cleared", res.unique); + log::info!( + "Cleared {:?} items from Asset.AssetMetadataNextLocalKey", + res.unique + ); let mut count = 0; log::info!("Moving items from TickersExemptFromAffirmation to AssetsExemptFromAffirmation"); @@ -358,7 +376,10 @@ pub(crate) fn migrate_to_v5() { AssetsExemptFromAffirmation::insert(asset_id, exempt); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.TickersExemptFromAffirmation entries.", + count + ); let mut count = 0; log::info!("Moving items from PreApprovedTicker to PreApprovedAsset"); @@ -370,7 +391,7 @@ pub(crate) fn migrate_to_v5() { PreApprovedAsset::insert(did, asset_id, approved); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.PreApprovedTicker entries.", count); let mut count = 0; log::info!("Updating types for the MandatoryMediators storage"); @@ -386,7 +407,7 @@ pub(crate) fn migrate_to_v5() { MandatoryMediators::::insert(asset_id, mediators); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Asset.MandatoryMediators entries.", count); let mut count = 0; log::info!("Updating types for the CurrentAssetMetadataLocalKey storage"); @@ -402,7 +423,10 @@ pub(crate) fn migrate_to_v5() { CurrentAssetMetadataLocalKey::insert(asset_id, current_key); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Asset.CurrentAssetMetadataLocalKey entries.", + count + ); let mut count = 0; log::info!("Adding link from legacy tickers to an asset_id"); @@ -411,7 +435,10 @@ pub(crate) fn migrate_to_v5() { AssetIDTicker::insert(asset_id, ticker); TickerAssetID::insert(ticker, asset_id); } - log::info!("{:?} items migrated", count); + log::info!( + "Added {:?} Asset.TickerAssetID/AssetIDTicker entries", + count + ); log::info!("AssetMetadataNextGlobalKey has been cleared"); v4::AssetMetadataNextGlobalKey::kill(); diff --git a/pallets/compliance-manager/src/migrations.rs b/pallets/compliance-manager/src/migrations.rs index 30ede59b95..55b886c51c 100644 --- a/pallets/compliance-manager/src/migrations.rs +++ b/pallets/compliance-manager/src/migrations.rs @@ -182,7 +182,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); AssetCompliances::insert(asset_id, AssetCompliance::from(compliance)); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Compliance.AssetCompliances entries.", count); let mut count = 0; log::info!("Updating types for the TrustedClaimIssuer storage"); @@ -197,5 +197,8 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); TrustedClaimIssuer::insert(asset_id, trusted_issuers); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Compliance.TrustedClaimIssuer entries.", + count + ); } diff --git a/pallets/corporate-actions/src/ballot/migrations.rs b/pallets/corporate-actions/src/ballot/migrations.rs index 5805e11a71..6d61f01f20 100644 --- a/pallets/corporate-actions/src/ballot/migrations.rs +++ b/pallets/corporate-actions/src/ballot/migrations.rs @@ -48,7 +48,7 @@ pub(crate) fn migrate_to_v1() { count += 1; Metas::insert(CAId::from(ca_id), ballot); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Ballot.Metas entries.", count); let mut count = 0; log::info!("Updating types for the TimeRanges storage"); @@ -60,7 +60,7 @@ pub(crate) fn migrate_to_v1() { count += 1; TimeRanges::insert(CAId::from(ca_id), range); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Ballot.TimeRanges entries.", count); let mut count = 0; log::info!("Updating types for the MotionNumChoices storage"); @@ -72,7 +72,7 @@ pub(crate) fn migrate_to_v1() { count += 1; MotionNumChoices::insert(CAId::from(ca_id), choices); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Ballot.MotionNumChoices entries.", count); let mut count = 0; log::info!("Updating types for the RCV storage"); @@ -81,7 +81,7 @@ pub(crate) fn migrate_to_v1() { count += 1; RCV::insert(CAId::from(ca_id), rcv); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Ballot.RCV entries.", count); let mut count = 0; log::info!("Updating types for the Results storage"); @@ -90,7 +90,7 @@ pub(crate) fn migrate_to_v1() { count += 1; Results::insert(CAId::from(ca_id), balances); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Ballot.Results entries.", count); let mut count = 0; log::info!("Updating types for the Votes storage"); @@ -99,5 +99,5 @@ pub(crate) fn migrate_to_v1() { count += 1; Votes::insert(CAId::from(ca_id), did, vote); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Ballot.Votes entries.", count); } diff --git a/pallets/corporate-actions/src/distribution/migrations.rs b/pallets/corporate-actions/src/distribution/migrations.rs index bb881906cf..1033f7b376 100644 --- a/pallets/corporate-actions/src/distribution/migrations.rs +++ b/pallets/corporate-actions/src/distribution/migrations.rs @@ -64,7 +64,7 @@ pub(crate) fn migrate_to_v1() { count += 1; Distributions::insert(CAId::from(ca_id), Distribution::from(distribution)); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Distribution.Distributions entries.", count); let mut count = 0; log::info!("Updating types for the HolderPaid storage"); @@ -76,5 +76,5 @@ pub(crate) fn migrate_to_v1() { count += 1; HolderPaid::insert((CAId::from(ca_id), did), paid); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Distribution.HolderPaid entries.", count); } diff --git a/pallets/corporate-actions/src/migrations.rs b/pallets/corporate-actions/src/migrations.rs index f5f8e108ba..dca0f9d594 100644 --- a/pallets/corporate-actions/src/migrations.rs +++ b/pallets/corporate-actions/src/migrations.rs @@ -77,7 +77,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); DefaultTargetIdentities::insert(asset_id, target_identities); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.DefaultTargetIdentities entries.", count); let mut count = 0; log::info!("Updating types for the DefaultWithholdingTax storage"); @@ -92,7 +92,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); DefaultWithholdingTax::insert(asset_id, tax); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.DefaultWithholdingTax entries.", count); let mut count = 0; log::info!("Updating types for the DidWithholdingTax storage"); @@ -107,7 +107,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); DidWithholdingTax::insert(asset_id, id_tax); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.DidWithholdingTax entries.", count); let mut count = 0; log::info!("Updating types for the CAIdSequence storage"); @@ -122,7 +122,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); CAIdSequence::insert(asset_id, id_tax); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.CAIdSequence entries.", count); let mut count = 0; log::info!("Updating types for the CorporateActions storage"); @@ -137,7 +137,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); CorporateActions::insert(asset_id, local_id, ca); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.CorporateActions entries.", count); let mut count = 0; log::info!("Updating types for the CADocLink storage"); @@ -149,7 +149,7 @@ pub(crate) fn migrate_to_v1() { count += 1; CADocLink::insert(CAId::from(ca_id), docs); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.CADocLink entries.", count); let mut count = 0; log::info!("Updating types for the Details storage"); @@ -158,5 +158,5 @@ pub(crate) fn migrate_to_v1() { count += 1; Details::insert(CAId::from(ca_id), details); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} CA.Details entries.", count); } diff --git a/pallets/external-agents/src/migrations.rs b/pallets/external-agents/src/migrations.rs index ba156156f4..51d6233a03 100644 --- a/pallets/external-agents/src/migrations.rs +++ b/pallets/external-agents/src/migrations.rs @@ -55,7 +55,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); AGIdSequence::insert(asset_id, ag_id); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} EA.AGIdSequence entries.", count); let mut count = 0; log::info!("Updating types for the AgentOf storage"); @@ -67,7 +67,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); AgentOf::insert(did, asset_id, empty); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} EA.AgentOf entries.", count); let mut count = 0; log::info!("Updating types for the GroupOfAgent storage"); @@ -82,7 +82,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); GroupOfAgent::insert(asset_id, did, group); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} EA.GroupOfAgent entries.", count); let mut count = 0; log::info!("Updating types for the NumFullAgents storage"); @@ -97,7 +97,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); NumFullAgents::insert(asset_id, n); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} EA.NumFullAgents entries.", count); let mut count = 0; log::info!("Updating types for the GroupPermissions storage"); @@ -112,5 +112,5 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); GroupPermissions::insert(asset_id, ag_id, ExtrinsicPermissions::from(ext_perms)); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} EA.GroupPermissions entries.", count); } diff --git a/pallets/identity/src/lib.rs b/pallets/identity/src/lib.rs index a9911e5be8..e1c468d3f5 100644 --- a/pallets/identity/src/lib.rs +++ b/pallets/identity/src/lib.rs @@ -273,8 +273,8 @@ decl_module! { fn deposit_event() = default; fn on_runtime_upgrade() -> Weight { - storage_migrate_on!(StorageVersion, 6, { - migration::migrate_to_v6::(); + storage_migrate_on!(StorageVersion, 7, { + ticker_migrations::migrate_to_v7::(); }); Weight::zero() } @@ -754,38 +754,3 @@ fn revoke_claim_class(claim_type: ClaimType) -> frame_support::dispatch::Dispatc _ => Normal, } } - -pub mod migration { - use hex_literal::hex; - use sp_runtime::runtime_logger::RuntimeLogger; - - use super::*; - - pub fn migrate_to_v6() { - RuntimeLogger::init(); - log::info!(" >>> Updating account ref"); - - // Hex for key 2EGKNqWLx2VhjgFZ6BwXZ9Tf6jQXzWjW4cNvE2Bd24z85xfq - if let Ok(key_1) = Decode::decode( - &mut hex!("50631df3b9b6a7a7d8893ae3959b3d9ca1f266ca05ea6e007cdaeb8adbae9805").as_ref(), - ) { - crate::Module::::remove_account_key_ref_count(&key_1); - } - - // Hex for key 2DR8JZWwJ7jDSHYDKoaV7Bfi6dyoQ6FkBx4KYB5owtjiFgj5 - if let Ok(key_2) = Decode::decode( - &mut hex!("2aded091e73417dd618c66a10175df84cd76803ad9a87a62cb986d2e84e6d43c").as_ref(), - ) { - crate::Module::::remove_account_key_ref_count(&key_2); - }; - - // Hex for key 2G3CJWkzusVqtxYoofCjGqwxgjFYJS6Rxvg8supREvQBmtvy - if let Ok(key_3) = Decode::decode( - &mut hex!("9ed994211b1b54a39a2ff9f4d94f6ca0a2da5411bfc266f8236425c2efd0876c").as_ref(), - ) { - crate::Module::::remove_account_key_ref_count(&key_3); - } - - log::info!(" >>> Account ref has been updated"); - } -} diff --git a/pallets/identity/src/ticker_migrations.rs b/pallets/identity/src/ticker_migrations.rs index ec12c7a0e9..cea52a4970 100644 --- a/pallets/identity/src/ticker_migrations.rs +++ b/pallets/identity/src/ticker_migrations.rs @@ -7,9 +7,9 @@ mod v6 { use scale_info::TypeInfo; use super::*; - use polymesh_primitives::{ - agent::AgentGroup, v6::Permissions, Balance, CountryCode, Moment, PortfolioId, Ticker, - }; + use polymesh_primitives::agent::AgentGroup; + use polymesh_primitives::v6::Permissions; + use polymesh_primitives::{Balance, CountryCode, Moment, PortfolioId, Ticker}; #[derive(Encode, Decode, TypeInfo)] pub struct Claim2ndKey { @@ -192,11 +192,11 @@ impl From> for Authorization { } } -#[allow(dead_code)] pub(crate) fn migrate_to_v7() { RuntimeLogger::init(); // Removes all elements in the old storage and inserts it in the new storage + let mut count = 0; log::info!("Updating types for the Claims storage"); move_prefix(&Claims::final_prefix(), &v6::OldClaims::final_prefix()); v6::OldClaims::drain().for_each(|(claim1key, claim2key, id_claim)| { @@ -205,8 +205,11 @@ pub(crate) fn migrate_to_v7() { Claim2ndKey::from(claim2key), IdentityClaim::from(id_claim), ); + count += 1; }); + log::info!("Migrated {:?} Identity.Claims entries.", count); + let mut count = 0; log::info!("Updating types for the KeyRecords storage"); v6::KeyRecords::::drain().for_each(|(acc_id, key_record)| { let key_record = match key_record { @@ -225,10 +228,15 @@ pub(crate) fn migrate_to_v7() { v6::KeyRecord::MultiSigSignerKey(acc) => KeyRecord::MultiSigSignerKey(acc), }; KeyRecords::::insert(acc_id, key_record); + count += 1; }); + log::info!("Migrated {:?} Identity.KeyRecords entries.", count); + let mut count = 0; log::info!("Updating types for the Authorizations storage"); v6::Authorizations::::drain().for_each(|(acc, n, auth)| { Authorizations::::insert(acc, n, Authorization::from(auth)); + count += 1; }); + log::info!("Migrated {:?} Identity.Authorizations entries.", count); } diff --git a/pallets/multisig/src/lib.rs b/pallets/multisig/src/lib.rs index 4cfef8116f..2c2b13ffe9 100644 --- a/pallets/multisig/src/lib.rs +++ b/pallets/multisig/src/lib.rs @@ -1428,7 +1428,7 @@ pub mod migration { } }); weight.saturating_accrue(DbWeight::get().reads_writes(reads, writes)); - log::info!(" >>> {sig_count} Signers migrated."); + log::info!(" >>> {sig_count} Multisig.Signers migrated."); } fn migrate_tx_done(weight: &mut Weight) { @@ -1443,7 +1443,7 @@ pub mod migration { writes += 1; }); weight.saturating_accrue(DbWeight::get().reads_writes(reads, writes)); - log::info!(" >>> {count} NextProposalId migrated."); + log::info!(" >>> {count} Multisig.NextProposalId migrated."); } fn migrate_creator_did(weight: &mut Weight) { @@ -1463,6 +1463,6 @@ pub mod migration { } }); weight.saturating_accrue(DbWeight::get().reads_writes(reads, writes)); - log::info!(" >>> {did_count} Creator Dids migrated."); + log::info!(" >>> {did_count} Multisig.Creator Dids migrated."); } } diff --git a/pallets/nft/src/migrations.rs b/pallets/nft/src/migrations.rs index 043c16a3f8..41525c440a 100644 --- a/pallets/nft/src/migrations.rs +++ b/pallets/nft/src/migrations.rs @@ -76,7 +76,7 @@ pub(crate) fn migrate_to_v4() { .or_insert(AssetID::from(ticker)); NumberOfNFTs::insert(asset_id, did, n); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} NFT.NumberOfNFTs entries.", count); let mut count = 0; log::info!("Updating types for the CollectionTicker storage"); @@ -87,7 +87,7 @@ pub(crate) fn migrate_to_v4() { .or_insert(AssetID::from(ticker)); CollectionAsset::insert(asset_id, id); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} NFT.CollectionTicker entries.", count); let mut count = 0; log::info!("Updating types for the Collection storage"); @@ -95,7 +95,7 @@ pub(crate) fn migrate_to_v4() { count += 1; Collection::insert(id, NFTCollection::from(collection)); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} NFT.Collection entries.", count); let mut count = 0; log::info!("Updating types for the NFTsInCollection storage"); @@ -110,7 +110,7 @@ pub(crate) fn migrate_to_v4() { .or_insert(AssetID::from(ticker)); NFTsInCollection::insert(asset_id, n); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} NFT.NFTsInCollection entries.", count); let mut count = 0; log::info!("Updating types for the NFTOwner storage"); @@ -122,12 +122,12 @@ pub(crate) fn migrate_to_v4() { .or_insert(AssetID::from(ticker)); NFTOwner::insert(asset_id, nft_id, portfolio); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} NFT.NFTOwner entries.", count); log::info!("NextCollectionId has been cleared"); v3::NextCollectionId::kill(); log::info!("Removing old NextNFTId storage"); let res = v3::NextNFTId::clear(u32::max_value(), None); - log::info!("{:?} items have been cleared", res.unique); + log::info!("{:?} NFT.NextNFTId items have been cleared", res.unique); } diff --git a/pallets/portfolio/src/migrations.rs b/pallets/portfolio/src/migrations.rs index f95a7fe8ac..d9ff32d80e 100644 --- a/pallets/portfolio/src/migrations.rs +++ b/pallets/portfolio/src/migrations.rs @@ -56,7 +56,10 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); PortfolioAssetBalances::insert(portfolio, asset_id, balance); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Portoflio.PortfolioAssetBalances entries.", + count + ); let mut count = 0; log::info!("Updating types for the PortfolioLockedAssets storage"); @@ -71,7 +74,10 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); PortfolioLockedAssets::insert(portfolio, asset_id, balance); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Portoflio.PortfolioLockedAssets entries.", + count + ); let mut count = 0; log::info!("Updating types for the PortfolioNFT storage"); @@ -86,7 +92,7 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); PortfolioNFT::insert(portfolio, (asset_id, nft_id), v); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Portoflio.PortfolioNFT entries.", count); let mut count = 0; log::info!("Updating types for the PortfolioLockedNFT storage"); @@ -101,7 +107,7 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); PortfolioLockedNFT::insert(portfolio, (asset_id, nft_id), v); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Portoflio.PortfolioLockedNFT entries.", count); let mut count = 0; log::info!("Updating types for the PreApprovedPortfolios storage"); @@ -116,5 +122,8 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); PreApprovedPortfolios::insert(portfolio, asset_id, v); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Portoflio.PreApprovedPortfolios entries.", + count + ); } diff --git a/pallets/runtime/develop/src/runtime.rs b/pallets/runtime/develop/src/runtime.rs index 3790893318..a9acd9de54 100644 --- a/pallets/runtime/develop/src/runtime.rs +++ b/pallets/runtime/develop/src/runtime.rs @@ -57,7 +57,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { authoring_version: 1, // `spec_version: aaa_bbb_ccd` should match node version v`aaa.bbb.cc` // N.B. `d` is unpinned from the binary version - spec_version: 7_000_000, + spec_version: 7_000_001, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 7, diff --git a/pallets/runtime/mainnet/src/runtime.rs b/pallets/runtime/mainnet/src/runtime.rs index 17a74c97fd..7c45bc5856 100644 --- a/pallets/runtime/mainnet/src/runtime.rs +++ b/pallets/runtime/mainnet/src/runtime.rs @@ -53,7 +53,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { authoring_version: 1, // `spec_version: aaa_bbb_ccd` should match node version v`aaa.bbb.cc` // N.B. `d` is unpinned from the binary version - spec_version: 7_000_000, + spec_version: 7_000_001, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 7, diff --git a/pallets/runtime/testnet/src/runtime.rs b/pallets/runtime/testnet/src/runtime.rs index f6bf5b99f3..bb294bb8cb 100644 --- a/pallets/runtime/testnet/src/runtime.rs +++ b/pallets/runtime/testnet/src/runtime.rs @@ -55,7 +55,7 @@ pub const VERSION: RuntimeVersion = RuntimeVersion { authoring_version: 1, // `spec_version: aaa_bbb_ccd` should match node version v`aaa.bbb.cc` // N.B. `d` is unpinned from the binary version - spec_version: 7_000_000, + spec_version: 7_000_001, impl_version: 0, apis: RUNTIME_API_VERSIONS, transaction_version: 7, diff --git a/pallets/settlement/src/migrations.rs b/pallets/settlement/src/migrations.rs index e5c3325710..b9f9be972d 100644 --- a/pallets/settlement/src/migrations.rs +++ b/pallets/settlement/src/migrations.rs @@ -142,7 +142,7 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); VenueFiltering::insert(asset_id, v); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Settlement.VenueFiltering entries.", count); let mut count = 0; log::info!("Updating types for the VenueAllowList storage"); @@ -157,7 +157,7 @@ pub(crate) fn migrate_to_v3() { .or_insert(AssetID::from(ticker)); VenueAllowList::insert(asset_id, id, v); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Settlement.VenueAllowList entries.", count); let mut count = 0; log::info!("Updating types for the InstructionLegs storage"); @@ -165,7 +165,7 @@ pub(crate) fn migrate_to_v3() { count += 1; InstructionLegs::insert(instruction_id, leg_id, Leg::from(leg)); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Settlement.InstructionLegs entries.", count); let mut count = 0; log::info!("Updating types for the InstructionDetails storage"); @@ -173,5 +173,8 @@ pub(crate) fn migrate_to_v3() { count += 1; InstructionDetails::::insert(id, Instruction::from(inst)); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Settlement.InstructionDetails entries.", + count + ); } diff --git a/pallets/statistics/src/migrations.rs b/pallets/statistics/src/migrations.rs index 3a672126b7..0d57c5b2c5 100644 --- a/pallets/statistics/src/migrations.rs +++ b/pallets/statistics/src/migrations.rs @@ -116,7 +116,7 @@ pub(crate) fn migrate_to_v3() { let bounded_set = BoundedBTreeSet::try_from(set).unwrap_or_default(); ActiveAssetStats::::insert(AssetID::from(scope), bounded_set); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Statistics.ActiveAssetStats entries.", count); let mut count = 0; log::info!("Updating types for the AssetStats storage"); @@ -128,7 +128,7 @@ pub(crate) fn migrate_to_v3() { count += 1; AssetStats::insert(Stat1stKey::from(stat1key), stat2key, v); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Statistics.AssetStats entries.", count); let mut count = 0; log::info!("Updating types for the AssetTransferCompliances storage"); @@ -140,7 +140,10 @@ pub(crate) fn migrate_to_v3() { count += 1; AssetTransferCompliances::::insert(AssetID::from(scope), compliance); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Statistics.AssetTransferCompliances entries.", + count + ); let mut count = 0; log::info!("Updating types for the TransferConditionExemptEntities storage"); @@ -156,5 +159,8 @@ pub(crate) fn migrate_to_v3() { exempt, ); }); - log::info!("{:?} items migrated", count); + log::info!( + "Migrated {:?} Statistics.TransferConditionExemptEntities entries.", + count + ); } diff --git a/pallets/sto/src/migrations.rs b/pallets/sto/src/migrations.rs index 2ca596dd3e..0338298779 100644 --- a/pallets/sto/src/migrations.rs +++ b/pallets/sto/src/migrations.rs @@ -8,6 +8,21 @@ mod v0 { use super::*; use polymesh_primitives::Ticker; + #[derive(Clone, Decode, Default, Encode, PartialEq, TypeInfo)] + pub struct Fundraiser { + pub creator: IdentityId, + pub offering_portfolio: PortfolioId, + pub offering_asset: Ticker, + pub raising_portfolio: PortfolioId, + pub raising_asset: Ticker, + pub tiers: Vec, + pub venue_id: VenueId, + pub start: Moment, + pub end: Option, + pub status: FundraiserStatus, + pub minimum_investment: Balance, + } + decl_storage! { trait Store for Module as Sto { // This storage changed the Ticker key to AssetID. @@ -29,6 +44,24 @@ mod v0 { } } +impl From> for Fundraiser { + fn from(v0_fundraiser: v0::Fundraiser) -> Fundraiser { + Fundraiser { + creator: v0_fundraiser.creator, + offering_portfolio: v0_fundraiser.offering_portfolio, + offering_asset: AssetID::from(v0_fundraiser.offering_asset), + raising_portfolio: v0_fundraiser.raising_portfolio, + raising_asset: AssetID::from(v0_fundraiser.raising_asset), + tiers: v0_fundraiser.tiers, + venue_id: v0_fundraiser.venue_id, + start: v0_fundraiser.start, + end: v0_fundraiser.end, + status: v0_fundraiser.status, + minimum_investment: v0_fundraiser.minimum_investment, + } + } +} + pub(crate) fn migrate_to_v1() { RuntimeLogger::init(); let mut ticker_to_asset_id = BTreeMap::new(); @@ -46,9 +79,9 @@ pub(crate) fn migrate_to_v1() { let asset_id = ticker_to_asset_id .entry(ticker) .or_insert(AssetID::from(ticker)); - Fundraisers::::insert(asset_id, id, fundraiser); + Fundraisers::::insert(asset_id, id, Fundraiser::from(fundraiser)); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Sto.Fundraiser entries.", count); let mut count = 0; log::info!("Updating types for the FundraiserCount storage"); @@ -63,7 +96,7 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); FundraiserCount::insert(asset_id, id); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Sto.FundraiserCount entries.", count); let mut count = 0; log::info!("Updating types for the FundraiserNames storage"); @@ -78,5 +111,5 @@ pub(crate) fn migrate_to_v1() { .or_insert(AssetID::from(ticker)); FundraiserNames::insert(asset_id, id, name); }); - log::info!("{:?} items migrated", count); + log::info!("Migrated {:?} Sto.FundraiserNames entries.", count); }