diff --git a/chain/gen/genesis/genesis.go b/chain/gen/genesis/genesis.go index b8ede8856..615b7b140 100644 --- a/chain/gen/genesis/genesis.go +++ b/chain/gen/genesis/genesis.go @@ -326,7 +326,16 @@ func MakeInitialStateTree(ctx context.Context, bs bstore.Blockstore, template ge func VerifyPreSealedData(ctx context.Context, cs *store.ChainStore, stateroot cid.Cid, template genesis.Template) (cid.Cid, error) { verifNeeds := make(map[address.Address]abi.PaddedPieceSize) var sum abi.PaddedPieceSize + + vm, err := vm.NewVM(stateroot, 0, &fakeRand{}, cs.Blockstore(), mkFakedSigSyscalls(cs.VMSys())) + if err != nil { + return cid.Undef, xerrors.Errorf("failed to create NewVM: %w", err) + } + for _, m := range template.Miners { + + // Add the miner to the market actor's balance table + _, err = doExec(ctx, vm, builtin.StorageMarketActorAddr, m.Owner, builtin.MethodsMarket.AddBalance, mustEnc(adt.Empty)) for _, s := range m.Sectors { amt := s.Deal.PieceSize verifNeeds[s.Deal.Client] += amt @@ -339,11 +348,6 @@ func VerifyPreSealedData(ctx context.Context, cs *store.ChainStore, stateroot ci return cid.Undef, err } - vm, err := vm.NewVM(stateroot, 0, &fakeRand{}, cs.Blockstore(), mkFakedSigSyscalls(cs.VMSys())) - if err != nil { - return cid.Undef, xerrors.Errorf("failed to create NewVM: %w", err) - } - _, err = doExecValue(ctx, vm, builtin.VerifiedRegistryActorAddr, RootVerifierAddr, types.NewInt(0), builtin.MethodsVerifiedRegistry.AddVerifier, mustEnc(&verifreg.AddVerifierParams{ Address: verifier, Allowance: abi.NewStoragePower(int64(sum)), // eh, close enough