statediff

package module
v0.0.28 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 21, 2021 License: Apache-2.0, MIT Imports: 35 Imported by: 2

README

State exploration for filecoin (lotus centric)

This tool provides functionality for exploration and comparing changes to filecoin state.

Contents

CLI

go get github.com/filecoin-project/statediff/cmd/statediff
Usage

See what state change is expected by a test vector:

statediff vector --file vector.json 

See what state changed on the local lotus chain across a block or message:

statediff chain --expand-actors all bafy...

Compare two roots in a CAR

statediff car --file export.car <left CID> <right CID>

API

Other tools working with state trees can access statediff by importing github.com/filecoin-project/statediff.

  • Diff(context.Context, blockstore.Blockstore, a, b cid.Cid, ...Option) string Diff generates a textual unified diff between stateroots a and b. State objects are retreived out of the provided blockstore.
    • Options can be used to control the amount of recursion / expansion performed. In particular, ExpandActors will perform recursive introspection into each individual actor account with a differing HEAD state, and ExpandActorByCid will selectively expand actor accounts based on provided CIDs.

Web

The web viewer (stateexplorer) provides a JSON transformation layer and interactive state tree exploration.

git clone https://github.com/filecoin-project/statediff
go generate ./...

Note: you need npm installed for go generate to properly bundle frontend assets.

When running in production, either use the provided docker image, or run the explorer in its self-contained-binary form (assets are bundled via the go generate above.)

go run ./cmd/stateexplorer explore --bind 0.0.0.0:33333 --api $(cat ~/.lotus/token):$(cat ~/.lotus/api)

If not explicitly provided as an argument, statediff/stateexplorer will attempt to locate a lotus instance running on the same host by probing your home directory.

In development mode, assets can be loaded from disk so that changes are reflected on reload.

go run ./cmd/stateexplorer explore --bind 0.0.0.0:33333 --assets .

License

Dual-licensed under MIT + Apache 2.0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var AllowDegradedADLNodes = false

AllowDegradedADLNodes uses adl walks that ignore store.Get fails

