@@ -222,11 +222,6 @@ func (s *keyStore) decodeKey(dsk string) (bit256.Key, error) {
222
222
return bit256 .NewKey (bs ), nil
223
223
}
224
224
225
- type pair struct {
226
- k ds.Key
227
- h mh.Multihash
228
- }
229
-
230
225
// worker processes operations sequentially in a single goroutine
231
226
func (s * keyStore ) worker () {
232
227
defer close (s .done )
@@ -272,7 +267,11 @@ func (s *keyStore) worker() {
272
267
// returns the keys that weren't present already in the keystore.
273
268
func (s * keyStore ) put (ctx context.Context , keys []mh.Multihash ) ([]mh.Multihash , error ) {
274
269
seen := make (map [bit256.Key ]struct {}, len (keys ))
275
- toPut := make ([]pair , 0 , len (keys ))
270
+ b , err := s .ds .Batch (ctx )
271
+ if err != nil {
272
+ return nil , err
273
+ }
274
+ newKeys := make ([]mh.Multihash , 0 , len (keys ))
276
275
277
276
for _ , h := range keys {
278
277
k := keyspace .MhToBit256 (h )
@@ -286,32 +285,15 @@ func (s *keyStore) put(ctx context.Context, keys []mh.Multihash) ([]mh.Multihash
286
285
return nil , err
287
286
}
288
287
if ! ok {
289
- toPut = append (toPut , pair {k : dsk , h : h })
290
- }
291
- }
292
- clear (seen )
293
- if len (toPut ) == 0 {
294
- // Nothing to do
295
- return nil , nil
296
- }
297
-
298
- b , err := s .ds .Batch (ctx )
299
- if err != nil {
300
- return nil , err
301
- }
302
- for _ , p := range toPut {
303
- if err := b .Put (ctx , p .k , p .h ); err != nil {
304
- return nil , err
288
+ if err := b .Put (ctx , dsk , h ); err != nil {
289
+ return nil , err
290
+ }
291
+ newKeys = append (newKeys , h )
305
292
}
306
293
}
307
294
if err := b .Commit (ctx ); err != nil {
308
295
return nil , err
309
296
}
310
-
311
- newKeys := make ([]mh.Multihash , len (toPut ))
312
- for i , p := range toPut {
313
- newKeys [i ] = p .h
314
- }
315
297
return newKeys , nil
316
298
}
317
299
0 commit comments