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

func Load(ctx context.Context, c cid.Cid, store blockstore.Blockstore, into ipld.NodeAssembler) error

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

type Loader func(context.Context, cid.Cid, blockstore.Blockstore, ipld.NodeAssembler) error

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
cmd
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

Jump to

Keyboard shortcuts

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