View Source
var LotusActorCodes = map[string]LotusType{
	"bafkqaddgnfwc6mjpon4xg5dfnu":                 LotusType("systemActor"),
	"bafkqactgnfwc6mjpnfxgs5a":                    InitActorState,
	"bafkqaddgnfwc6mjpojsxoylsmq":                 RewardActorState,
	"bafkqactgnfwc6mjpmnzg63q":                    CronActorState,
	"bafkqaetgnfwc6mjpon2g64tbm5sxa33xmvza":       StoragePowerActorState,
	"bafkqae3gnfwc6mjpon2g64tbm5sw2ylsnnsxi":      MarketActorState,
	"bafkqaftgnfwc6mjpozsxe2lgnfswi4tfm5uxg5dspe": VerifiedRegistryActorState,
	"bafkqadlgnfwc6mjpmfrwg33vnz2a":               AccountActorState,
	"bafkqadtgnfwc6mjpnv2wy5djonuwo":              MultisigActorState,
	"bafkqafdgnfwc6mjpobqxs3lfnz2gg2dbnzxgk3a":    PaymentChannelActorState,
	"bafkqaetgnfwc6mjpon2g64tbm5sw22lomvza":       StorageMinerActorState,

	"bafkqaddgnfwc6mrpon4xg5dfnu":                 LotusType("systemActor"),
	"bafkqactgnfwc6mrpnfxgs5a":                    InitActorState,
	"bafkqaddgnfwc6mrpojsxoylsmq":                 RewardActorV2State,
	"bafkqactgnfwc6mrpmnzg63q":                    CronActorState,
	"bafkqaetgnfwc6mrpon2g64tbm5sxa33xmvza":       StoragePowerActorV2State,
	"bafkqae3gnfwc6mrpon2g64tbm5sw2ylsnnsxi":      MarketActorV2State,
	"bafkqaftgnfwc6mrpozsxe2lgnfswi4tfm5uxg5dspe": VerifiedRegistryActorState,
	"bafkqadlgnfwc6mrpmfrwg33vnz2a":               AccountActorState,
	"bafkqadtgnfwc6mrpnv2wy5djonuwo":              MultisigActorState,
	"bafkqafdgnfwc6mrpobqxs3lfnz2gg2dbnzxgk3a":    PaymentChannelActorState,
	"bafkqaetgnfwc6mrpon2g64tbm5sw22lomvza":       StorageMinerActorV2State,

	cidOf("fil/3/system"):           LotusType("systemActor"),
	cidOf("fil/3/init"):             InitActorV3State,
	cidOf("fil/3/cron"):             CronActorState,
	cidOf("fil/3/storagepower"):     StoragePowerActorV3State,
	cidOf("fil/3/storageminer"):     StorageMinerActorV3State,
	cidOf("fil/3/storagemarket"):    MarketActorV3State,
	cidOf("fil/3/paymentchannel"):   PaymentChannelActorV3State,
	cidOf("fil/3/reward"):           RewardActorV2State,
	cidOf("fil/3/verifiedregistry"): VerifiedRegistryActorV3State,
	cidOf("fil/3/account"):          AccountActorState,
	cidOf("fil/3/multisig"):         MultisigActorV3State,

	cidOf("fil/4/system"):           LotusType("systemActor"),
	cidOf("fil/4/init"):             InitActorV3State,
	cidOf("fil/4/cron"):             CronActorState,
	cidOf("fil/4/storagepower"):     StoragePowerActorV3State,
	cidOf("fil/4/storageminer"):     StorageMinerActorV4State,
	cidOf("fil/4/storagemarket"):    MarketActorV3State,
	cidOf("fil/4/paymentchannel"):   PaymentChannelActorV3State,
	cidOf("fil/4/reward"):           RewardActorV2State,
	cidOf("fil/4/verifiedregistry"): VerifiedRegistryActorV3State,
	cidOf("fil/4/account"):          AccountActorState,
	cidOf("fil/4/multisig"):         MultisigActorV3State,

	cidOf("fil/5/system"):           LotusType("systemActor"),
	cidOf("fil/5/init"):             InitActorV3State,
	cidOf("fil/5/cron"):             CronActorState,
	cidOf("fil/5/storagepower"):     StoragePowerActorV3State,
	cidOf("fil/5/storageminer"):     StorageMinerActorV5State,
	cidOf("fil/5/storagemarket"):    MarketActorV5State,
	cidOf("fil/5/paymentchannel"):   PaymentChannelActorV3State,
	cidOf("fil/5/reward"):           RewardActorV2State,
	cidOf("fil/5/verifiedregistry"): VerifiedRegistryActorV3State,
	cidOf("fil/5/account"):          AccountActorState,
	cidOf("fil/5/multisig"):         MultisigActorV3State,

	cidOf("fil/6/system"):           LotusType("systemActor"),
	cidOf("fil/6/init"):             InitActorV3State,
	cidOf("fil/6/cron"):             CronActorState,
	cidOf("fil/6/storagepower"):     StoragePowerActorV3State,
	cidOf("fil/6/storageminer"):     StorageMinerActorV5State,
	cidOf("fil/6/storagemarket"):    MarketActorV5State,
	cidOf("fil/6/paymentchannel"):   PaymentChannelActorV3State,
	cidOf("fil/6/reward"):           RewardActorV2State,
	cidOf("fil/6/verifiedregistry"): VerifiedRegistryActorV3State,
	cidOf("fil/6/account"):          AccountActorState,
	cidOf("fil/6/multisig"):         MultisigActorV3State,
}

LotusActorCodes for actor states

