github.com/ipfs/libipfs/blocks was unmigrated to github.com/ipfs/go-block-format due to compatibility issues with the rest of the IPLD stack.
		
			
				
	
	
		
			777 lines
		
	
	
		
			50 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			777 lines
		
	
	
		
			50 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package v0api
 | 
						|
 | 
						|
import (
 | 
						|
	"context"
 | 
						|
 | 
						|
	blocks "github.com/ipfs/go-block-format"
 | 
						|
	"github.com/ipfs/go-cid"
 | 
						|
	textselector "github.com/ipld/go-ipld-selector-text-lite"
 | 
						|
	"github.com/libp2p/go-libp2p/core/peer"
 | 
						|
 | 
						|
	"github.com/filecoin-project/go-address"
 | 
						|
	"github.com/filecoin-project/go-bitfield"
 | 
						|
	datatransfer "github.com/filecoin-project/go-data-transfer/v2"
 | 
						|
	"github.com/filecoin-project/go-fil-markets/retrievalmarket"
 | 
						|
	"github.com/filecoin-project/go-fil-markets/storagemarket"
 | 
						|
	"github.com/filecoin-project/go-state-types/abi"
 | 
						|
	"github.com/filecoin-project/go-state-types/builtin/v8/paych"
 | 
						|
	"github.com/filecoin-project/go-state-types/builtin/v9/miner"
 | 
						|
	verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
 | 
						|
	"github.com/filecoin-project/go-state-types/crypto"
 | 
						|
	"github.com/filecoin-project/go-state-types/dline"
 | 
						|
	abinetwork "github.com/filecoin-project/go-state-types/network"
 | 
						|
 | 
						|
	"github.com/filecoin-project/lotus/api"
 | 
						|
	apitypes "github.com/filecoin-project/lotus/api/types"
 | 
						|
	lminer "github.com/filecoin-project/lotus/chain/actors/builtin/miner"
 | 
						|
	"github.com/filecoin-project/lotus/chain/types"
 | 
						|
	marketevents "github.com/filecoin-project/lotus/markets/loggers"
 | 
						|
	"github.com/filecoin-project/lotus/node/modules/dtypes"
 | 
						|
	"github.com/filecoin-project/lotus/node/repo/imports"
 | 
						|
)
 | 
						|
 | 
						|
//go:generate go run github.com/golang/mock/mockgen -destination=v0mocks/mock_full.go -package=v0mocks . FullNode
 | 
						|
 | 
						|
//                       MODIFYING THE API INTERFACE
 | 
						|
//
 | 
						|
// NOTE: This is the V0 (Stable) API - when adding methods to this interface,
 | 
						|
// you'll need to make sure they are also present on the V1 (Unstable) API
 | 
						|
//
 | 
						|
// This API is implemented in `v1_wrapper.go` as a compatibility layer backed
 | 
						|
// by the V1 api
 | 
						|
//
 | 
						|
// When adding / changing methods in this file:
 | 
						|
// * Do the change here
 | 
						|
// * Adjust implementation in `node/impl/`
 | 
						|
// * Run `make gen` - this will:
 | 
						|
//  * Generate proxy structs
 | 
						|
//  * Generate mocks
 | 
						|
//  * Generate markdown docs
 | 
						|
//  * Generate openrpc blobs
 | 
						|
 | 
						|
// FullNode API is a low-level interface to the Filecoin network full node
 | 
						|
type FullNode interface {
 | 
						|
	Common
 | 
						|
	Net
 | 
						|
 | 
						|
	// MethodGroup: Chain
 | 
						|
	// The Chain method group contains methods for interacting with the
 | 
						|
	// blockchain, but that do not require any form of state computation.
 | 
						|
 | 
						|
	// ChainNotify returns channel with chain head updates.
 | 
						|
	// First message is guaranteed to be of len == 1, and type == 'current'.
 | 
						|
	ChainNotify(context.Context) (<-chan []*api.HeadChange, error) //perm:read
 | 
						|
 | 
						|
	// ChainHead returns the current head of the chain.
 | 
						|
	ChainHead(context.Context) (*types.TipSet, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetRandomnessFromTickets is used to sample the chain for randomness.
 | 
						|
	ChainGetRandomnessFromTickets(ctx context.Context, tsk types.TipSetKey, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte) (abi.Randomness, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetRandomnessFromBeacon is used to sample the beacon for randomness.
 | 
						|
	ChainGetRandomnessFromBeacon(ctx context.Context, tsk types.TipSetKey, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte) (abi.Randomness, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetBlock returns the block specified by the given CID.
 | 
						|
	ChainGetBlock(context.Context, cid.Cid) (*types.BlockHeader, error) //perm:read
 | 
						|
	// ChainGetTipSet returns the tipset specified by the given TipSetKey.
 | 
						|
	ChainGetTipSet(context.Context, types.TipSetKey) (*types.TipSet, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetBlockMessages returns messages stored in the specified block.
 | 
						|
	//
 | 
						|
	// Note: If there are multiple blocks in a tipset, it's likely that some
 | 
						|
	// messages will be duplicated. It's also possible for blocks in a tipset to have
 | 
						|
	// different messages from the same sender at the same nonce. When that happens,
 | 
						|
	// only the first message (in a block with lowest ticket) will be considered
 | 
						|
	// for execution
 | 
						|
	//
 | 
						|
	// NOTE: THIS METHOD SHOULD ONLY BE USED FOR GETTING MESSAGES IN A SPECIFIC BLOCK
 | 
						|
	//
 | 
						|
	// DO NOT USE THIS METHOD TO GET MESSAGES INCLUDED IN A TIPSET
 | 
						|
	// Use ChainGetParentMessages, which will perform correct message deduplication
 | 
						|
	ChainGetBlockMessages(ctx context.Context, blockCid cid.Cid) (*api.BlockMessages, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetParentReceipts returns receipts for messages in parent tipset of
 | 
						|
	// the specified block. The receipts in the list returned is one-to-one with the
 | 
						|
	// messages returned by a call to ChainGetParentMessages with the same blockCid.
 | 
						|
	ChainGetParentReceipts(ctx context.Context, blockCid cid.Cid) ([]*types.MessageReceipt, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetParentMessages returns messages stored in parent tipset of the
 | 
						|
	// specified block.
 | 
						|
	ChainGetParentMessages(ctx context.Context, blockCid cid.Cid) ([]api.Message, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetMessagesInTipset returns message stores in current tipset
 | 
						|
	ChainGetMessagesInTipset(ctx context.Context, tsk types.TipSetKey) ([]api.Message, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetTipSetByHeight looks back for a tipset at the specified epoch.
 | 
						|
	// If there are no blocks at the specified epoch, a tipset at an earlier epoch
 | 
						|
	// will be returned.
 | 
						|
	ChainGetTipSetByHeight(context.Context, abi.ChainEpoch, types.TipSetKey) (*types.TipSet, error) //perm:read
 | 
						|
 | 
						|
	// ChainReadObj reads ipld nodes referenced by the specified CID from chain
 | 
						|
	// blockstore and returns raw bytes.
 | 
						|
	ChainReadObj(context.Context, cid.Cid) ([]byte, error) //perm:read
 | 
						|
 | 
						|
	// ChainDeleteObj deletes node referenced by the given CID
 | 
						|
	ChainDeleteObj(context.Context, cid.Cid) error //perm:admin
 | 
						|
 | 
						|
	// ChainPutObj puts and object into the blockstore
 | 
						|
	ChainPutObj(context.Context, blocks.Block) error
 | 
						|
 | 
						|
	// ChainHasObj checks if a given CID exists in the chain blockstore.
 | 
						|
	ChainHasObj(context.Context, cid.Cid) (bool, error) //perm:read
 | 
						|
 | 
						|
	// ChainStatObj returns statistics about the graph referenced by 'obj'.
 | 
						|
	// If 'base' is also specified, then the returned stat will be a diff
 | 
						|
	// between the two objects.
 | 
						|
	ChainStatObj(ctx context.Context, obj cid.Cid, base cid.Cid) (api.ObjStat, error) //perm:read
 | 
						|
 | 
						|
	// ChainSetHead forcefully sets current chain head. Use with caution.
 | 
						|
	ChainSetHead(context.Context, types.TipSetKey) error //perm:admin
 | 
						|
 | 
						|
	// ChainGetGenesis returns the genesis tipset.
 | 
						|
	ChainGetGenesis(context.Context) (*types.TipSet, error) //perm:read
 | 
						|
 | 
						|
	// ChainTipSetWeight computes weight for the specified tipset.
 | 
						|
	ChainTipSetWeight(context.Context, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
	ChainGetNode(ctx context.Context, p string) (*api.IpldObject, error)      //perm:read
 | 
						|
 | 
						|
	// ChainGetMessage reads a message referenced by the specified CID from the
 | 
						|
	// chain blockstore.
 | 
						|
	ChainGetMessage(context.Context, cid.Cid) (*types.Message, error) //perm:read
 | 
						|
 | 
						|
	// ChainGetPath returns a set of revert/apply operations needed to get from
 | 
						|
	// one tipset to another, for example:
 | 
						|
	// ```
 | 
						|
	//        to
 | 
						|
	//         ^
 | 
						|
	// from   tAA
 | 
						|
	//   ^     ^
 | 
						|
	// tBA    tAB
 | 
						|
	//  ^---*--^
 | 
						|
	//      ^
 | 
						|
	//     tRR
 | 
						|
	// ```
 | 
						|
	// Would return `[revert(tBA), apply(tAB), apply(tAA)]`
 | 
						|
	ChainGetPath(ctx context.Context, from types.TipSetKey, to types.TipSetKey) ([]*api.HeadChange, error) //perm:read
 | 
						|
 | 
						|
	// ChainExport returns a stream of bytes with CAR dump of chain data.
 | 
						|
	// The exported chain data includes the header chain from the given tipset
 | 
						|
	// back to genesis, the entire genesis state, and the most recent 'nroots'
 | 
						|
	// state trees.
 | 
						|
	// If oldmsgskip is set, messages from before the requested roots are also not included.
 | 
						|
	ChainExport(ctx context.Context, nroots abi.ChainEpoch, oldmsgskip bool, tsk types.TipSetKey) (<-chan []byte, error) //perm:read
 | 
						|
 | 
						|
	// MethodGroup: Beacon
 | 
						|
	// The Beacon method group contains methods for interacting with the random beacon (DRAND)
 | 
						|
 | 
						|
	// BeaconGetEntry returns the beacon entry for the given filecoin epoch. If
 | 
						|
	// the entry has not yet been produced, the call will block until the entry
 | 
						|
	// becomes available
 | 
						|
	BeaconGetEntry(ctx context.Context, epoch abi.ChainEpoch) (*types.BeaconEntry, error) //perm:read
 | 
						|
 | 
						|
	// GasEstimateFeeCap estimates gas fee cap
 | 
						|
	GasEstimateFeeCap(context.Context, *types.Message, int64, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
 | 
						|
	// GasEstimateGasLimit estimates gas used by the message and returns it.
 | 
						|
	// It fails if message fails to execute.
 | 
						|
	GasEstimateGasLimit(context.Context, *types.Message, types.TipSetKey) (int64, error) //perm:read
 | 
						|
 | 
						|
	// GasEstimateGasPremium estimates what gas price should be used for a
 | 
						|
	// message to have high likelihood of inclusion in `nblocksincl` epochs.
 | 
						|
 | 
						|
	GasEstimateGasPremium(_ context.Context, nblocksincl uint64,
 | 
						|
		sender address.Address, gaslimit int64, tsk types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
 | 
						|
	// GasEstimateMessageGas estimates gas values for unset message gas fields
 | 
						|
	GasEstimateMessageGas(context.Context, *types.Message, *api.MessageSendSpec, types.TipSetKey) (*types.Message, error) //perm:read
 | 
						|
 | 
						|
	// MethodGroup: Sync
 | 
						|
	// The Sync method group contains methods for interacting with and
 | 
						|
	// observing the lotus sync service.
 | 
						|
 | 
						|
	// SyncState returns the current status of the lotus sync system.
 | 
						|
	SyncState(context.Context) (*api.SyncState, error) //perm:read
 | 
						|
 | 
						|
	// SyncSubmitBlock can be used to submit a newly created block to the.
 | 
						|
	// network through this node
 | 
						|
	SyncSubmitBlock(ctx context.Context, blk *types.BlockMsg) error //perm:write
 | 
						|
 | 
						|
	// SyncIncomingBlocks returns a channel streaming incoming, potentially not
 | 
						|
	// yet synced block headers.
 | 
						|
	SyncIncomingBlocks(ctx context.Context) (<-chan *types.BlockHeader, error) //perm:read
 | 
						|
 | 
						|
	// SyncCheckpoint marks a blocks as checkpointed, meaning that it won't ever fork away from it.
 | 
						|
	SyncCheckpoint(ctx context.Context, tsk types.TipSetKey) error //perm:admin
 | 
						|
 | 
						|
	// SyncMarkBad marks a blocks as bad, meaning that it won't ever by synced.
 | 
						|
	// Use with extreme caution.
 | 
						|
	SyncMarkBad(ctx context.Context, bcid cid.Cid) error //perm:admin
 | 
						|
 | 
						|
	// SyncUnmarkBad unmarks a blocks as bad, making it possible to be validated and synced again.
 | 
						|
	SyncUnmarkBad(ctx context.Context, bcid cid.Cid) error //perm:admin
 | 
						|
 | 
						|
	// SyncUnmarkAllBad purges bad block cache, making it possible to sync to chains previously marked as bad
 | 
						|
	SyncUnmarkAllBad(ctx context.Context) error //perm:admin
 | 
						|
 | 
						|
	// SyncCheckBad checks if a block was marked as bad, and if it was, returns
 | 
						|
	// the reason.
 | 
						|
	SyncCheckBad(ctx context.Context, bcid cid.Cid) (string, error) //perm:read
 | 
						|
 | 
						|
	// SyncValidateTipset indicates whether the provided tipset is valid or not
 | 
						|
	SyncValidateTipset(ctx context.Context, tsk types.TipSetKey) (bool, error) //perm:read
 | 
						|
 | 
						|
	// MethodGroup: Mpool
 | 
						|
	// The Mpool methods are for interacting with the message pool. The message pool
 | 
						|
	// manages all incoming and outgoing 'messages' going over the network.
 | 
						|
 | 
						|
	// MpoolPending returns pending mempool messages.
 | 
						|
	MpoolPending(context.Context, types.TipSetKey) ([]*types.SignedMessage, error) //perm:read
 | 
						|
 | 
						|
	// MpoolSelect returns a list of pending messages for inclusion in the next block
 | 
						|
	MpoolSelect(context.Context, types.TipSetKey, float64) ([]*types.SignedMessage, error) //perm:read
 | 
						|
 | 
						|
	// MpoolPush pushes a signed message to mempool.
 | 
						|
	MpoolPush(context.Context, *types.SignedMessage) (cid.Cid, error) //perm:write
 | 
						|
 | 
						|
	// MpoolPushUntrusted pushes a signed message to mempool from untrusted sources.
 | 
						|
	MpoolPushUntrusted(context.Context, *types.SignedMessage) (cid.Cid, error) //perm:write
 | 
						|
 | 
						|
	// MpoolPushMessage atomically assigns a nonce, signs, and pushes a message
 | 
						|
	// to mempool.
 | 
						|
	// maxFee is only used when GasFeeCap/GasPremium fields aren't specified
 | 
						|
	//
 | 
						|
	// When maxFee is set to 0, MpoolPushMessage will guess appropriate fee
 | 
						|
	// based on current chain conditions
 | 
						|
	MpoolPushMessage(ctx context.Context, msg *types.Message, spec *api.MessageSendSpec) (*types.SignedMessage, error) //perm:sign
 | 
						|
 | 
						|
	// MpoolBatchPush batch pushes a signed message to mempool.
 | 
						|
	MpoolBatchPush(context.Context, []*types.SignedMessage) ([]cid.Cid, error) //perm:write
 | 
						|
 | 
						|
	// MpoolBatchPushUntrusted batch pushes a signed message to mempool from untrusted sources.
 | 
						|
	MpoolBatchPushUntrusted(context.Context, []*types.SignedMessage) ([]cid.Cid, error) //perm:write
 | 
						|
 | 
						|
	// MpoolBatchPushMessage batch pushes a unsigned message to mempool.
 | 
						|
	MpoolBatchPushMessage(context.Context, []*types.Message, *api.MessageSendSpec) ([]*types.SignedMessage, error) //perm:sign
 | 
						|
 | 
						|
	// MpoolGetNonce gets next nonce for the specified sender.
 | 
						|
	// Note that this method may not be atomic. Use MpoolPushMessage instead.
 | 
						|
	MpoolGetNonce(context.Context, address.Address) (uint64, error) //perm:read
 | 
						|
	MpoolSub(context.Context) (<-chan api.MpoolUpdate, error)       //perm:read
 | 
						|
 | 
						|
	// MpoolClear clears pending messages from the mpool
 | 
						|
	MpoolClear(context.Context, bool) error //perm:write
 | 
						|
 | 
						|
	// MpoolGetConfig returns (a copy of) the current mpool config
 | 
						|
	MpoolGetConfig(context.Context) (*types.MpoolConfig, error) //perm:read
 | 
						|
	// MpoolSetConfig sets the mpool config to (a copy of) the supplied config
 | 
						|
	MpoolSetConfig(context.Context, *types.MpoolConfig) error //perm:admin
 | 
						|
 | 
						|
	// MethodGroup: Miner
 | 
						|
 | 
						|
	MinerGetBaseInfo(context.Context, address.Address, abi.ChainEpoch, types.TipSetKey) (*api.MiningBaseInfo, error) //perm:read
 | 
						|
	MinerCreateBlock(context.Context, *api.BlockTemplate) (*types.BlockMsg, error)                                   //perm:write
 | 
						|
 | 
						|
	// // UX ?
 | 
						|
 | 
						|
	// MethodGroup: Wallet
 | 
						|
 | 
						|
	// WalletNew creates a new address in the wallet with the given sigType.
 | 
						|
	// Available key types: bls, secp256k1, secp256k1-ledger
 | 
						|
	// Support for numerical types: 1 - secp256k1, 2 - BLS is deprecated
 | 
						|
	WalletNew(context.Context, types.KeyType) (address.Address, error) //perm:write
 | 
						|
	// WalletHas indicates whether the given address is in the wallet.
 | 
						|
	WalletHas(context.Context, address.Address) (bool, error) //perm:write
 | 
						|
	// WalletList lists all the addresses in the wallet.
 | 
						|
	WalletList(context.Context) ([]address.Address, error) //perm:write
 | 
						|
	// WalletBalance returns the balance of the given address at the current head of the chain.
 | 
						|
	WalletBalance(context.Context, address.Address) (types.BigInt, error) //perm:read
 | 
						|
	// WalletSign signs the given bytes using the given address.
 | 
						|
	WalletSign(context.Context, address.Address, []byte) (*crypto.Signature, error) //perm:sign
 | 
						|
	// WalletSignMessage signs the given message using the given address.
 | 
						|
	WalletSignMessage(context.Context, address.Address, *types.Message) (*types.SignedMessage, error) //perm:sign
 | 
						|
	// WalletVerify takes an address, a signature, and some bytes, and indicates whether the signature is valid.
 | 
						|
	// The address does not have to be in the wallet.
 | 
						|
	WalletVerify(context.Context, address.Address, []byte, *crypto.Signature) (bool, error) //perm:read
 | 
						|
	// WalletDefaultAddress returns the address marked as default in the wallet.
 | 
						|
	WalletDefaultAddress(context.Context) (address.Address, error) //perm:write
 | 
						|
	// WalletSetDefault marks the given address as as the default one.
 | 
						|
	WalletSetDefault(context.Context, address.Address) error //perm:write
 | 
						|
	// WalletExport returns the private key of an address in the wallet.
 | 
						|
	WalletExport(context.Context, address.Address) (*types.KeyInfo, error) //perm:admin
 | 
						|
	// WalletImport receives a KeyInfo, which includes a private key, and imports it into the wallet.
 | 
						|
	WalletImport(context.Context, *types.KeyInfo) (address.Address, error) //perm:admin
 | 
						|
	// WalletDelete deletes an address from the wallet.
 | 
						|
	WalletDelete(context.Context, address.Address) error //perm:admin
 | 
						|
	// WalletValidateAddress validates whether a given string can be decoded as a well-formed address
 | 
						|
	WalletValidateAddress(context.Context, string) (address.Address, error) //perm:read
 | 
						|
 | 
						|
	// Other
 | 
						|
 | 
						|
	// MethodGroup: Client
 | 
						|
	// The Client methods all have to do with interacting with the storage and
 | 
						|
	// retrieval markets as a client
 | 
						|
 | 
						|
	// ClientImport imports file under the specified path into filestore.
 | 
						|
	ClientImport(ctx context.Context, ref api.FileRef) (*api.ImportRes, error) //perm:admin
 | 
						|
	// ClientRemoveImport removes file import
 | 
						|
	ClientRemoveImport(ctx context.Context, importID imports.ID) error //perm:admin
 | 
						|
	// ClientStartDeal proposes a deal with a miner.
 | 
						|
	ClientStartDeal(ctx context.Context, params *api.StartDealParams) (*cid.Cid, error) //perm:admin
 | 
						|
	// ClientStatelessDeal fire-and-forget-proposes an offline deal to a miner without subsequent tracking.
 | 
						|
	ClientStatelessDeal(ctx context.Context, params *api.StartDealParams) (*cid.Cid, error) //perm:write
 | 
						|
	// ClientGetDealInfo returns the latest information about a given deal.
 | 
						|
	ClientGetDealInfo(context.Context, cid.Cid) (*api.DealInfo, error) //perm:read
 | 
						|
	// ClientListDeals returns information about the deals made by the local client.
 | 
						|
	ClientListDeals(ctx context.Context) ([]api.DealInfo, error) //perm:write
 | 
						|
	// ClientGetDealUpdates returns the status of updated deals
 | 
						|
	ClientGetDealUpdates(ctx context.Context) (<-chan api.DealInfo, error) //perm:write
 | 
						|
	// ClientGetDealStatus returns status given a code
 | 
						|
	ClientGetDealStatus(ctx context.Context, statusCode uint64) (string, error) //perm:read
 | 
						|
	// ClientHasLocal indicates whether a certain CID is locally stored.
 | 
						|
	ClientHasLocal(ctx context.Context, root cid.Cid) (bool, error) //perm:write
 | 
						|
	// ClientFindData identifies peers that have a certain file, and returns QueryOffers (one per peer).
 | 
						|
	ClientFindData(ctx context.Context, root cid.Cid, piece *cid.Cid) ([]api.QueryOffer, error) //perm:read
 | 
						|
	// ClientMinerQueryOffer returns a QueryOffer for the specific miner and file.
 | 
						|
	ClientMinerQueryOffer(ctx context.Context, miner address.Address, root cid.Cid, piece *cid.Cid) (api.QueryOffer, error) //perm:read
 | 
						|
	// ClientRetrieve initiates the retrieval of a file, as specified in the order.
 | 
						|
	ClientRetrieve(ctx context.Context, order RetrievalOrder, ref *api.FileRef) error //perm:admin
 | 
						|
	// ClientRetrieveWithEvents initiates the retrieval of a file, as specified in the order, and provides a channel
 | 
						|
	// of status updates.
 | 
						|
	ClientRetrieveWithEvents(ctx context.Context, order RetrievalOrder, ref *api.FileRef) (<-chan marketevents.RetrievalEvent, error) //perm:admin
 | 
						|
	// ClientQueryAsk returns a signed StorageAsk from the specified miner.
 | 
						|
	// ClientListRetrievals returns information about retrievals made by the local client
 | 
						|
	ClientListRetrievals(ctx context.Context) ([]api.RetrievalInfo, error) //perm:write
 | 
						|
	// ClientGetRetrievalUpdates returns status of updated retrieval deals
 | 
						|
	ClientGetRetrievalUpdates(ctx context.Context) (<-chan api.RetrievalInfo, error)                         //perm:write
 | 
						|
	ClientQueryAsk(ctx context.Context, p peer.ID, miner address.Address) (*storagemarket.StorageAsk, error) //perm:read
 | 
						|
	// ClientCalcCommP calculates the CommP and data size of the specified CID
 | 
						|
	ClientDealPieceCID(ctx context.Context, root cid.Cid) (api.DataCIDSize, error) //perm:read
 | 
						|
	// ClientCalcCommP calculates the CommP for a specified file
 | 
						|
	ClientCalcCommP(ctx context.Context, inpath string) (*api.CommPRet, error) //perm:write
 | 
						|
	// ClientGenCar generates a CAR file for the specified file.
 | 
						|
	ClientGenCar(ctx context.Context, ref api.FileRef, outpath string) error //perm:write
 | 
						|
	// ClientDealSize calculates real deal data size
 | 
						|
	ClientDealSize(ctx context.Context, root cid.Cid) (api.DataSize, error) //perm:read
 | 
						|
	// ClientListTransfers returns the status of all ongoing transfers of data
 | 
						|
	ClientListDataTransfers(ctx context.Context) ([]api.DataTransferChannel, error)        //perm:write
 | 
						|
	ClientDataTransferUpdates(ctx context.Context) (<-chan api.DataTransferChannel, error) //perm:write
 | 
						|
	// ClientRestartDataTransfer attempts to restart a data transfer with the given transfer ID and other peer
 | 
						|
	ClientRestartDataTransfer(ctx context.Context, transferID datatransfer.TransferID, otherPeer peer.ID, isInitiator bool) error //perm:write
 | 
						|
	// ClientCancelDataTransfer cancels a data transfer with the given transfer ID and other peer
 | 
						|
	ClientCancelDataTransfer(ctx context.Context, transferID datatransfer.TransferID, otherPeer peer.ID, isInitiator bool) error //perm:write
 | 
						|
	// ClientRetrieveTryRestartInsufficientFunds attempts to restart stalled retrievals on a given payment channel
 | 
						|
	// which are stuck due to insufficient funds
 | 
						|
	ClientRetrieveTryRestartInsufficientFunds(ctx context.Context, paymentChannel address.Address) error //perm:write
 | 
						|
 | 
						|
	// ClientCancelRetrievalDeal cancels an ongoing retrieval deal based on DealID
 | 
						|
	ClientCancelRetrievalDeal(ctx context.Context, dealid retrievalmarket.DealID) error //perm:write
 | 
						|
 | 
						|
	// ClientUnimport removes references to the specified file from filestore
 | 
						|
	// ClientUnimport(path string)
 | 
						|
 | 
						|
	// ClientListImports lists imported files and their root CIDs
 | 
						|
	ClientListImports(ctx context.Context) ([]api.Import, error) //perm:write
 | 
						|
 | 
						|
	// ClientListAsks() []Ask
 | 
						|
 | 
						|
	// MethodGroup: State
 | 
						|
	// The State methods are used to query, inspect, and interact with chain state.
 | 
						|
	// Most methods take a TipSetKey as a parameter. The state looked up is the parent state of the tipset.
 | 
						|
	// A nil TipSetKey can be provided as a param, this will cause the heaviest tipset in the chain to be used.
 | 
						|
 | 
						|
	// StateCall runs the given message and returns its result without any persisted changes.
 | 
						|
	//
 | 
						|
	// StateCall applies the message to the tipset's parent state. The
 | 
						|
	// message is not applied on-top-of the messages in the passed-in
 | 
						|
	// tipset.
 | 
						|
	StateCall(context.Context, *types.Message, types.TipSetKey) (*api.InvocResult, error) //perm:read
 | 
						|
	// StateReplay replays a given message, assuming it was included in a block in the specified tipset.
 | 
						|
	//
 | 
						|
	// If a tipset key is provided, and a replacing message is not found on chain,
 | 
						|
	// the method will return an error saying that the message wasn't found
 | 
						|
	//
 | 
						|
	// If no tipset key is provided, the appropriate tipset is looked up, and if
 | 
						|
	// the message was gas-repriced, the on-chain message will be replayed - in
 | 
						|
	// that case the returned InvocResult.MsgCid will not match the Cid param
 | 
						|
	//
 | 
						|
	// If the caller wants to ensure that exactly the requested message was executed,
 | 
						|
	// they MUST check that InvocResult.MsgCid is equal to the provided Cid.
 | 
						|
	// Without this check both the requested and original message may appear as
 | 
						|
	// successfully executed on-chain, which may look like a double-spend.
 | 
						|
	//
 | 
						|
	// A replacing message is a message with a different CID, any of Gas values, and
 | 
						|
	// different signature, but with all other parameters matching (source/destination,
 | 
						|
	// nonce, params, etc.)
 | 
						|
	StateReplay(context.Context, types.TipSetKey, cid.Cid) (*api.InvocResult, error) //perm:read
 | 
						|
	// StateGetActor returns the indicated actor's nonce and balance.
 | 
						|
	StateGetActor(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*types.Actor, error) //perm:read
 | 
						|
	// StateReadState returns the indicated actor's state.
 | 
						|
	StateReadState(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*api.ActorState, error) //perm:read
 | 
						|
	// StateListMessages looks back and returns all messages with a matching to or from address, stopping at the given height.
 | 
						|
	StateListMessages(ctx context.Context, match *api.MessageMatch, tsk types.TipSetKey, toht abi.ChainEpoch) ([]cid.Cid, error) //perm:read
 | 
						|
	// StateDecodeParams attempts to decode the provided params, based on the recipient actor address and method number.
 | 
						|
	StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, params []byte, tsk types.TipSetKey) (interface{}, error) //perm:read
 | 
						|
 | 
						|
	// StateNetworkName returns the name of the network the node is synced to
 | 
						|
	StateNetworkName(context.Context) (dtypes.NetworkName, error) //perm:read
 | 
						|
	// StateMinerSectors returns info about the given miner's sectors. If the filter bitfield is nil, all sectors are included.
 | 
						|
	StateMinerSectors(context.Context, address.Address, *bitfield.BitField, types.TipSetKey) ([]*miner.SectorOnChainInfo, error) //perm:read
 | 
						|
	// StateMinerActiveSectors returns info about sectors that a given miner is actively proving.
 | 
						|
	StateMinerActiveSectors(context.Context, address.Address, types.TipSetKey) ([]*miner.SectorOnChainInfo, error) //perm:read
 | 
						|
	// StateMinerProvingDeadline calculates the deadline at some epoch for a proving period
 | 
						|
	// and returns the deadline-related calculations.
 | 
						|
	StateMinerProvingDeadline(context.Context, address.Address, types.TipSetKey) (*dline.Info, error) //perm:read
 | 
						|
	// StateMinerPower returns the power of the indicated miner
 | 
						|
	StateMinerPower(context.Context, address.Address, types.TipSetKey) (*api.MinerPower, error) //perm:read
 | 
						|
	// StateMinerInfo returns info about the indicated miner
 | 
						|
	StateMinerInfo(context.Context, address.Address, types.TipSetKey) (api.MinerInfo, error) //perm:read
 | 
						|
	// StateMinerDeadlines returns all the proving deadlines for the given miner
 | 
						|
	StateMinerDeadlines(context.Context, address.Address, types.TipSetKey) ([]api.Deadline, error) //perm:read
 | 
						|
	// StateMinerPartitions returns all partitions in the specified deadline
 | 
						|
	StateMinerPartitions(ctx context.Context, m address.Address, dlIdx uint64, tsk types.TipSetKey) ([]api.Partition, error) //perm:read
 | 
						|
	// StateMinerFaults returns a bitfield indicating the faulty sectors of the given miner
 | 
						|
	StateMinerFaults(context.Context, address.Address, types.TipSetKey) (bitfield.BitField, error) //perm:read
 | 
						|
	// StateAllMinerFaults returns all non-expired Faults that occur within lookback epochs of the given tipset
 | 
						|
	StateAllMinerFaults(ctx context.Context, lookback abi.ChainEpoch, ts types.TipSetKey) ([]*api.Fault, error) //perm:read
 | 
						|
	// StateMinerRecoveries returns a bitfield indicating the recovering sectors of the given miner
 | 
						|
	StateMinerRecoveries(context.Context, address.Address, types.TipSetKey) (bitfield.BitField, error) //perm:read
 | 
						|
	// StateMinerInitialPledgeCollateral returns the precommit deposit for the specified miner's sector
 | 
						|
	StateMinerPreCommitDepositForPower(context.Context, address.Address, miner.SectorPreCommitInfo, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
	// StateMinerInitialPledgeCollateral returns the initial pledge collateral for the specified miner's sector
 | 
						|
	StateMinerInitialPledgeCollateral(context.Context, address.Address, miner.SectorPreCommitInfo, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
	// StateMinerAvailableBalance returns the portion of a miner's balance that can be withdrawn or spent
 | 
						|
	StateMinerAvailableBalance(context.Context, address.Address, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
	// StateMinerSectorAllocated checks if a sector is allocated
 | 
						|
	StateMinerSectorAllocated(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (bool, error) //perm:read
 | 
						|
	// StateSectorPreCommitInfo returns the PreCommit info for the specified miner's sector
 | 
						|
	StateSectorPreCommitInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (miner.SectorPreCommitOnChainInfo, error) //perm:read
 | 
						|
	// StateSectorGetInfo returns the on-chain info for the specified miner's sector. Returns null in case the sector info isn't found
 | 
						|
	// NOTE: returned info.Expiration may not be accurate in some cases, use StateSectorExpiration to get accurate
 | 
						|
	// expiration epoch
 | 
						|
	StateSectorGetInfo(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*miner.SectorOnChainInfo, error) //perm:read
 | 
						|
	// StateSectorExpiration returns epoch at which given sector will expire
 | 
						|
	StateSectorExpiration(context.Context, address.Address, abi.SectorNumber, types.TipSetKey) (*lminer.SectorExpiration, error) //perm:read
 | 
						|
	// StateSectorPartition finds deadline/partition with the specified sector
 | 
						|
	StateSectorPartition(ctx context.Context, maddr address.Address, sectorNumber abi.SectorNumber, tok types.TipSetKey) (*lminer.SectorLocation, error) //perm:read
 | 
						|
	// StateSearchMsg searches for a message in the chain, and returns its receipt and the tipset where it was executed
 | 
						|
	//
 | 
						|
	// NOTE: If a replacing message is found on chain, this method will return
 | 
						|
	// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
 | 
						|
	// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
 | 
						|
	// result of the execution of the replacing message.
 | 
						|
	//
 | 
						|
	// If the caller wants to ensure that exactly the requested message was executed,
 | 
						|
	// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
 | 
						|
	// Without this check both the requested and original message may appear as
 | 
						|
	// successfully executed on-chain, which may look like a double-spend.
 | 
						|
	//
 | 
						|
	// A replacing message is a message with a different CID, any of Gas values, and
 | 
						|
	// different signature, but with all other parameters matching (source/destination,
 | 
						|
	// nonce, params, etc.)
 | 
						|
	StateSearchMsg(context.Context, cid.Cid) (*api.MsgLookup, error) //perm:read
 | 
						|
	// StateSearchMsgLimited looks back up to limit epochs in the chain for a message, and returns its receipt and the tipset where it was executed
 | 
						|
	//
 | 
						|
	// NOTE: If a replacing message is found on chain, this method will return
 | 
						|
	// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
 | 
						|
	// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
 | 
						|
	// result of the execution of the replacing message.
 | 
						|
	//
 | 
						|
	// If the caller wants to ensure that exactly the requested message was executed,
 | 
						|
	// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
 | 
						|
	// Without this check both the requested and original message may appear as
 | 
						|
	// successfully executed on-chain, which may look like a double-spend.
 | 
						|
	//
 | 
						|
	// A replacing message is a message with a different CID, any of Gas values, and
 | 
						|
	// different signature, but with all other parameters matching (source/destination,
 | 
						|
	// nonce, params, etc.)
 | 
						|
	StateSearchMsgLimited(ctx context.Context, msg cid.Cid, limit abi.ChainEpoch) (*api.MsgLookup, error) //perm:read
 | 
						|
	// StateWaitMsg looks back in the chain for a message. If not found, it blocks until the
 | 
						|
	// message arrives on chain, and gets to the indicated confidence depth.
 | 
						|
	//
 | 
						|
	// NOTE: If a replacing message is found on chain, this method will return
 | 
						|
	// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
 | 
						|
	// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
 | 
						|
	// result of the execution of the replacing message.
 | 
						|
	//
 | 
						|
	// If the caller wants to ensure that exactly the requested message was executed,
 | 
						|
	// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
 | 
						|
	// Without this check both the requested and original message may appear as
 | 
						|
	// successfully executed on-chain, which may look like a double-spend.
 | 
						|
	//
 | 
						|
	// A replacing message is a message with a different CID, any of Gas values, and
 | 
						|
	// different signature, but with all other parameters matching (source/destination,
 | 
						|
	// nonce, params, etc.)
 | 
						|
	StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64) (*api.MsgLookup, error) //perm:read
 | 
						|
	// StateWaitMsgLimited looks back up to limit epochs in the chain for a message.
 | 
						|
	// If not found, it blocks until the message arrives on chain, and gets to the
 | 
						|
	// indicated confidence depth.
 | 
						|
	//
 | 
						|
	// NOTE: If a replacing message is found on chain, this method will return
 | 
						|
	// a MsgLookup for the replacing message - the MsgLookup.Message will be a different
 | 
						|
	// CID than the one provided in the 'cid' param, MsgLookup.Receipt will contain the
 | 
						|
	// result of the execution of the replacing message.
 | 
						|
	//
 | 
						|
	// If the caller wants to ensure that exactly the requested message was executed,
 | 
						|
	// they MUST check that MsgLookup.Message is equal to the provided 'cid'.
 | 
						|
	// Without this check both the requested and original message may appear as
 | 
						|
	// successfully executed on-chain, which may look like a double-spend.
 | 
						|
	//
 | 
						|
	// A replacing message is a message with a different CID, any of Gas values, and
 | 
						|
	// different signature, but with all other parameters matching (source/destination,
 | 
						|
	// nonce, params, etc.)
 | 
						|
	StateWaitMsgLimited(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch) (*api.MsgLookup, error) //perm:read
 | 
						|
	// StateListMiners returns the addresses of every miner that has claimed power in the Power Actor
 | 
						|
	StateListMiners(context.Context, types.TipSetKey) ([]address.Address, error) //perm:read
 | 
						|
	// StateListActors returns the addresses of every actor in the state
 | 
						|
	StateListActors(context.Context, types.TipSetKey) ([]address.Address, error) //perm:read
 | 
						|
	// StateMarketBalance looks up the Escrow and Locked balances of the given address in the Storage Market
 | 
						|
	StateMarketBalance(context.Context, address.Address, types.TipSetKey) (api.MarketBalance, error) //perm:read
 | 
						|
	// StateMarketParticipants returns the Escrow and Locked balances of every participant in the Storage Market
 | 
						|
	StateMarketParticipants(context.Context, types.TipSetKey) (map[string]api.MarketBalance, error) //perm:read
 | 
						|
	// StateMarketDeals returns information about every deal in the Storage Market
 | 
						|
	StateMarketDeals(context.Context, types.TipSetKey) (map[string]*api.MarketDeal, error) //perm:read
 | 
						|
	// StateMarketStorageDeal returns information about the indicated deal
 | 
						|
	StateMarketStorageDeal(context.Context, abi.DealID, types.TipSetKey) (*api.MarketDeal, error) //perm:read
 | 
						|
	// StateGetAllocationForPendingDeal returns the allocation for a given deal ID of a pending deal.
 | 
						|
	StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
 | 
						|
	// StateGetAllocation returns the allocation for a given address and allocation ID.
 | 
						|
	StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error) //perm:read
 | 
						|
	// StateGetAllocations returns the all the allocations for a given client.
 | 
						|
	StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error) //perm:read
 | 
						|
	// StateGetClaim returns the claim for a given address and claim ID.
 | 
						|
	StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifregtypes.ClaimId, tsk types.TipSetKey) (*verifregtypes.Claim, error) //perm:read
 | 
						|
	// StateGetClaims returns the all the claims for a given provider.
 | 
						|
	StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error) //perm:read
 | 
						|
	// StateLookupID retrieves the ID address of the given address
 | 
						|
	StateLookupID(context.Context, address.Address, types.TipSetKey) (address.Address, error) //perm:read
 | 
						|
	// StateAccountKey returns the public key address of the given ID address
 | 
						|
	StateAccountKey(context.Context, address.Address, types.TipSetKey) (address.Address, error) //perm:read
 | 
						|
	// StateChangedActors returns all the actors whose states change between the two given state CIDs
 | 
						|
	// TODO: Should this take tipset keys instead?
 | 
						|
	StateChangedActors(context.Context, cid.Cid, cid.Cid) (map[string]types.Actor, error) //perm:read
 | 
						|
	// StateGetReceipt returns the message receipt for the given message or for a
 | 
						|
	// matching gas-repriced replacing message
 | 
						|
	//
 | 
						|
	// NOTE: If the requested message was replaced, this method will return the receipt
 | 
						|
	// for the replacing message - if the caller needs the receipt for exactly the
 | 
						|
	// requested message, use StateSearchMsg().Receipt, and check that MsgLookup.Message
 | 
						|
	// is matching the requested CID
 | 
						|
	//
 | 
						|
	// DEPRECATED: Use StateSearchMsg, this method won't be supported in v1 API
 | 
						|
	StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error) //perm:read
 | 
						|
	// StateMinerSectorCount returns the number of sectors in a miner's sector set and proving set
 | 
						|
	StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (api.MinerSectors, error) //perm:read
 | 
						|
	// StateCompute is a flexible command that applies the given messages on the given tipset.
 | 
						|
	// The messages are run as though the VM were at the provided height.
 | 
						|
	//
 | 
						|
	// When called, StateCompute will:
 | 
						|
	// - Load the provided tipset, or use the current chain head if not provided
 | 
						|
	// - Compute the tipset state of the provided tipset on top of the parent state
 | 
						|
	//   - (note that this step runs before vmheight is applied to the execution)
 | 
						|
	//   - Execute state upgrade if any were scheduled at the epoch, or in null
 | 
						|
	//     blocks preceding the tipset
 | 
						|
	//   - Call the cron actor on null blocks preceding the tipset
 | 
						|
	//   - For each block in the tipset
 | 
						|
	//     - Apply messages in blocks in the specified
 | 
						|
	//     - Award block reward by calling the reward actor
 | 
						|
	//   - Call the cron actor for the current epoch
 | 
						|
	// - If the specified vmheight is higher than the current epoch, apply any
 | 
						|
	//   needed state upgrades to the state
 | 
						|
	// - Apply the specified messages to the state
 | 
						|
	//
 | 
						|
	// The vmheight parameter sets VM execution epoch, and can be used to simulate
 | 
						|
	// message execution in different network versions. If the specified vmheight
 | 
						|
	// epoch is higher than the epoch of the specified tipset, any state upgrades
 | 
						|
	// until the vmheight will be executed on the state before applying messages
 | 
						|
	// specified by the user.
 | 
						|
	//
 | 
						|
	// Note that the initial tipset state computation is not affected by the
 | 
						|
	// vmheight parameter - only the messages in the `apply` set are
 | 
						|
	//
 | 
						|
	// If the caller wants to simply compute the state, vmheight should be set to
 | 
						|
	// the epoch of the specified tipset.
 | 
						|
	//
 | 
						|
	// Messages in the `apply` parameter must have the correct nonces, and gas
 | 
						|
	// values set.
 | 
						|
	StateCompute(context.Context, abi.ChainEpoch, []*types.Message, types.TipSetKey) (*api.ComputeStateOutput, error) //perm:read
 | 
						|
	// StateVerifierStatus returns the data cap for the given address.
 | 
						|
	// Returns nil if there is no entry in the data cap table for the
 | 
						|
	// address.
 | 
						|
	StateVerifierStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error) //perm:read
 | 
						|
	// StateVerifiedClientStatus returns the data cap for the given address.
 | 
						|
	// Returns nil if there is no entry in the data cap table for the
 | 
						|
	// address.
 | 
						|
	StateVerifiedClientStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error) //perm:read
 | 
						|
	// StateVerifiedRegistryRootKey returns the address of the Verified Registry's root key
 | 
						|
	StateVerifiedRegistryRootKey(ctx context.Context, tsk types.TipSetKey) (address.Address, error) //perm:read
 | 
						|
	// StateDealProviderCollateralBounds returns the min and max collateral a storage provider
 | 
						|
	// can issue. It takes the deal size and verified status as parameters.
 | 
						|
	StateDealProviderCollateralBounds(context.Context, abi.PaddedPieceSize, bool, types.TipSetKey) (api.DealCollateralBounds, error) //perm:read
 | 
						|
 | 
						|
	// StateCirculatingSupply returns the exact circulating supply of Filecoin at the given tipset.
 | 
						|
	// This is not used anywhere in the protocol itself, and is only for external consumption.
 | 
						|
	StateCirculatingSupply(context.Context, types.TipSetKey) (abi.TokenAmount, error) //perm:read
 | 
						|
	// StateVMCirculatingSupplyInternal returns an approximation of the circulating supply of Filecoin at the given tipset.
 | 
						|
	// This is the value reported by the runtime interface to actors code.
 | 
						|
	StateVMCirculatingSupplyInternal(context.Context, types.TipSetKey) (api.CirculatingSupply, error) //perm:read
 | 
						|
	// StateNetworkVersion returns the network version at the given tipset
 | 
						|
	StateNetworkVersion(context.Context, types.TipSetKey) (apitypes.NetworkVersion, error) //perm:read
 | 
						|
	// StateActorCodeCIDs returns the CIDs of all the builtin actors for the given network version
 | 
						|
	StateActorCodeCIDs(context.Context, abinetwork.Version) (map[string]cid.Cid, error) //perm:read
 | 
						|
	// StateActorManifestCID returns the CID of the builtin actors manifest for the given network version
 | 
						|
	StateActorManifestCID(context.Context, abinetwork.Version) (cid.Cid, error) //perm:read
 | 
						|
 | 
						|
	// StateGetRandomnessFromTickets is used to sample the chain for randomness.
 | 
						|
	StateGetRandomnessFromTickets(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
 | 
						|
	// StateGetRandomnessFromBeacon is used to sample the beacon for randomness.
 | 
						|
	StateGetRandomnessFromBeacon(ctx context.Context, personalization crypto.DomainSeparationTag, randEpoch abi.ChainEpoch, entropy []byte, tsk types.TipSetKey) (abi.Randomness, error) //perm:read
 | 
						|
 | 
						|
	// StateGetNetworkParams return current network params
 | 
						|
	StateGetNetworkParams(ctx context.Context) (*api.NetworkParams, error) //perm:read
 | 
						|
 | 
						|
	// MethodGroup: Msig
 | 
						|
	// The Msig methods are used to interact with multisig wallets on the
 | 
						|
	// filecoin network
 | 
						|
 | 
						|
	// MsigGetAvailableBalance returns the portion of a multisig's balance that can be withdrawn or spent
 | 
						|
	MsigGetAvailableBalance(context.Context, address.Address, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
	// MsigGetVestingSchedule returns the vesting details of a given multisig.
 | 
						|
	MsigGetVestingSchedule(context.Context, address.Address, types.TipSetKey) (api.MsigVesting, error) //perm:read
 | 
						|
	// MsigGetVested returns the amount of FIL that vested in a multisig in a certain period.
 | 
						|
	// It takes the following params: <multisig address>, <start epoch>, <end epoch>
 | 
						|
	MsigGetVested(context.Context, address.Address, types.TipSetKey, types.TipSetKey) (types.BigInt, error) //perm:read
 | 
						|
 | 
						|
	// MsigGetPending returns pending transactions for the given multisig
 | 
						|
	// wallet. Once pending transactions are fully approved, they will no longer
 | 
						|
	// appear here.
 | 
						|
	MsigGetPending(context.Context, address.Address, types.TipSetKey) ([]*api.MsigTransaction, error) //perm:read
 | 
						|
 | 
						|
	// MsigCreate creates a multisig wallet
 | 
						|
	// It takes the following params: <required number of senders>, <approving addresses>, <unlock duration>
 | 
						|
	// <initial balance>, <sender address of the create msg>, <gas price>
 | 
						|
	MsigCreate(context.Context, uint64, []address.Address, abi.ChainEpoch, types.BigInt, address.Address, types.BigInt) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigPropose proposes a multisig message
 | 
						|
	// It takes the following params: <multisig address>, <recipient address>, <value to transfer>,
 | 
						|
	// <sender address of the propose msg>, <method to call in the proposed message>, <params to include in the proposed message>
 | 
						|
	MsigPropose(context.Context, address.Address, address.Address, types.BigInt, address.Address, uint64, []byte) (cid.Cid, error) //perm:sign
 | 
						|
 | 
						|
	// MsigApprove approves a previously-proposed multisig message by transaction ID
 | 
						|
	// It takes the following params: <multisig address>, <proposed transaction ID> <signer address>
 | 
						|
	MsigApprove(context.Context, address.Address, uint64, address.Address) (cid.Cid, error) //perm:sign
 | 
						|
 | 
						|
	// MsigApproveTxnHash approves a previously-proposed multisig message, specified
 | 
						|
	// using both transaction ID and a hash of the parameters used in the
 | 
						|
	// proposal. This method of approval can be used to ensure you only approve
 | 
						|
	// exactly the transaction you think you are.
 | 
						|
	// It takes the following params: <multisig address>, <proposed message ID>, <proposer address>, <recipient address>, <value to transfer>,
 | 
						|
	// <sender address of the approve msg>, <method to call in the approved message>, <params to include in the proposed message>
 | 
						|
	MsigApproveTxnHash(context.Context, address.Address, uint64, address.Address, address.Address, types.BigInt, address.Address, uint64, []byte) (cid.Cid, error) //perm:sign
 | 
						|
 | 
						|
	// MsigCancel cancels a previously-proposed multisig message
 | 
						|
	// It takes the following params: <multisig address>, <proposed transaction ID>, <recipient address>, <value to transfer>,
 | 
						|
	// <sender address of the cancel msg>, <method to call in the proposed message>, <params to include in the proposed message>
 | 
						|
	MsigCancel(context.Context, address.Address, uint64, address.Address, types.BigInt, address.Address, uint64, []byte) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigAddPropose proposes adding a signer in the multisig
 | 
						|
	// It takes the following params: <multisig address>, <sender address of the propose msg>,
 | 
						|
	// <new signer>, <whether the number of required signers should be increased>
 | 
						|
	MsigAddPropose(context.Context, address.Address, address.Address, address.Address, bool) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigAddApprove approves a previously proposed AddSigner message
 | 
						|
	// It takes the following params: <multisig address>, <sender address of the approve msg>, <proposed message ID>,
 | 
						|
	// <proposer address>, <new signer>, <whether the number of required signers should be increased>
 | 
						|
	MsigAddApprove(context.Context, address.Address, address.Address, uint64, address.Address, address.Address, bool) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigAddCancel cancels a previously proposed AddSigner message
 | 
						|
	// It takes the following params: <multisig address>, <sender address of the cancel msg>, <proposed message ID>,
 | 
						|
	// <new signer>, <whether the number of required signers should be increased>
 | 
						|
	MsigAddCancel(context.Context, address.Address, address.Address, uint64, address.Address, bool) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigSwapPropose proposes swapping 2 signers in the multisig
 | 
						|
	// It takes the following params: <multisig address>, <sender address of the propose msg>,
 | 
						|
	// <old signer>, <new signer>
 | 
						|
	MsigSwapPropose(context.Context, address.Address, address.Address, address.Address, address.Address) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigSwapApprove approves a previously proposed SwapSigner
 | 
						|
	// It takes the following params: <multisig address>, <sender address of the approve msg>, <proposed message ID>,
 | 
						|
	// <proposer address>, <old signer>, <new signer>
 | 
						|
	MsigSwapApprove(context.Context, address.Address, address.Address, uint64, address.Address, address.Address, address.Address) (cid.Cid, error) //perm:sign
 | 
						|
	// MsigSwapCancel cancels a previously proposed SwapSigner message
 | 
						|
	// It takes the following params: <multisig address>, <sender address of the cancel msg>, <proposed message ID>,
 | 
						|
	// <old signer>, <new signer>
 | 
						|
	MsigSwapCancel(context.Context, address.Address, address.Address, uint64, address.Address, address.Address) (cid.Cid, error) //perm:sign
 | 
						|
 | 
						|
	// MsigRemoveSigner proposes the removal of a signer from the multisig.
 | 
						|
	// It accepts the multisig to make the change on, the proposer address to
 | 
						|
	// send the message from, the address to be removed, and a boolean
 | 
						|
	// indicating whether or not the signing threshold should be lowered by one
 | 
						|
	// along with the address removal.
 | 
						|
	MsigRemoveSigner(ctx context.Context, msig address.Address, proposer address.Address, toRemove address.Address, decrease bool) (cid.Cid, error) //perm:sign
 | 
						|
 | 
						|
	// MarketAddBalance adds funds to the market actor
 | 
						|
	MarketAddBalance(ctx context.Context, wallet, addr address.Address, amt types.BigInt) (cid.Cid, error) //perm:sign
 | 
						|
	// MarketGetReserved gets the amount of funds that are currently reserved for the address
 | 
						|
	MarketGetReserved(ctx context.Context, addr address.Address) (types.BigInt, error) //perm:sign
 | 
						|
	// MarketReserveFunds reserves funds for a deal
 | 
						|
	MarketReserveFunds(ctx context.Context, wallet address.Address, addr address.Address, amt types.BigInt) (cid.Cid, error) //perm:sign
 | 
						|
	// MarketReleaseFunds releases funds reserved by MarketReserveFunds
 | 
						|
	MarketReleaseFunds(ctx context.Context, addr address.Address, amt types.BigInt) error //perm:sign
 | 
						|
	// MarketWithdraw withdraws unlocked funds from the market actor
 | 
						|
	MarketWithdraw(ctx context.Context, wallet, addr address.Address, amt types.BigInt) (cid.Cid, error) //perm:sign
 | 
						|
 | 
						|
	// MethodGroup: Paych
 | 
						|
	// The Paych methods are for interacting with and managing payment channels
 | 
						|
 | 
						|
	PaychGet(ctx context.Context, from, to address.Address, amt types.BigInt) (*api.ChannelInfo, error)                  //perm:sign
 | 
						|
	PaychGetWaitReady(context.Context, cid.Cid) (address.Address, error)                                                 //perm:sign
 | 
						|
	PaychAvailableFunds(ctx context.Context, ch address.Address) (*api.ChannelAvailableFunds, error)                     //perm:sign
 | 
						|
	PaychAvailableFundsByFromTo(ctx context.Context, from, to address.Address) (*api.ChannelAvailableFunds, error)       //perm:sign
 | 
						|
	PaychList(context.Context) ([]address.Address, error)                                                                //perm:read
 | 
						|
	PaychStatus(context.Context, address.Address) (*api.PaychStatus, error)                                              //perm:read
 | 
						|
	PaychSettle(context.Context, address.Address) (cid.Cid, error)                                                       //perm:sign
 | 
						|
	PaychCollect(context.Context, address.Address) (cid.Cid, error)                                                      //perm:sign
 | 
						|
	PaychAllocateLane(ctx context.Context, ch address.Address) (uint64, error)                                           //perm:sign
 | 
						|
	PaychNewPayment(ctx context.Context, from, to address.Address, vouchers []api.VoucherSpec) (*api.PaymentInfo, error) //perm:sign
 | 
						|
	PaychVoucherCheckValid(context.Context, address.Address, *paych.SignedVoucher) error                                 //perm:read
 | 
						|
	PaychVoucherCheckSpendable(context.Context, address.Address, *paych.SignedVoucher, []byte, []byte) (bool, error)     //perm:read
 | 
						|
	PaychVoucherCreate(context.Context, address.Address, types.BigInt, uint64) (*api.VoucherCreateResult, error)         //perm:sign
 | 
						|
	PaychVoucherAdd(context.Context, address.Address, *paych.SignedVoucher, []byte, types.BigInt) (types.BigInt, error)  //perm:write
 | 
						|
	PaychVoucherList(context.Context, address.Address) ([]*paych.SignedVoucher, error)                                   //perm:write
 | 
						|
	PaychVoucherSubmit(context.Context, address.Address, *paych.SignedVoucher, []byte, []byte) (cid.Cid, error)          //perm:sign
 | 
						|
 | 
						|
	// CreateBackup creates node backup onder the specified file name. The
 | 
						|
	// method requires that the lotus daemon is running with the
 | 
						|
	// LOTUS_BACKUP_BASE_PATH environment variable set to some path, and that
 | 
						|
	// the path specified when calling CreateBackup is within the base path
 | 
						|
	CreateBackup(ctx context.Context, fpath string) error //perm:admin
 | 
						|
}
 | 
						|
 | 
						|
func OfferOrder(o api.QueryOffer, client address.Address) RetrievalOrder {
 | 
						|
	return RetrievalOrder{
 | 
						|
		Root:                    o.Root,
 | 
						|
		Piece:                   o.Piece,
 | 
						|
		Size:                    o.Size,
 | 
						|
		Total:                   o.MinPrice,
 | 
						|
		UnsealPrice:             o.UnsealPrice,
 | 
						|
		PaymentInterval:         o.PaymentInterval,
 | 
						|
		PaymentIntervalIncrease: o.PaymentIntervalIncrease,
 | 
						|
		Client:                  client,
 | 
						|
 | 
						|
		Miner:     o.Miner,
 | 
						|
		MinerPeer: &o.MinerPeer,
 | 
						|
	}
 | 
						|
}
 | 
						|
 | 
						|
type RetrievalOrder struct {
 | 
						|
	// TODO: make this less unixfs specific
 | 
						|
	Root                  cid.Cid
 | 
						|
	Piece                 *cid.Cid
 | 
						|
	DatamodelPathSelector *textselector.Expression
 | 
						|
	Size                  uint64
 | 
						|
 | 
						|
	FromLocalCAR string // if specified, get data from a local CARv2 file.
 | 
						|
	// TODO: support offset
 | 
						|
	Total                   types.BigInt
 | 
						|
	UnsealPrice             types.BigInt
 | 
						|
	PaymentInterval         uint64
 | 
						|
	PaymentIntervalIncrease uint64
 | 
						|
	Client                  address.Address
 | 
						|
	Miner                   address.Address
 | 
						|
	MinerPeer               *retrievalmarket.RetrievalPeer
 | 
						|
}
 |