@@ -123,18 +123,6 @@ impl<T: Config> SignedSubmissions<T> {
123
123
}
124
124
}
125
125
126
- /// Put the signed submissions back into storage.
127
- pub fn put ( self ) {
128
- SignedSubmissionIndices :: < T > :: put ( self . indices ) ;
129
- SignedSubmissionNextIndex :: < T > :: put ( self . next_idx ) ;
130
- for key in self . deletion_overlay {
131
- SignedSubmissionsMap :: < T > :: remove ( key) ;
132
- }
133
- for ( key, value) in self . insertion_overlay {
134
- SignedSubmissionsMap :: < T > :: insert ( key, value) ;
135
- }
136
- }
137
-
138
126
/// Get the submission at a particular index.
139
127
fn map_get ( & self , idx : u32 ) -> Option < SignedSubmissionOf < T > > {
140
128
self . insertion_overlay
@@ -166,7 +154,7 @@ impl<T: Config> SignedSubmissions<T> {
166
154
/// arbitrary order
167
155
pub fn drain ( & mut self ) -> impl ' _ + Iterator < Item = SignedSubmissionOf < T > > {
168
156
self . indices . clear ( ) ;
169
- SignedSubmissionNextIndex :: < T > :: kill ( ) ;
157
+ self . next_idx = 0 ;
170
158
let insertion_overlay = sp_std:: mem:: take ( & mut self . insertion_overlay ) ;
171
159
SignedSubmissionsMap :: < T > :: drain ( )
172
160
. filter ( move |( k, _v) | !self . deletion_overlay . contains ( k) )
@@ -255,6 +243,20 @@ impl<T: Config> Deref for SignedSubmissions<T> {
255
243
}
256
244
}
257
245
246
+ impl < T : Config > Drop for SignedSubmissions < T > {
247
+ fn drop ( & mut self ) {
248
+ SignedSubmissionIndices :: < T > :: put ( sp_std:: mem:: take ( & mut self . indices ) ) ;
249
+ SignedSubmissionNextIndex :: < T > :: put ( self . next_idx ) ;
250
+
251
+ for key in self . deletion_overlay . iter ( ) . copied ( ) {
252
+ SignedSubmissionsMap :: < T > :: remove ( key) ;
253
+ }
254
+ for ( key, value) in sp_std:: mem:: take ( & mut self . insertion_overlay ) {
255
+ SignedSubmissionsMap :: < T > :: insert ( key, value) ;
256
+ }
257
+ }
258
+ }
259
+
258
260
impl < T : Config > Pallet < T > {
259
261
/// `Self` accessor for `SignedSubmission<T>`.
260
262
pub fn signed_submissions ( ) -> SignedSubmissions < T > {
@@ -321,8 +323,6 @@ impl<T: Config> Pallet<T> {
321
323
debug_assert ! ( _remaining. is_zero( ) ) ;
322
324
}
323
325
324
- all_submissions. put ( ) ;
325
-
326
326
log ! ( debug, "closed signed phase, found solution? {}, discarded {}" , found_solution, discarded) ;
327
327
( found_solution, weight)
328
328
}
0 commit comments