diff --git a/chain/validation/applier.go b/chain/validation/applier.go index 5289f840b..f30c543bb 100644 --- a/chain/validation/applier.go +++ b/chain/validation/applier.go @@ -9,6 +9,7 @@ import ( "github.com/filecoin-project/specs-actors/actors/builtin" "github.com/filecoin-project/specs-actors/actors/crypto" "github.com/filecoin-project/specs-actors/actors/puppet" + "github.com/filecoin-project/specs-actors/actors/runtime" "github.com/ipfs/go-cid" vtypes "github.com/filecoin-project/chain-validation/chain/types" @@ -24,12 +25,13 @@ import ( // Applier applies messages to state trees and storage. type Applier struct { stateWrapper *StateWrapper + syscalls runtime.Syscalls } var _ vstate.Applier = &Applier{} -func NewApplier(sw *StateWrapper) *Applier { - return &Applier{sw} +func NewApplier(sw *StateWrapper, syscalls runtime.Syscalls) *Applier { + return &Applier{sw, syscalls} } func (a *Applier) ApplyMessage(epoch abi.ChainEpoch, message *vtypes.Message) (vtypes.ApplyMessageResult, error) { @@ -65,7 +67,7 @@ func (a *Applier) ApplySignedMessage(epoch abi.ChainEpoch, msg *vtypes.SignedMes } func (a *Applier) ApplyTipSetMessages(epoch abi.ChainEpoch, blocks []vtypes.BlockMessagesInfo, rnd vstate.RandomnessSource) (vtypes.ApplyTipSetResult, error) { - cs := store.NewChainStore(a.stateWrapper.bs, a.stateWrapper.ds, vdrivers.NewChainValidationSyscalls()) + cs := store.NewChainStore(a.stateWrapper.bs, a.stateWrapper.ds, a.syscalls) sm := stmgr.NewStateManager(cs) var bms []stmgr.BlockMessages diff --git a/chain/validation/factories.go b/chain/validation/factories.go index 223382538..d3771d87d 100644 --- a/chain/validation/factories.go +++ b/chain/validation/factories.go @@ -1,11 +1,9 @@ package validation import ( - "context" + "github.com/filecoin-project/specs-actors/actors/runtime" vstate "github.com/filecoin-project/chain-validation/state" - "github.com/filecoin-project/specs-actors/actors/abi" - acrypto "github.com/filecoin-project/specs-actors/actors/crypto" ) type Factories struct { @@ -18,26 +16,15 @@ func NewFactories() *Factories { return &Factories{} } -func (f *Factories) NewStateAndApplier() (vstate.VMWrapper, vstate.Applier) { +func (f *Factories) NewStateAndApplier(syscalls runtime.Syscalls) (vstate.VMWrapper, vstate.Applier) { st := NewState() - return st, NewApplier(st) + return st, NewApplier(st, syscalls) } func (f *Factories) NewKeyManager() vstate.KeyManager { return newKeyManager() } -type fakeRandSrc struct { -} - -func (r fakeRandSrc) Randomness(_ context.Context, _ acrypto.DomainSeparationTag, _ abi.ChainEpoch, _ []byte) (abi.Randomness, error) { - return abi.Randomness("sausages"), nil -} - -func (f *Factories) NewRandomnessSource() vstate.RandomnessSource { - return &fakeRandSrc{} -} - func (f *Factories) NewValidationConfig() vstate.ValidationConfig { trackGas := true checkExit := true