2021-04-20 16:42:12 +00:00
|
|
|
package v0api
|
|
|
|
|
|
|
|
import (
|
|
|
|
"context"
|
|
|
|
|
2023-03-25 07:33:05 +00:00
|
|
|
blocks "github.com/ipfs/go-block-format"
|
2021-04-20 16:42:12 +00:00
|
|
|
"github.com/ipfs/go-cid"
|
|
|
|
|
|
|
|
"github.com/filecoin-project/go-address"
|
|
|
|
"github.com/filecoin-project/go-state-types/abi"
|
2023-08-18 07:28:01 +00:00
|
|
|
verifregtypes "github.com/filecoin-project/go-state-types/builtin/v9/verifreg"
|
2021-04-20 16:42:12 +00:00
|
|
|
"github.com/filecoin-project/go-state-types/dline"
|
2021-12-08 17:11:19 +00:00
|
|
|
abinetwork "github.com/filecoin-project/go-state-types/network"
|
2021-04-20 16:42:12 +00:00
|
|
|
|
|
|
|
"github.com/filecoin-project/lotus/api"
|
2023-08-29 13:16:05 +00:00
|
|
|
"github.com/filecoin-project/lotus/chain/actors/builtin/miner"
|
2021-04-20 16:42:12 +00:00
|
|
|
"github.com/filecoin-project/lotus/chain/types"
|
2023-03-08 16:53:19 +00:00
|
|
|
"github.com/filecoin-project/lotus/node/modules/dtypes"
|
2021-04-20 16:42:12 +00:00
|
|
|
)
|
|
|
|
|
2021-04-26 18:36:20 +00:00
|
|
|
// 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
|
|
|
|
|
2021-04-20 16:42:12 +00:00
|
|
|
type Gateway interface {
|
2023-03-24 18:39:15 +00:00
|
|
|
MpoolPending(context.Context, types.TipSetKey) ([]*types.SignedMessage, error)
|
|
|
|
ChainGetBlock(context.Context, cid.Cid) (*types.BlockHeader, error)
|
|
|
|
MinerGetBaseInfo(context.Context, address.Address, abi.ChainEpoch, types.TipSetKey) (*api.MiningBaseInfo, error)
|
2023-03-11 07:27:42 +00:00
|
|
|
StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (api.MinerSectors, error)
|
|
|
|
GasEstimateGasPremium(context.Context, uint64, address.Address, int64, types.TipSetKey) (types.BigInt, error)
|
|
|
|
StateReplay(context.Context, types.TipSetKey, cid.Cid) (*api.InvocResult, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
ChainHasObj(context.Context, cid.Cid) (bool, error)
|
2022-06-07 03:14:16 +00:00
|
|
|
ChainPutObj(context.Context, blocks.Block) error
|
2021-04-20 16:42:12 +00:00
|
|
|
ChainHead(ctx context.Context) (*types.TipSet, error)
|
|
|
|
ChainGetBlockMessages(context.Context, cid.Cid) (*api.BlockMessages, error)
|
|
|
|
ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error)
|
|
|
|
ChainGetTipSet(ctx context.Context, tsk types.TipSetKey) (*types.TipSet, error)
|
|
|
|
ChainGetTipSetByHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error)
|
|
|
|
ChainNotify(context.Context) (<-chan []*api.HeadChange, error)
|
|
|
|
ChainReadObj(context.Context, cid.Cid) ([]byte, error)
|
|
|
|
GasEstimateMessageGas(ctx context.Context, msg *types.Message, spec *api.MessageSendSpec, tsk types.TipSetKey) (*types.Message, error)
|
2023-03-07 20:19:20 +00:00
|
|
|
MpoolGetNonce(ctx context.Context, addr address.Address) (uint64, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
MpoolPush(ctx context.Context, sm *types.SignedMessage) (cid.Cid, error)
|
|
|
|
MsigGetAvailableBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (types.BigInt, error)
|
|
|
|
MsigGetVested(ctx context.Context, addr address.Address, start types.TipSetKey, end types.TipSetKey) (types.BigInt, error)
|
|
|
|
MsigGetPending(context.Context, address.Address, types.TipSetKey) ([]*api.MsigTransaction, error)
|
|
|
|
StateAccountKey(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
2023-03-08 16:53:19 +00:00
|
|
|
StateCall(ctx context.Context, msg *types.Message, tsk types.TipSetKey) (*api.InvocResult, error)
|
|
|
|
StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, tsk types.TipSetKey) (api.DealCollateralBounds, error)
|
|
|
|
StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, params []byte, tsk types.TipSetKey) (interface{}, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error)
|
2023-08-18 07:28:01 +00:00
|
|
|
StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
|
|
|
StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
|
|
|
|
StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error)
|
|
|
|
StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifregtypes.ClaimId, tsk types.TipSetKey) (*verifregtypes.Claim, error)
|
|
|
|
StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
StateGetReceipt(context.Context, cid.Cid, types.TipSetKey) (*types.MessageReceipt, error)
|
|
|
|
StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
|
|
|
|
StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
|
|
|
|
StateMarketBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (api.MarketBalance, error)
|
|
|
|
StateMarketStorageDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*api.MarketDeal, error)
|
2022-04-20 21:34:28 +00:00
|
|
|
StateMinerInfo(ctx context.Context, actor address.Address, tsk types.TipSetKey) (api.MinerInfo, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
StateMinerProvingDeadline(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*dline.Info, error)
|
|
|
|
StateMinerPower(context.Context, address.Address, types.TipSetKey) (*api.MinerPower, error)
|
2023-03-07 17:36:11 +00:00
|
|
|
StateNetworkName(context.Context) (dtypes.NetworkName, error)
|
2021-12-08 17:11:19 +00:00
|
|
|
StateNetworkVersion(context.Context, types.TipSetKey) (abinetwork.Version, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
StateSearchMsg(ctx context.Context, msg cid.Cid) (*api.MsgLookup, error)
|
|
|
|
StateSectorGetInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorOnChainInfo, error)
|
|
|
|
StateVerifiedClientStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
|
|
|
|
StateWaitMsg(ctx context.Context, msg cid.Cid, confidence uint64) (*api.MsgLookup, error)
|
2021-04-21 16:46:44 +00:00
|
|
|
WalletBalance(context.Context, address.Address) (types.BigInt, error)
|
2021-06-28 17:00:49 +00:00
|
|
|
Version(context.Context) (api.APIVersion, error)
|
2021-04-20 16:42:12 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
var _ Gateway = *new(FullNode)
|