lotus/chain/validation/factories.go

48 lines
1.0 KiB
Go
Raw Normal View History

package validation
import (
2020-02-27 22:17:08 +00:00
"context"
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"
)
2020-02-27 22:17:08 +00:00
type Factories struct {
*Applier
}
2020-02-27 22:17:08 +00:00
var _ vstate.Factories = &Factories{}
2020-02-27 22:17:08 +00:00
func NewFactories() *Factories {
applier := NewApplier()
2020-02-27 22:17:08 +00:00
return &Factories{applier}
}
2020-02-27 22:17:08 +00:00
func (f *Factories) NewState() vstate.VMWrapper {
return NewState()
}
2020-02-27 22:17:08 +00:00
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
2020-02-27 22:17:08 +00:00
}
func (f *Factories) NewRandomnessSource() vstate.RandomnessSource {
return &fakeRandSrc{}
}
func (f *Factories) NewValidationConfig() vstate.ValidationConfig {
2020-03-24 21:30:27 +00:00
trackGas := true
2020-03-05 18:13:49 +00:00
checkExit := true
2020-03-17 08:30:50 +00:00
checkRet := true
2020-02-28 23:18:37 +00:00
// ignore gas and return value assertions
return NewConfig(trackGas, checkExit, checkRet)
}