@@ -9,12 +9,20 @@ use frame_support::{
9
9
use itertools:: Itertools ;
10
10
use pallet_assets:: { Approval , AssetAccount , AssetDetails , AssetMetadata } ;
11
11
use polimec_common:: assets:: AcceptedFundingAsset ;
12
- use sp_api:: runtime_decl_for_core:: CoreV5 ;
13
12
use sp_runtime:: BoundedVec ;
14
13
use xcm:: v4:: Location ;
15
14
16
- // Storage items of pallet-assets are set to private for some reason. So we have to redefine them to get the same storage
17
- // encoding and call the `translate` methods. -_-'
15
+ #[ cfg( feature = "try-runtime" ) ]
16
+ use frame_support:: migrations:: VersionedPostUpgradeData ;
17
+
18
+ #[ cfg( feature = "try-runtime" ) ]
19
+ use parity_scale_codec:: Encode ;
20
+
21
+ #[ cfg( feature = "try-runtime" ) ]
22
+ use sp_std:: vec:: Vec ;
23
+
24
+ // Storage items of pallet-assets are private.
25
+ // So we have to redefine them to get the same storage encoding and call the `translate` methods.
18
26
pub mod pallet_assets_storage_items {
19
27
use super :: * ;
20
28
@@ -120,74 +128,82 @@ impl OnRuntimeUpgrade for FromOldAssetIdMigration {
120
128
log:: info!( "AssetId Migration can be removed" ) ;
121
129
return <Runtime as frame_system:: Config >:: DbWeight :: get ( ) . reads ( 1 )
122
130
}
123
- log:: info!( "Running AssetId Migration..." ) ;
124
131
let mut items = 0 ;
125
132
if runtime_version. spec_version == 1_000_000 {
133
+ log:: info!( "Running AssetId Migration..." ) ;
126
134
let id_map = BTreeMap :: from ( [
127
- ( 1984 , AcceptedFundingAsset :: USDT . id ( ) ) ,
128
- ( 1337 , AcceptedFundingAsset :: USDC . id ( ) ) ,
129
135
( 10 , AcceptedFundingAsset :: DOT . id ( ) ) ,
136
+ ( 1337 , AcceptedFundingAsset :: USDC . id ( ) ) ,
137
+ ( 1984 , AcceptedFundingAsset :: USDT . id ( ) ) ,
130
138
( 3344 , Location :: here ( ) ) ,
131
139
] ) ;
132
140
133
141
let old_account_iterator = pallet_assets_storage_items:: old_types:: Account :: iter ( ) . collect_vec ( ) ;
134
142
for ( old_asset_id, account, account_info) in old_account_iterator {
135
- items += 1 ;
136
- log:: info!( "old_account item {:?}" , items) ;
137
-
138
- pallet_assets_storage_items:: new_types:: Account :: insert (
139
- id_map. get ( & old_asset_id) . unwrap ( ) ,
140
- account. clone ( ) ,
141
- account_info,
142
- ) ;
143
- pallet_assets_storage_items:: old_types:: Account :: remove ( old_asset_id, account) ;
143
+ if let Some ( new_asset_id) = id_map. get ( & old_asset_id) {
144
+ items += 1 ;
145
+ log:: info!( "old_account item {:?}" , items) ;
146
+
147
+ pallet_assets_storage_items:: new_types:: Account :: insert (
148
+ new_asset_id,
149
+ account. clone ( ) ,
150
+ account_info,
151
+ ) ;
152
+ pallet_assets_storage_items:: old_types:: Account :: remove ( old_asset_id, account) ;
153
+ }
144
154
}
145
155
146
156
let old_asset_iterator = pallet_assets_storage_items:: old_types:: Asset :: iter ( ) . collect_vec ( ) ;
147
157
for ( old_asset_id, asset_info) in old_asset_iterator {
148
- items += 1 ;
149
- log:: info!( "old_asset item {:?}" , items) ;
150
- pallet_assets_storage_items:: new_types:: Asset :: insert ( id_map. get ( & old_asset_id) . unwrap ( ) , asset_info) ;
151
- pallet_assets_storage_items:: old_types:: Asset :: remove ( old_asset_id) ;
158
+ if let Some ( new_asset_id) = id_map. get ( & old_asset_id) {
159
+ items += 1 ;
160
+ log:: info!( "old_asset item {:?}" , items) ;
161
+ pallet_assets_storage_items:: new_types:: Asset :: insert ( new_asset_id, asset_info) ;
162
+ pallet_assets_storage_items:: old_types:: Asset :: remove ( old_asset_id) ;
163
+ }
152
164
}
153
165
154
166
let old_approvals_iterator = pallet_assets_storage_items:: old_types:: Approvals :: iter ( ) . collect_vec ( ) ;
155
167
for ( ( old_asset_id, owner, delegate) , approval) in old_approvals_iterator {
156
- items += 1 ;
157
- log:: info!( "old_approvals item {:?}" , items) ;
158
- pallet_assets_storage_items:: new_types:: Approvals :: insert (
159
- ( id_map. get ( & old_asset_id) . unwrap ( ) , owner. clone ( ) , delegate. clone ( ) ) ,
160
- approval,
161
- ) ;
162
- pallet_assets_storage_items:: old_types:: Approvals :: remove ( ( old_asset_id, owner, delegate) ) ;
168
+ if let Some ( new_asset_id) = id_map. get ( & old_asset_id) {
169
+ items += 1 ;
170
+ log:: info!( "old_approvals item {:?}" , items) ;
171
+ pallet_assets_storage_items:: new_types:: Approvals :: insert (
172
+ ( new_asset_id, owner. clone ( ) , delegate. clone ( ) ) ,
173
+ approval,
174
+ ) ;
175
+ pallet_assets_storage_items:: old_types:: Approvals :: remove ( ( old_asset_id, owner, delegate) ) ;
176
+ }
163
177
}
164
178
165
179
let old_metadata_iterator = pallet_assets_storage_items:: old_types:: Metadata :: iter ( ) . collect_vec ( ) ;
166
180
for ( old_asset_id, metadata) in old_metadata_iterator {
167
- items += 1 ;
168
- log:: info!( "old_metadata item {:?}" , items) ;
169
- pallet_assets_storage_items:: new_types:: Metadata :: insert ( id_map. get ( & old_asset_id) . unwrap ( ) , metadata) ;
170
- pallet_assets_storage_items:: old_types:: Metadata :: remove ( old_asset_id) ;
181
+ if let Some ( new_asset_id) = id_map. get ( & old_asset_id) {
182
+ items += 1 ;
183
+ log:: info!( "old_metadata item {:?}" , items) ;
184
+ pallet_assets_storage_items:: new_types:: Metadata :: insert ( new_asset_id, metadata) ;
185
+ pallet_assets_storage_items:: old_types:: Metadata :: remove ( old_asset_id) ;
186
+ }
171
187
}
172
188
173
189
let old_oracle_raw_values_iterator = orml_oracle_storage_items:: old_types:: RawValues :: iter ( ) . collect_vec ( ) ;
174
190
for ( account, old_asset_id, raw_values) in old_oracle_raw_values_iterator {
175
- items += 1 ;
176
- log:: info!( "old_oracle_raw_values item {:?}" , items) ;
177
- orml_oracle:: RawValues :: < Runtime > :: insert (
178
- account. clone ( ) ,
179
- id_map. get ( & old_asset_id) . unwrap ( ) ,
180
- raw_values,
181
- ) ;
182
- orml_oracle_storage_items:: old_types:: RawValues :: remove ( account, old_asset_id) ;
191
+ if let Some ( new_asset_id) = id_map. get ( & old_asset_id) {
192
+ items += 1 ;
193
+ log:: info!( "old_oracle_raw_values item {:?}" , items) ;
194
+ orml_oracle:: RawValues :: < Runtime > :: insert ( account. clone ( ) , new_asset_id, raw_values) ;
195
+ orml_oracle_storage_items:: old_types:: RawValues :: remove ( account, old_asset_id) ;
196
+ }
183
197
}
184
198
185
199
let old_oracle_values_iterator = orml_oracle_storage_items:: old_types:: Values :: iter ( ) . collect_vec ( ) ;
186
200
for ( old_asset_id, value) in old_oracle_values_iterator {
187
- items += 1 ;
188
- log:: info!( "old_oracle_values item {:?}" , items) ;
189
- orml_oracle:: Values :: < Runtime > :: insert ( id_map. get ( & old_asset_id) . unwrap ( ) , value) ;
190
- orml_oracle_storage_items:: old_types:: Values :: remove ( old_asset_id) ;
201
+ if let Some ( new_asset_id) = id_map. get ( & old_asset_id) {
202
+ items += 1 ;
203
+ log:: info!( "old_oracle_values item {:?}" , items) ;
204
+ orml_oracle:: Values :: < Runtime > :: insert ( new_asset_id, value) ;
205
+ orml_oracle_storage_items:: old_types:: Values :: remove ( old_asset_id) ;
206
+ }
191
207
}
192
208
}
193
209
0 commit comments