View Source
var LotusPrototypes = map[LotusType]ipld.NodePrototype{
	LotusTypeUnknown:                  types.Type.Any__Repr,
	LotusTypeTipset:                   types.Type.LotusBlockHeader__Repr,
	LotusVersionedStateroot:           types.Type.LotusStateRoot__Repr,
	LotusTypeMsgMeta:                  types.Type.LotusMsgMeta__Repr,
	LotusTypeMessage:                  lotusMessageMap,
	LotusTypeSignedMessage:            types.Type.LotusSignedMessage__Repr,
	AccountActorState:                 types.Type.AccountV0State__Repr,
	CronActorState:                    types.Type.CronV0State__Repr,
	InitActorState:                    types.Type.InitV0State__Repr,
	InitActorV3State:                  types.Type.InitV3State__Repr,
	MarketActorState:                  types.Type.MarketV0State__Repr,
	MarketActorV2State:                types.Type.MarketV2State__Repr,
	MarketActorV3State:                types.Type.MarketV3State__Repr,
	MultisigActorState:                types.Type.MultisigV0State__Repr,
	MultisigActorV3State:              types.Type.MultisigV3State__Repr,
	StorageMinerActorState:            types.Type.MinerV0State__Repr,
	StorageMinerActorInfo:             types.Type.MinerV0Info__Repr,
	StorageMinerActorVestingFunds:     types.Type.MinerV0VestingFunds__Repr,
	StorageMinerActorAllocatedSectors: types.Type.BitField__Repr,
	StorageMinerActorDeadlines:        types.Type.MinerV0Deadlines__Repr,
	StorageMinerActorDeadline:         types.Type.MinerV0Deadline__Repr,
	StorageMinerActorV2State:          types.Type.MinerV2State__Repr,
	StorageMinerActorV2Info:           types.Type.MinerV2Info__Repr,
	StorageMinerActorV2Deadlines:      types.Type.MinerV2Deadlines__Repr,
	StorageMinerActorV2Deadline:       types.Type.MinerV2Deadline__Repr,
	StorageMinerActorV3State:          types.Type.MinerV3State__Repr,
	StorageMinerActorV3Deadlines:      types.Type.MinerV3Deadlines__Repr,
	StorageMinerActorV3Deadline:       types.Type.MinerV3Deadline__Repr,
	StorageMinerActorV4State:          types.Type.MinerV4State__Repr,
	StorageMinerActorV5State:          types.Type.MinerV5State__Repr,
	StoragePowerActorState:            types.Type.PowerV0State__Repr,
	StoragePowerActorV2State:          types.Type.PowerV2State__Repr,
	StoragePowerActorV3State:          types.Type.PowerV3State__Repr,
	RewardActorState:                  types.Type.RewardV0State__Repr,
	RewardActorV2State:                types.Type.RewardV2State__Repr,
	VerifiedRegistryActorState:        types.Type.VerifregV0State__Repr,
	VerifiedRegistryActorV3State:      types.Type.VerifregV3State__Repr,
	PaymentChannelActorState:          types.Type.PaychV0State__Repr,
	PaymentChannelActorV3State:        types.Type.PaychV3State__Repr,

	LotusTypeMsgList:                           types.Type.List__LinkLotusMessage__Repr,
	LotusTypeStateroot:                         hamt.NewTypedHamt(types.Type.RawAddress__Repr, types.Type.LotusActors__Repr),
	InitActorAddresses:                         types.Type.Map__ActorID__Repr,
	InitActorV3Addresses:                       types.Type.Map__V3ActorID__Repr,
	StorageMinerActorPreCommittedSectors:       types.Type.Map__SectorPreCommitOnChainInfo__Repr,
	StorageMinerActorV3PreCommittedSectors:     types.Type.Map__V3SectorPreCommitOnChainInfo__Repr,
	StorageMinerActorDeadlinePartitionEarly:    types.Type.Map__BitField__Repr,
	StorageMinerActorV3DeadlinePartitionEarly:  types.Type.MapV3__BitField__Repr,
	StorageMinerActorPreCommittedSectorsExpiry: types.Type.Map__BitField__Repr,
	StorageMinerActorSectors:                   types.Type.Map__SectorOnChainInfo__Repr,
	StorageMinerActorV2Sectors:                 types.Type.Map__SectorV2OnChainInfo__Repr,
	StorageMinerActorV3Sectors:                 types.Type.Map__SectorV3OnChainInfo__Repr,
	StorageMinerActorDeadlinePartitions:        types.Type.Map__MinerV0Partition__Repr,
	StorageMinerActorV2DeadlinePartitions:      types.Type.Map__MinerV2Partition__Repr,
	StorageMinerActorV3DeadlinePartitions:      types.Type.Map__MinerV3Partition__Repr,
	StorageMinerActorDeadlinePartitionExpiry:   types.Type.Map__MinerV0ExpirationSet__Repr,
	StorageMinerActorV3DeadlinePartitionExpiry: types.Type.Map__MinerV3ExpirationSet__Repr,
	StorageMinerActorDeadlineExpiry:            types.Type.Map__BitField__Repr,
	StorageMinerActorV3DeadlineExpiry:          types.Type.MapV3__BitField__Repr,
	StoragePowerActorCronEventQueue:            types.Type.Multimap__PowerV0CronEvent__Repr,

	StoragePowerActorV3CronEventQueue:      types.Type.Multimap__PowerV3CronEvent__Repr,
	StoragePowerActorClaims:                types.Type.Map__PowerV0Claim__Repr,
	StoragePowerActorV2Claims:              types.Type.Map__PowerV2Claim__Repr,
	StoragePowerActorV3Claims:              types.Type.Map__PowerV3Claim__Repr,
	VerifiedRegistryActorVerifiers:         types.Type.Map__DataCap__Repr,
	VerifiedRegistryActorVerifiedClients:   types.Type.Map__DataCap__Repr,
	VerifiedRegistryActorV3Verifiers:       types.Type.Map__V3DataCap__Repr,
	VerifiedRegistryActorV3VerifiedClients: types.Type.Map__V3DataCap__Repr,
	MarketActorPendingProposals:            types.Type.Map__MarketV0DealProposal__Repr,
	MarketActorV2PendingProposals:          types.Type.Map__MarketV2DealProposal__Repr,
	MarketActorV3PendingProposals:          types.Type.Map__MarketV3DealProposal__Repr,
	MarketActorProposals:                   types.Type.Map__MarketV0RawDealProposal__Repr,
	MarketActorV2Proposals:                 types.Type.Map__MarketV2RawDealProposal__Repr,
	MarketActorV3Proposals:                 types.Type.Map__MarketV3RawDealProposal__Repr,
	MarketActorStates:                      types.Type.Map__MarketV0DealState__Repr,
	MarketActorV3States:                    types.Type.Map__MarketV3DealState__Repr,
	MarketActorEscrowTable:                 types.Type.Map__BalanceTable__Repr,
	MarketActorV3EscrowTable:               types.Type.Map__V3BalanceTable__Repr,
	MarketActorLockedTable:                 types.Type.Map__BalanceTable__Repr,
	MarketActorV3LockedTable:               types.Type.Map__V3BalanceTable__Repr,
	MarketActorDealOpsByEpoch:              types.Type.Map__List__DealID__Repr,
	MarketActorV3DealOpsByEpoch:            types.Type.MapV3__List__DealID__Repr,
	MultisigActorPending:                   types.Type.Map__MultisigV0Transaction__Repr,
	MultisigActorV3Pending:                 types.Type.Map__MultisigV3Transaction__Repr,
	PaymentChannelActorLaneStates:          types.Type.Map__PaychV0LaneState__Repr,
	PaymentChannelActorV3LaneStates:        types.Type.Map__PaychV3LaneState__Repr,
}

