github.com/filecoin-project/specs-actors/v4@v4.0.2/actors/migration/nv10/init.go (about) 1 package nv10 2 3 import ( 4 "context" 5 6 init2 "github.com/filecoin-project/specs-actors/v2/actors/builtin/init" 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 init3 "github.com/filecoin-project/specs-actors/v4/actors/builtin/init" 12 ) 13 14 type initMigrator struct{} 15 16 func (m initMigrator) migrateState(ctx context.Context, store cbor.IpldStore, in actorMigrationInput) (*actorMigrationResult, error) { 17 var inState init2.State 18 if err := store.Get(ctx, in.head, &inState); err != nil { 19 return nil, err 20 } 21 22 addressMapOut, err := migrateHAMTRaw(ctx, store, inState.AddressMap, builtin3.DefaultHamtBitwidth) 23 if err != nil { 24 return nil, err 25 } 26 27 outState := init3.State{ 28 AddressMap: addressMapOut, 29 NextID: inState.NextID, 30 NetworkName: inState.NetworkName, 31 } 32 newHead, err := store.Put(ctx, &outState) 33 return &actorMigrationResult{ 34 newCodeCID: m.migratedCodeCID(), 35 newHead: newHead, 36 }, err 37 } 38 39 func (m initMigrator) migratedCodeCID() cid.Cid { 40 return builtin3.InitActorCodeID 41 }