Documentation ¶
Index ¶
- Variables
- func ApplyOk(t *testing.T, v *VM, from, to address.Address, value abi.TokenAmount, ...) cbor.Marshaler
- func CreateAccounts(ctx context.Context, t *testing.T, vm *VM, n int, balance abi.TokenAmount, ...) []address.Address
- func ExpectAttoFil(amount big.Int) *big.Int
- func ExpectExitCode(code exitcode.ExitCode) *exitcode.ExitCode
- func ExpectObject(v cbor.Marshaler) *objectExpectation
- func GetDealState(t *testing.T, vm *VM, dealID abi.DealID) (*market.DealState, bool)
- func MinerDLInfo(t *testing.T, v *VM, minerIDAddr address.Address) *dline.Info
- func MinerPower(t *testing.T, vm *VM, minerIdAddr address.Address) miner.PowerPair
- func ParamsForInvocation(t *testing.T, vm *VM, idxs ...int) interface{}
- func PowerForMinerSector(t *testing.T, vm *VM, minerIdAddr address.Address, ...) miner.PowerPair
- func SectorDeadline(t *testing.T, v *VM, minerIDAddress address.Address, ...) (uint64, uint64)
- func ValueForInvocation(t *testing.T, vm *VM, idxs ...int) abi.TokenAmount
- type ActorImplLookup
- type ExpectInvocation
- type InternalMessage
- type Invocation
- type MinerBalances
- type NetworkStats
- type TestActor
- type VM
- func AdvanceByDeadline(t *testing.T, v *VM, minerIDAddr address.Address, ...) (*VM, *dline.Info)
- func AdvanceByDeadlineTillEpoch(t *testing.T, v *VM, minerIDAddr address.Address, e abi.ChainEpoch) (*VM, *dline.Info)
- func AdvanceByDeadlineTillIndex(t *testing.T, v *VM, minerIDAddr address.Address, i uint64) (*VM, *dline.Info)
- func AdvanceTillProvingDeadline(t *testing.T, v *VM, minerIDAddress address.Address, ...) (*dline.Info, uint64, *VM)
- func NewVM(ctx context.Context, actorImpls ActorImplLookup, store adt.Store) *VM
- func NewVMWithSingletons(ctx context.Context, t *testing.T) *VM
- func (vm *VM) Abortf(errExitCode exitcode.ExitCode, msg string, args ...interface{})
- func (vm *VM) ApplyMessage(from, to address.Address, value abi.TokenAmount, method abi.MethodNum, ...) (cbor.Marshaler, exitcode.ExitCode)
- func (vm *VM) GetActor(a address.Address) (*states.Actor, bool, error)
- func (vm *VM) GetEpoch() abi.ChainEpoch
- func (vm *VM) GetState(addr address.Address, out cbor.Unmarshaler) error
- func (vm *VM) Invocations() []*Invocation
- func (vm *VM) LastInvocation() *Invocation
- func (vm *VM) Log(level rt.LogLevel, msg string, args ...interface{})
- func (vm *VM) NormalizeAddress(addr address.Address) (address.Address, bool)
- func (vm *VM) StateRoot() cid.Cid
- func (vm *VM) Store() adt.Store
- func (vm *VM) WithEpoch(epoch abi.ChainEpoch) (*VM, error)
- func (vm *VM) WithRoot(root cid.Cid) (*VM, error)
Constants ¶
This section is empty.
Variables ¶
var EmptyObjectCid cid.Cid
var ExpectOK = &okExitCode
var FIL = big.NewInt(1e18)
var VerifregRoot address.Address
Functions ¶
func CreateAccounts ¶
func CreateAccounts(ctx context.Context, t *testing.T, vm *VM, n int, balance abi.TokenAmount, seed int64) []address.Address
Creates n account actors in the VM with the given balance
func ExpectAttoFil ¶
helpers to simplify pointer creation
func ExpectObject ¶
func GetDealState ¶
func MinerPower ¶
func PowerForMinerSector ¶
func SectorDeadline ¶
func SectorDeadline(t *testing.T, v *VM, minerIDAddress address.Address, sectorNumber abi.SectorNumber) (uint64, uint64)
find the proving deadline and partition index of a miner's sector
func ValueForInvocation ¶
Types ¶
type ActorImplLookup ¶
type ExpectInvocation ¶
type ExpectInvocation struct { To address.Address Method abi.MethodNum // optional Exitcode exitcode.ExitCode From address.Address Value *abi.TokenAmount Params *objectExpectation Ret *objectExpectation SubInvocations []ExpectInvocation }
ExpectInvocation is a pattern for a message invocation within the VM. The To and Method fields must be supplied. Exitcode defaults to exitcode.Ok. All other field are optional, where a nil or Undef value indicates that any value will match. SubInvocations will be matched recursively.
func (ExpectInvocation) Matches ¶
func (ei ExpectInvocation) Matches(t *testing.T, invocations *Invocation)
type InternalMessage ¶
type InternalMessage struct {
// contains filtered or unexported fields
}
func (InternalMessage) Caller ¶
func (msg InternalMessage) Caller() address.Address
Caller implements runtime.MessageInfo.
func (InternalMessage) Receiver ¶
func (msg InternalMessage) Receiver() address.Address
Receiver implements runtime.MessageInfo.
func (InternalMessage) ValueReceived ¶
func (msg InternalMessage) ValueReceived() abi.TokenAmount
ValueReceived implements runtime.MessageInfo.
type Invocation ¶
type Invocation struct { Msg *InternalMessage Exitcode exitcode.ExitCode Ret cbor.Marshaler SubInvocations []*Invocation }
type MinerBalances ¶
type MinerBalances struct { AvailableBalance abi.TokenAmount VestingBalance abi.TokenAmount PreCommitDeposit abi.TokenAmount }
func GetMinerBalances ¶
func GetMinerBalances(t *testing.T, vm *VM, minerIdAddr address.Address) MinerBalances
type NetworkStats ¶
type NetworkStats struct { power.State TotalRawBytePower abi.StoragePower TotalBytesCommitted abi.StoragePower TotalQualityAdjPower abi.StoragePower TotalQABytesCommitted abi.StoragePower TotalPledgeCollateral abi.TokenAmount ThisEpochRawBytePower abi.StoragePower ThisEpochQualityAdjPower abi.StoragePower ThisEpochPledgeCollateral abi.TokenAmount MinerCount int64 MinerAboveMinPowerCount int64 ThisEpochReward abi.TokenAmount ThisEpochRewardSmoothed *smoothing.FilterEstimate ThisEpochBaselinePower abi.StoragePower TotalClientLockedCollateral abi.TokenAmount TotalProviderLockedCollateral abi.TokenAmount TotalClientStorageFee abi.TokenAmount }
func GetNetworkStats ¶
func GetNetworkStats(t *testing.T, vm *VM) NetworkStats
type TestActor ¶
type TestActor struct { Head cid.Cid Code cid.Cid Balance abi.TokenAmount }
Simplifed actor implementation that does not contain message nonce.
type VM ¶
type VM struct {
// contains filtered or unexported fields
}
VM is a simplified message execution framework for the purposes of testing inter-actor communication. The VM maintains actor state and can be used to simulate message validation for a single block or tipset. The VM does not track gas charges, provide working syscalls, validate message nonces and many other things that a compliant VM needs to do.
func AdvanceByDeadline ¶
func AdvanceByDeadline(t *testing.T, v *VM, minerIDAddr address.Address, predicate advanceDeadlinePredicate) (*VM, *dline.Info)
AdvanceByDeadline creates a new VM advanced to an epoch specified by the predicate while keeping the miner state upu-to-date by running a cron at the end of each deadline period.
func AdvanceByDeadlineTillEpoch ¶
func AdvanceByDeadlineTillEpoch(t *testing.T, v *VM, minerIDAddr address.Address, e abi.ChainEpoch) (*VM, *dline.Info)
Advances by deadline until e is contained within the deadline period represented by the returned deadline info. The VM returned will be set to the last deadline close, not at e.
func AdvanceByDeadlineTillIndex ¶
func AdvanceByDeadlineTillIndex(t *testing.T, v *VM, minerIDAddr address.Address, i uint64) (*VM, *dline.Info)
Advances by deadline until the deadline index matches the given index. The vm returned will be set to the close epoch of the previous deadline.
func AdvanceTillProvingDeadline ¶
func AdvanceTillProvingDeadline(t *testing.T, v *VM, minerIDAddress address.Address, sectorNumber abi.SectorNumber) (*dline.Info, uint64, *VM)
Advance to the epoch when the sector is due to be proven. Returns the deadline info for proving deadline for sector, partition index of sector, and a VM at the opening of the deadline (ready for SubmitWindowedPoSt).
func NewVMWithSingletons ¶
Creates a new VM and initializes all singleton actors plus a root verifier account.
func (*VM) ApplyMessage ¶
func (vm *VM) ApplyMessage(from, to address.Address, value abi.TokenAmount, method abi.MethodNum, params interface{}) (cbor.Marshaler, exitcode.ExitCode)
ApplyMessage applies the message to the current state.
func (*VM) Invocations ¶
func (vm *VM) Invocations() []*Invocation
func (*VM) LastInvocation ¶
func (vm *VM) LastInvocation() *Invocation