LotusPrototypes provide expected node types for each state type.

View Source
var LotusTypeAliases = map[string]LotusType{
	"tipset.ParentStateRoot":                                         LotusTypeStateroot,
	"initActor.AddressMap":                                           InitActorAddresses,
	"initActorV3.AddressMap":                                         InitActorV3Addresses,
	"storagePowerActor.CronEventQueue":                               StoragePowerActorCronEventQueue,
	"storagePowerActorV2.CronEventQueue":                             StoragePowerActorCronEventQueue,
	"storagePowerActorV3.CronEventQueue":                             StoragePowerActorV3CronEventQueue,
	"storagePowerActor.Claims":                                       StoragePowerActorClaims,
	"storagePowerActorV2.Claims":                                     StoragePowerActorV2Claims,
	"storagePowerActorV3.Claims":                                     StoragePowerActorV3Claims,
	"storageMarketActorV2.States":                                    MarketActorStates,
	"storageMarketActorV2.EscrowTable":                               MarketActorEscrowTable,
	"storageMarketActorV2.LockedTable":                               MarketActorLockedTable,
	"storageMarketActorV2.DealOpsByEpoch":                            MarketActorDealOpsByEpoch,
	"storageMinerActor.Deadlines.Due.ExpirationEpochs":               StorageMinerActorDeadlineExpiry,
	"storageMinerActor.Deadlines.Due.Partitions.ExpirationEpochs":    StorageMinerActorDeadlinePartitionExpiry,
	"storageMinerActorV2.PreCommittedSectors":                        StorageMinerActorPreCommittedSectors,
	"storageMinerActorV2.PreCommittedSectorsExpiry":                  StorageMinerActorPreCommittedSectorsExpiry,
	"storageMinerActorV2.AllocatedSectors":                           StorageMinerActorAllocatedSectors,
	"storageMinerActorV2.VestingFunds":                               StorageMinerActorVestingFunds,
	"storageMinerActorV2.Deadlines.Due.ExpirationEpochs":             StorageMinerActorDeadlineExpiry,
	"storageMinerActorV2.Deadlines.Due.Partitions.ExpirationsEpochs": StorageMinerActorDeadlinePartitionExpiry,
	"storageMinerActorV2.Deadlines.Due.Partitions.EarlyTerminated":   StorageMinerActorDeadlinePartitionEarly,
	"storageMinerActorV3.Info":                                       StorageMinerActorV2Info,
	"storageMinerActorV3.VestingFunds":                               StorageMinerActorVestingFunds,
	"storageMinerActorV3.AllocatedSectors":                           StorageMinerActorAllocatedSectors,
	"msgMeta.SecpkMessages":                                          LotusTypeMsgList,
}

