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