github.com/filecoin-project/specs-actors/v4@v4.0.2/actors/migration/nv10/verifreg.go (about) 1 package nv10 2 3 import ( 4 "context" 5 6 verifreg2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/verifreg" 7 cid "github.com/ipfs/go-cid" 8 cbor "github.com/ipfs/go-ipld-cbor" 9 10 builtin3 "github.com/filecoin-project/specs-actors/v4/actors/builtin" 11 verifreg3 "github.com/filecoin-project/specs-actors/v4/actors/builtin/verifreg" 12 ) 13 14 type verifregMigrator struct{} 15 16 func (m verifregMigrator) migrateState(ctx context.Context, store cbor.IpldStore, in actorMigrationInput) (*actorMigrationResult, error) { 17 var inState verifreg2.State 18 if err := store.Get(ctx, in.head, &inState); err != nil { 19 return nil, err 20 } 21 22 verifiersCIDOut, err := migrateHAMTRaw(ctx, store, inState.Verifiers, builtin3.DefaultHamtBitwidth) 23 if err != nil { 24 return nil, err 25 } 26 verifiedClientsCIDOut, err := migrateHAMTRaw(ctx, store, inState.VerifiedClients, builtin3.DefaultHamtBitwidth) 27 if err != nil { 28 return nil, err 29 } 30 31 outState := verifreg3.State{ 32 RootKey: inState.RootKey, 33 Verifiers: verifiersCIDOut, 34 VerifiedClients: verifiedClientsCIDOut, 35 } 36 37 newHead, err := store.Put(ctx, &outState) 38 return &actorMigrationResult{ 39 newCodeCID: m.migratedCodeCID(), 40 newHead: newHead, 41 }, err 42 } 43 44 func (m verifregMigrator) migratedCodeCID() cid.Cid { 45 return builtin3.VerifiedRegistryActorCodeID 46 }