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  }