LotusTypeAliases lists non-direct mapped aliases

View Source
var StateRootKey = "stateroot"

Functions

func Diff

func Diff(ctx context.Context, store blockstore.Blockstore, left, right ipld.Node) string

Diff provides a human readable difference between two ipld dags

func GetStateRoot added in v0.0.6

func GetStateRoot(ctx context.Context, c cid.Cid, store blockstore.Blockstore) (ipld.Node, error)

GetStateRoot gets a stateroot node from a cid The cid can be the block of a tipset, the stateroot itself, or the versioned stateroot

func LinkDest added in v0.0.6

func LinkDest(n ipld.Node) ipld.NodePrototype

LinkDest fills in a gap in current schema: what type does a `LinkReference` point to

func Load added in v0.0.6

Load will load c into a given assembler.

func ParamFor added in v0.0.6

func ParamFor(destType LotusType, msg ipld.Node) (ipld.Node, string, error)

func ParseParams added in v0.0.6

func ParseParams(params []byte, method int64, destType LotusType) (ipld.Node, string, error)

func StoreFor

func StoreFor(ctx context.Context, client api.FullNode) blockstore.Blockstore

StoreFor creates a blockstore proxying access to a lotus node.

func Transform added in v0.0.2

func Transform(ctx context.Context, c cid.Cid, store blockstore.Blockstore, as string) (ipld.Node, error)

Transform will unmarshal cbor data based on a provided type hint.

func TypeActorHead added in v0.0.6

func TypeActorHead(actor ipld.Node) (ipld.Node, error)

TypeActorHead takes a LotusActor node, and returns a `Link__<actortype>State` link reference corresponding to the untyped `Head` Link when the type can be inferred from the `Code` of the actor.

func TypeOfActor added in v0.0.6

func TypeOfActor(stateroot ipld.Node, actor string) (string, error)

TypeOfActor returns the type a given actor will be based on its binary address and stateroot.

Types

type CBORBytes added in v0.0.6

type CBORBytes []byte

CBORBytes wraps already-serialized bytes as CBOR-marshalable.

func (CBORBytes) MarshalCBOR added in v0.0.6

func (b CBORBytes) MarshalCBOR(w io.Writer) error

MarshalCBOR turns these bytes into cbor-prefixed

func (*CBORBytes) UnmarshalCBOR added in v0.0.6

func (b *CBORBytes) UnmarshalCBOR(r io.Reader) error

UnmarshalCBOR reads the bytes.

type Loader added in v0.0.6

Loader is the conformer for our wrapper around ADLs

type LotusBS added in v0.0.23

type LotusBS struct {
	ibs.Blockstore
}

func (*LotusBS) DeleteMany added in v0.0.23

func (*LotusBS) DeleteMany([]cid.Cid) error

func (*LotusBS) View added in v0.0.23

func (l *LotusBS) View(c cid.Cid, f func([]byte) error) error

type LotusType added in v0.0.2

type LotusType string

LotusType represents known types

