57 lines
1.7 KiB
Go
57 lines
1.7 KiB
Go
package conformance
|
|
|
|
import (
|
|
"context"
|
|
|
|
"github.com/filecoin-project/specs-actors/actors/runtime/proof"
|
|
|
|
"github.com/filecoin-project/go-address"
|
|
"github.com/filecoin-project/lotus/chain/state"
|
|
"github.com/filecoin-project/lotus/chain/vm"
|
|
|
|
"github.com/filecoin-project/go-state-types/abi"
|
|
"github.com/filecoin-project/go-state-types/crypto"
|
|
"github.com/filecoin-project/specs-actors/actors/runtime"
|
|
|
|
cbor "github.com/ipfs/go-ipld-cbor"
|
|
)
|
|
|
|
type testRand struct{}
|
|
|
|
var _ vm.Rand = (*testRand)(nil)
|
|
|
|
func (r *testRand) GetChainRandomness(ctx context.Context, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {
|
|
return []byte("i_am_random_____i_am_random_____"), nil // 32 bytes.
|
|
}
|
|
|
|
func (r *testRand) GetBeaconRandomness(ctx context.Context, pers crypto.DomainSeparationTag, round abi.ChainEpoch, entropy []byte) ([]byte, error) {
|
|
return []byte("i_am_random_____i_am_random_____"), nil // 32 bytes.
|
|
}
|
|
|
|
type testSyscalls struct {
|
|
runtime.Syscalls
|
|
}
|
|
|
|
// TODO VerifySignature this will always succeed; but we want to be able to test failures too.
|
|
func (fss *testSyscalls) VerifySignature(_ crypto.Signature, _ address.Address, _ []byte) error {
|
|
return nil
|
|
}
|
|
|
|
// TODO VerifySeal this will always succeed; but we want to be able to test failures too.
|
|
func (fss *testSyscalls) VerifySeal(_ proof.SealVerifyInfo) error {
|
|
return nil
|
|
}
|
|
|
|
// TODO VerifyPoSt this will always succeed; but we want to be able to test failures too.
|
|
func (fss *testSyscalls) VerifyPoSt(_ proof.WindowPoStVerifyInfo) error {
|
|
return nil
|
|
}
|
|
|
|
func mkFakedSigSyscalls(base vm.SyscallBuilder) vm.SyscallBuilder {
|
|
return func(ctx context.Context, cstate *state.StateTree, cst cbor.IpldStore) runtime.Syscalls {
|
|
return &testSyscalls{
|
|
base(ctx, cstate, cst),
|
|
}
|
|
}
|
|
}
|