2020-09-29 15:25:45 +00:00
|
|
|
package api
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
2020-10-23 14:51:27 +00:00
|
|
|
"github.com/ipfs/go-cid"
|
|
|
|
|
2020-09-29 15:25:45 +00:00
|
|
|
"github.com/filecoin-project/go-address"
|
2020-10-02 14:14:30 +00:00
|
|
|
"github.com/filecoin-project/go-state-types/abi"
|
2020-10-23 14:51:27 +00:00
|
|
|
"github.com/filecoin-project/go-state-types/dline"
|
|
|
|
|
2022-04-20 21:34:28 +00:00
|
|
|
"github.com/filecoin-project/go-state-types/builtin/v8/miner"
|
2021-03-23 12:42:56 +00:00
|
|
|
apitypes "github.com/filecoin-project/lotus/api/types"
|
2020-09-29 15:25:45 +00:00
|
|
|
"github.com/filecoin-project/lotus/chain/types"
|
|
|
|
)
|
|
|
|
|
2021-04-26 18:36:20 +00:00
|
|
|
// MODIFYING THE API INTERFACE
|
|
|
|
//
|
|
|
|
// NOTE: This is the V1 (Unstable) API - to add methods to the V0 (Stable) API
|
|
|
|
// you'll have to add those methods to interfaces in `api/v0api`
|
|
|
|
//
|
|
|
|
// 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
|
|
|
|
|
2021-03-23 12:42:56 +00:00
|
|
|
type Gateway interface {
|
2020-10-15 10:15:21 +00:00
|
|
|
ChainHasObj(context.Context, cid.Cid) (bool, error)
|
2020-09-29 15:25:45 +00:00
|
|
|
ChainHead(ctx context.Context) (*types.TipSet, error)
|
2021-11-18 21:55:33 +00:00
|
|
|
ChainGetParentMessages(context.Context, cid.Cid) ([]Message, error)
|
|
|
|
ChainGetParentReceipts(context.Context, cid.Cid) ([]*types.MessageReceipt, error)
|
2020-10-09 11:41:09 +00:00
|
|
|
ChainGetBlockMessages(context.Context, cid.Cid) (*BlockMessages, error)
|
|
|
|
ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error)
|
2021-08-27 19:25:43 +00:00
|
|
|
ChainGetPath(ctx context.Context, from, to types.TipSetKey) ([]*HeadChange, error)
|
2020-09-29 15:25:45 +00:00
|
|
|
ChainGetTipSet(ctx context.Context, tsk types.TipSetKey) (*types.TipSet, error)
|
2020-10-02 14:14:30 +00:00
|
|
|
ChainGetTipSetByHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error)
|
2021-08-05 17:53:12 +00:00
|
|
|
ChainGetTipSetAfterHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error)
|
2020-10-09 11:41:09 +00:00
|
|
|
ChainNotify(context.Context) (<-chan []*HeadChange, error)
|
2020-10-15 10:15:21 +00:00
|
|
|
ChainReadObj(context.Context, cid.Cid) ([]byte, error)
|
2021-11-18 21:55:33 +00:00
|
|
|
ChainGetGenesis(context.Context) (*types.TipSet, error)
|
2020-10-05 15:09:21 +00:00
|
|
|
GasEstimateMessageGas(ctx context.Context, msg *types.Message, spec *MessageSendSpec, tsk types.TipSetKey) (*types.Message, error)
|
2020-09-29 15:25:45 +00:00
|
|
|
MpoolPush(ctx context.Context, sm *types.SignedMessage) (cid.Cid, error)
|
2020-10-07 16:14:12 +00:00
|
|
|
MsigGetAvailableBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (types.BigInt, error)
|
2021-02-04 04:46:10 +00:00
|
|
|
MsigGetPending(context.Context, address.Address, types.TipSetKey) ([]*MsigTransaction, error)
|
2022-02-16 07:30:07 +00:00
|
|
|
MsigGetVested(ctx context.Context, addr address.Address, start types.TipSetKey, end types.TipSetKey) (types.BigInt, error)
|
|
|
|
MsigGetVestingSchedule(ctx context.Context, addr address.Address, tsk types.TipSetKey) (MsigVesting, error)
|
2020-09-29 15:25:45 +00:00
|
|
|
StateAccountKey(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
2020-10-09 11:41:09 +00:00
|
|
|
StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, tsk types.TipSetKey) (DealCollateralBounds, error)
|
2020-09-30 14:36:16 +00:00
|
|
|
StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error)
|
2021-07-22 00:21:28 +00:00
|
|
|
StateReadState(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*ActorState, error) //perm:read
|
2020-10-09 11:41:09 +00:00
|
|
|
StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
|
2020-09-30 14:36:16 +00:00
|
|
|
StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
2020-10-09 11:41:09 +00:00
|
|
|
StateMarketBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (MarketBalance, error)
|
|
|
|
StateMarketStorageDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*MarketDeal, error)
|
2022-04-20 21:34:28 +00:00
|
|
|
StateMinerInfo(ctx context.Context, actor address.Address, tsk types.TipSetKey) (MinerInfo, error)
|
2020-10-23 14:51:27 +00:00
|
|
|
StateMinerProvingDeadline(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*dline.Info, error)
|
|
|
|
StateMinerPower(context.Context, address.Address, types.TipSetKey) (*MinerPower, error)
|
2021-03-23 12:42:56 +00:00
|
|
|
StateNetworkVersion(context.Context, types.TipSetKey) (apitypes.NetworkVersion, error)
|
2020-11-20 16:30:17 +00:00
|
|
|
StateSectorGetInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorOnChainInfo, error)
|
2020-10-20 15:08:25 +00:00
|
|
|
StateVerifiedClientStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
|
2021-04-05 11:47:10 +00:00
|
|
|
StateSearchMsg(ctx context.Context, from types.TipSetKey, msg cid.Cid, limit abi.ChainEpoch, allowReplaced bool) (*MsgLookup, error)
|
|
|
|
StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch, allowReplaced bool) (*MsgLookup, error)
|
2021-04-21 04:55:47 +00:00
|
|
|
WalletBalance(context.Context, address.Address) (types.BigInt, error)
|
2021-06-28 17:00:49 +00:00
|
|
|
Version(context.Context) (APIVersion, error)
|
2022-05-27 11:35:23 +00:00
|
|
|
Discover(context.Context) (apitypes.OpenRPCDocument, error)
|
2020-09-29 15:25:45 +00:00
|
|
|
}
|