const (
	LotusTypeUnknown                           LotusType = "unknown"
	LotusTypeTipset                            LotusType = "tipset"
	LotusTypeMsgMeta                           LotusType = "msgMeta"
	LotusTypeMsgList                           LotusType = "msgMeta.BlsMessages"
	LotusTypeMessage                           LotusType = "msgMeta.BlsMessages[]"
	LotusTypeSignedMessage                     LotusType = "msgMeta.SecpkMessages[]"
	LotusTypeStateroot                         LotusType = "stateRoot"
	LotusVersionedStateroot                    LotusType = "versionedStateRoot"
	AccountActorState                          LotusType = "accountActor"
	CronActorState                             LotusType = "cronActor"
	InitActorState                             LotusType = "initActor"
	InitActorV3State                           LotusType = "initActorV3"
	InitActorAddresses                         LotusType = "initActorAddresses"
	InitActorV3Addresses                       LotusType = "initActorV3Addresses"
	MarketActorState                           LotusType = "storageMarketActor"
	MarketActorV2State                         LotusType = "storageMarketActorV2"
	MarketActorV3State                         LotusType = "storageMarketActorV3"
	MarketActorV5State                         LotusType = "storageMarketActorV5"
	MarketActorProposals                       LotusType = "storageMarketActor.Proposals"
	MarketActorV2Proposals                     LotusType = "storageMarketActorV2.Proposals"
	MarketActorV3Proposals                     LotusType = "storageMarketActorV3.Proposals"
	MarketActorStates                          LotusType = "storageMarketActor.States"
	MarketActorV3States                        LotusType = "storageMarketActorV3.States"
	MarketActorPendingProposals                LotusType = "storageMarketActor.PendingProposals"
	MarketActorV2PendingProposals              LotusType = "storageMarketActorV2.PendingProposals"
	MarketActorV3PendingProposals              LotusType = "storageMarketActorV3.PendingProposals"
	MarketActorEscrowTable                     LotusType = "storageMarketActor.EscrowTable"
	MarketActorLockedTable                     LotusType = "storageMarketActor.LockedTable"
	MarketActorV3EscrowTable                   LotusType = "storageMarketActorV3.EscrowTable"
	MarketActorV3LockedTable                   LotusType = "storageMarketActorV3.LockedTable"
	MarketActorDealOpsByEpoch                  LotusType = "storageMarketActor.DealOpsByEpoch"
	MarketActorV3DealOpsByEpoch                LotusType = "storageMarketActorV3.DealOpsByEpoch"
	MultisigActorState                         LotusType = "multisigActor"
	MultisigActorV3State                       LotusType = "multisigActorV3"
	MultisigActorPending                       LotusType = "multisigActor.PendingTxns"
	MultisigActorV3Pending                     LotusType = "multisigActorV3.PendingTxns"
	StorageMinerActorState                     LotusType = "storageMinerActor"
	StorageMinerActorInfo                      LotusType = "storageMinerActor.Info"
	StorageMinerActorVestingFunds              LotusType = "storageMinerActor.VestingFunds"
	StorageMinerActorPreCommittedSectors       LotusType = "storageMinerActor.PreCommittedSectors"
	StorageMinerActorV3PreCommittedSectors     LotusType = "storageMinerActorV3.PreCommittedSectors"
	StorageMinerActorPreCommittedSectorsExpiry LotusType = "storageMinerActor.PreCommittedSectorsExpiry"
	StorageMinerActorAllocatedSectors          LotusType = "storageMinerActor.AllocatedSectors"
	StorageMinerActorSectors                   LotusType = "storageMinerActor.Sectors"
	StorageMinerActorV2Sectors                 LotusType = "storageMinerActorV2.Sectors"
	StorageMinerActorV3Sectors                 LotusType = "storageMinerActorV3.Sectors"
	StorageMinerActorDeadlines                 LotusType = "storageMinerActor.Deadlines"
	StorageMinerActorDeadline                  LotusType = "storageMinerActor.Deadlines.Due[]"
	StorageMinerActorDeadlinePartitions        LotusType = "storageMinerActor.Deadlines.Due.Partitions"
	StorageMinerActorDeadlinePartitionExpiry   LotusType = "storageMinerActor.Deadlines.Due.Partitions.ExpirationsEpochs"
	StorageMinerActorDeadlinePartitionEarly    LotusType = "storageMinerActor.Deadlines.Due.Partitions.EarlyTerminated"
	StorageMinerActorDeadlineExpiry            LotusType = "storageMinerActor.Deadlines.Due.ExpirationsEpochs"
	StorageMinerActorV2State                   LotusType = "storageMinerActorV2"
	StorageMinerActorV2Info                    LotusType = "storageMinerActorV2.Info"
	StorageMinerActorV2Deadlines               LotusType = "storageMinerActorV2.Deadlines"
	StorageMinerActorV2Deadline                LotusType = "storageMinerActorV2.Deadlines.Due[]"
	StorageMinerActorV2DeadlinePartitions      LotusType = "storageMinerActorV2.Deadlines.Due.Partitions"
	StorageMinerActorV3State                   LotusType = "storageMinerActorV3"
	StorageMinerActorV3Deadlines               LotusType = "storageMinerActorV3.Deadlines"
	StorageMinerActorV3Deadline                LotusType = "storageMinerActorV3.Deadlines.Due[]"
	StorageMinerActorV3DeadlineExpiry          LotusType = "storageMinerActorV3.Deadlines.Due.ExpirationsEpochs"
	StorageMinerActorV3DeadlinePartitions      LotusType = "storageMinerActorV3.Deadlines.Due.Partitions"
	StorageMinerActorV3DeadlinePartitionExpiry LotusType = "storageMinerActorV3.Deadlines.Due.Partitions.ExpirationsEpochs"
	StorageMinerActorV3DeadlinePartitionEarly  LotusType = "storageMinerActorV3.Deadlines.Due.Partitions.EarlyTerminated"
	StorageMinerActorV4State                   LotusType = "storageMinerActorV4"
	StorageMinerActorV5State                   LotusType = "storageMinerActorV5"
	StoragePowerActorState                     LotusType = "storagePowerActor"
	StoragePowerActorV2State                   LotusType = "storagePowerActorV2"
	StoragePowerActorV3State                   LotusType = "storagePowerActorV3"
	StoragePowerActorCronEventQueue            LotusType = "storagePowerCronEventQueue"
	StoragePowerActorV3CronEventQueue          LotusType = "storagePowerV3CronEventQueue"
	StoragePowerActorClaims                    LotusType = "storagePowerClaims"
	StoragePowerActorV2Claims                  LotusType = "storagePowerClaimsV2"
	StoragePowerActorV3Claims                  LotusType = "storagePowerClaimsV3"
	RewardActorState                           LotusType = "rewardActor"
	RewardActorV2State                         LotusType = "rewardActorV2"
	VerifiedRegistryActorState                 LotusType = "verifiedRegistryActor"
	VerifiedRegistryActorVerifiers             LotusType = "verifiedRegistryActor.Verifiers"
	VerifiedRegistryActorVerifiedClients       LotusType = "verifiedRegistryActor.VerifiedClients"
	VerifiedRegistryActorV3State               LotusType = "verifiedRegistryActorV3"
	VerifiedRegistryActorV3Verifiers           LotusType = "verifiedRegistryActorV3.Verifiers"
	VerifiedRegistryActorV3VerifiedClients     LotusType = "verifiedRegistryActorV3.VerifiedClients"
	PaymentChannelActorState                   LotusType = "paymentChannelActor"
	PaymentChannelActorLaneStates              LotusType = "paymentChannelActor.LaneStates"
	PaymentChannelActorV3State                 LotusType = "paymentChannelActorV3"
	PaymentChannelActorV3LaneStates            LotusType = "paymentChannelActorV3.LaneStates"
)

LotusType enum

func ResolveType added in v0.0.6

func ResolveType(as string) LotusType

ResolveType maps incoming type strings to enum known types

type NodeCache added in v0.0.13

type NodeCache struct {
	// contains filtered or unexported fields
}

func GetGlobalNodeCache added in v0.0.13

func GetGlobalNodeCache() *NodeCache

func NewNodeCache added in v0.0.13

func NewNodeCache(size int) *NodeCache

func (*NodeCache) Add added in v0.0.13

func (nc *NodeCache) Add(key string, n ipld.Node)

func (*NodeCache) Get added in v0.0.13

func (nc *NodeCache) Get(key string) ipld.Node

type Ref added in v0.0.6

type Ref struct {
	ipld.Node
}

Ref is an indirection to help goCmp deal with the multiple transformations involved in resolving an ipld Link

type StateRootFunc added in v0.0.6

type StateRootFunc func(context.Context) []cid.Cid

Directories

Path Synopsis
gen command
cmd
statediff command
statedump command
stateexplorer command
stateql command
codec
extern
fil-ledger module
filecoin-ffi module
lib
establish connection to a 'FullNode' filecoin API with cli configuration.
establish connection to a 'FullNode' filecoin API with cli configuration.
gen command

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL