Documentation ¶
Index ¶
- Constants
- Variables
- type EthSubHandler
- type HandlerOption
- type Node
- func (gw *Node) ChainGetBlock(ctx context.Context, c cid.Cid) (*types.BlockHeader, error)
- func (gw *Node) ChainGetBlockMessages(ctx context.Context, c cid.Cid) (*api.BlockMessages, error)
- func (gw *Node) ChainGetEvents(ctx context.Context, eventsRoot cid.Cid) ([]types.Event, error)
- func (gw *Node) ChainGetGenesis(ctx context.Context) (*types.TipSet, error)
- func (gw *Node) ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error)
- func (gw *Node) ChainGetNode(ctx context.Context, p string) (*api.IpldObject, error)
- func (gw *Node) ChainGetParentMessages(ctx context.Context, c cid.Cid) ([]api.Message, error)
- func (gw *Node) ChainGetParentReceipts(ctx context.Context, c cid.Cid) ([]*types.MessageReceipt, error)
- func (gw *Node) ChainGetPath(ctx context.Context, from, to types.TipSetKey) ([]*api.HeadChange, error)
- func (gw *Node) ChainGetTipSet(ctx context.Context, tsk types.TipSetKey) (*types.TipSet, error)
- func (gw *Node) ChainGetTipSetAfterHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error)
- func (gw *Node) ChainGetTipSetByHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error)
- func (gw *Node) ChainHasObj(ctx context.Context, c cid.Cid) (bool, error)
- func (gw *Node) ChainHead(ctx context.Context) (*types.TipSet, error)
- func (gw *Node) ChainNotify(ctx context.Context) (<-chan []*api.HeadChange, error)
- func (gw *Node) ChainPutObj(context.Context, blocks.Block) error
- func (gw *Node) ChainReadObj(ctx context.Context, c cid.Cid) ([]byte, error)
- func (gw *Node) Discover(ctx context.Context) (apitypes.OpenRPCDocument, error)
- func (gw *Node) EthAccounts(ctx context.Context) ([]ethtypes.EthAddress, error)
- func (gw *Node) EthAddressToFilecoinAddress(ctx context.Context, ethAddress ethtypes.EthAddress) (address.Address, error)
- func (gw *Node) EthBlockNumber(ctx context.Context) (ethtypes.EthUint64, error)
- func (gw *Node) EthCall(ctx context.Context, tx ethtypes.EthCall, ...) (ethtypes.EthBytes, error)
- func (gw *Node) EthChainId(ctx context.Context) (ethtypes.EthUint64, error)
- func (gw *Node) EthEstimateGas(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthUint64, error)
- func (gw *Node) EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthFeeHistory, error)
- func (gw *Node) EthGasPrice(ctx context.Context) (ethtypes.EthBigInt, error)
- func (gw *Node) EthGetBalance(ctx context.Context, address ethtypes.EthAddress, ...) (ethtypes.EthBigInt, error)
- func (gw *Node) EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error)
- func (gw *Node) EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error)
- func (gw *Node) EthGetBlockTransactionCountByHash(ctx context.Context, blkHash ethtypes.EthHash) (ethtypes.EthUint64, error)
- func (gw *Node) EthGetBlockTransactionCountByNumber(ctx context.Context, blkNum ethtypes.EthUint64) (ethtypes.EthUint64, error)
- func (gw *Node) EthGetCode(ctx context.Context, address ethtypes.EthAddress, ...) (ethtypes.EthBytes, error)
- func (gw *Node) EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error)
- func (gw *Node) EthGetFilterLogs(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error)
- func (gw *Node) EthGetLogs(ctx context.Context, filter *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error)
- func (gw *Node) EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error)
- func (gw *Node) EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, ...) (ethtypes.EthBytes, error)
- func (gw *Node) EthGetTransactionByHash(ctx context.Context, txHash *ethtypes.EthHash) (*ethtypes.EthTx, error)
- func (gw *Node) EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error)
- func (gw *Node) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, ...) (ethtypes.EthUint64, error)
- func (gw *Node) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error)
- func (gw *Node) EthGetTransactionReceipt(ctx context.Context, txHash ethtypes.EthHash) (*api.EthTxReceipt, error)
- func (gw *Node) EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error)
- func (gw *Node) EthMaxPriorityFeePerGas(ctx context.Context) (ethtypes.EthBigInt, error)
- func (gw *Node) EthNewBlockFilter(ctx context.Context) (ethtypes.EthFilterID, error)
- func (gw *Node) EthNewFilter(ctx context.Context, filter *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error)
- func (gw *Node) EthNewPendingTransactionFilter(ctx context.Context) (ethtypes.EthFilterID, error)
- func (gw *Node) EthProtocolVersion(ctx context.Context) (ethtypes.EthUint64, error)
- func (gw *Node) EthSendRawTransaction(ctx context.Context, rawTx ethtypes.EthBytes) (ethtypes.EthHash, error)
- func (gw *Node) EthSubscribe(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error)
- func (gw *Node) EthSyncing(ctx context.Context) (ethtypes.EthSyncingResult, error)
- func (gw *Node) EthTraceBlock(ctx context.Context, blkNum string) ([]*ethtypes.EthTraceBlock, error)
- func (gw *Node) EthTraceFilter(ctx context.Context, filter ethtypes.EthTraceFilterCriteria) ([]*ethtypes.EthTraceFilterResult, error)
- func (gw *Node) EthTraceReplayBlockTransactions(ctx context.Context, blkNum string, traceTypes []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error)
- func (gw *Node) EthTraceTransaction(ctx context.Context, txHash string) ([]*ethtypes.EthTraceTransaction, error)
- func (gw *Node) EthUninstallFilter(ctx context.Context, id ethtypes.EthFilterID) (bool, error)
- func (gw *Node) EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error)
- func (gw *Node) FilecoinAddressToEthAddress(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthAddress, error)
- func (gw *Node) GasEstimateGasPremium(ctx context.Context, nblocksincl uint64, sender address.Address, ...) (types.BigInt, error)
- func (gw *Node) GasEstimateMessageGas(ctx context.Context, msg *types.Message, spec *api.MessageSendSpec, ...) (*types.Message, error)
- func (gw *Node) GetActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) ([]*types.ActorEvent, error)
- func (gw *Node) MinerGetBaseInfo(ctx context.Context, addr address.Address, h abi.ChainEpoch, ...) (*api.MiningBaseInfo, error)
- func (gw *Node) MpoolGetNonce(ctx context.Context, addr address.Address) (uint64, error)
- func (gw *Node) MpoolPending(ctx context.Context, tsk types.TipSetKey) ([]*types.SignedMessage, error)
- func (gw *Node) MpoolPush(ctx context.Context, sm *types.SignedMessage) (cid.Cid, error)
- func (gw *Node) MsigGetAvailableBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (types.BigInt, error)
- func (gw *Node) MsigGetPending(ctx context.Context, addr address.Address, tsk types.TipSetKey) ([]*api.MsigTransaction, error)
- func (gw *Node) MsigGetVested(ctx context.Context, addr address.Address, start types.TipSetKey, ...) (types.BigInt, error)
- func (gw *Node) MsigGetVestingSchedule(ctx context.Context, addr address.Address, tsk types.TipSetKey) (api.MsigVesting, error)
- func (gw *Node) NetListening(ctx context.Context) (bool, error)
- func (gw *Node) NetVersion(ctx context.Context) (string, error)
- func (gw *Node) StateAccountKey(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
- func (gw *Node) StateCall(ctx context.Context, msg *types.Message, tsk types.TipSetKey) (*api.InvocResult, error)
- func (gw *Node) StateCirculatingSupply(ctx context.Context, tsk types.TipSetKey) (abi.TokenAmount, error)
- func (gw *Node) StateDealProviderCollateralBounds(ctx context.Context, size abi.PaddedPieceSize, verified bool, ...) (api.DealCollateralBounds, error)
- func (gw *Node) StateDecodeParams(ctx context.Context, toAddr address.Address, method abi.MethodNum, ...) (interface{}, error)
- func (gw *Node) StateGetActor(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*types.Actor, error)
- func (gw *Node) StateGetAllocation(ctx context.Context, clientAddr address.Address, ...) (*verifregtypes.Allocation, error)
- func (gw *Node) StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
- func (gw *Node) StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error)
- func (gw *Node) StateGetClaim(ctx context.Context, providerAddr address.Address, ...) (*verifregtypes.Claim, error)
- func (gw *Node) StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error)
- func (gw *Node) StateListMiners(ctx context.Context, tsk types.TipSetKey) ([]address.Address, error)
- func (gw *Node) StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error)
- func (gw *Node) StateMarketBalance(ctx context.Context, addr address.Address, tsk types.TipSetKey) (api.MarketBalance, error)
- func (gw *Node) StateMarketStorageDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*api.MarketDeal, error)
- func (gw *Node) StateMinerAvailableBalance(ctx context.Context, m address.Address, tsk types.TipSetKey) (types.BigInt, error)
- func (gw *Node) StateMinerDeadlines(ctx context.Context, m address.Address, tsk types.TipSetKey) ([]api.Deadline, error)
- func (gw *Node) StateMinerFaults(ctx context.Context, m address.Address, tsk types.TipSetKey) (bitfield.BitField, error)
- func (gw *Node) StateMinerInfo(ctx context.Context, m address.Address, tsk types.TipSetKey) (api.MinerInfo, error)
- func (gw *Node) StateMinerPower(ctx context.Context, m address.Address, tsk types.TipSetKey) (*api.MinerPower, error)
- func (gw *Node) StateMinerProvingDeadline(ctx context.Context, m address.Address, tsk types.TipSetKey) (*dline.Info, error)
- func (gw *Node) StateMinerRecoveries(ctx context.Context, m address.Address, tsk types.TipSetKey) (bitfield.BitField, error)
- func (gw *Node) StateMinerSectorCount(ctx context.Context, m address.Address, tsk types.TipSetKey) (api.MinerSectors, error)
- func (gw *Node) StateNetworkName(ctx context.Context) (dtypes.NetworkName, error)
- func (gw *Node) StateNetworkVersion(ctx context.Context, tsk types.TipSetKey) (network.Version, error)
- func (gw *Node) StateReadState(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*api.ActorState, error)
- func (gw *Node) StateReplay(ctx context.Context, tsk types.TipSetKey, c cid.Cid) (*api.InvocResult, error)
- func (gw *Node) StateSearchMsg(ctx context.Context, from types.TipSetKey, msg cid.Cid, limit abi.ChainEpoch, ...) (*api.MsgLookup, error)
- func (gw *Node) StateSectorGetInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, ...) (*miner.SectorOnChainInfo, error)
- func (gw *Node) StateVMCirculatingSupplyInternal(ctx context.Context, tsk types.TipSetKey) (api.CirculatingSupply, error)
- func (gw *Node) StateVerifiedClientStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
- func (gw *Node) StateVerifierStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error)
- func (gw *Node) StateWaitMsg(ctx context.Context, msg cid.Cid, confidence uint64, limit abi.ChainEpoch, ...) (*api.MsgLookup, error)
- func (gw *Node) SubscribeActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) (<-chan *types.ActorEvent, error)
- func (gw *Node) Version(ctx context.Context) (api.APIVersion, error)
- func (gw *Node) WalletBalance(ctx context.Context, k address.Address) (types.BigInt, error)
- func (gw *Node) WalletVerify(ctx context.Context, k address.Address, msg []byte, sig *crypto.Signature) (bool, error)
- func (gw *Node) Web3ClientVersion(ctx context.Context) (string, error)
- type Option
- func WithEthMaxFiltersPerConn(ethMaxFiltersPerConn int) Option
- func WithEthSubHandler(subHandler *EthSubHandler) Option
- func WithMaxLookbackDuration(maxLookbackDuration time.Duration) Option
- func WithMaxMessageLookbackEpochs(maxMessageLookbackEpochs abi.ChainEpoch) Option
- func WithRateLimit(rateLimit int) Option
- func WithRateLimitTimeout(rateLimitTimeout time.Duration) Option
- type RateLimitHandler
- type ShutdownHandler
- type TargetAPI
Constants ¶
const ( DefaultMaxLookbackDuration = time.Hour * 24 // Default duration that a gateway request can look back in chain history DefaultMaxMessageLookbackEpochs = abi.ChainEpoch(20) // Default number of epochs that a gateway message lookup can look back in chain history DefaultRateLimitTimeout = time.Second * 5 // Default timeout for rate limiting requests; where a request would take longer to wait than this value, it will be retjected DefaultEthMaxFiltersPerConn = 16 // Default maximum number of ETH filters and subscriptions per websocket connection MaxRateLimitTokens = stateRateLimitTokens // Number of tokens consumed for the most expensive types of operations )
Variables ¶
var ErrTooManyFilters = errors.New("too many subscriptions and filters per connection")
var EthFeeHistoryMaxBlockCount = 128 // this seems to be expensive; todo: figure out what is a good number that works with everything
Functions ¶
This section is empty.
Types ¶
type EthSubHandler ¶ added in v1.20.0
type EthSubHandler struct {
// contains filtered or unexported fields
}
func NewEthSubHandler ¶ added in v1.20.0
func NewEthSubHandler() *EthSubHandler
func (*EthSubHandler) AddSub ¶ added in v1.20.0
func (e *EthSubHandler) AddSub(ctx context.Context, id ethtypes.EthSubscriptionID, sink func(context.Context, *ethtypes.EthSubscriptionResponse) error) error
func (*EthSubHandler) EthSubscription ¶ added in v1.20.0
func (e *EthSubHandler) EthSubscription(ctx context.Context, r jsonrpc.RawParams) error
func (*EthSubHandler) RemoveSub ¶ added in v1.20.0
func (e *EthSubHandler) RemoveSub(id ethtypes.EthSubscriptionID)
type HandlerOption ¶ added in v1.29.0
type HandlerOption func(*handlerOptions)
HandlerOption is a functional option for configuring the Handler.
func WithJsonrpcServerOptions ¶ added in v1.29.0
func WithJsonrpcServerOptions(options ...jsonrpc.ServerOption) HandlerOption
WithJsonrpcServerOptions sets the JSON-RPC server options.
func WithPerConnectionAPIRateLimit ¶ added in v1.29.0
func WithPerConnectionAPIRateLimit(limit int) HandlerOption
WithPerConnectionAPIRateLimit sets the per connection API rate limit.
The handler will limit the number of API calls per minute within a single WebSocket connection (where API calls are weighted by their relative expense), and the number of connections per minute from a single host.
func WithPerHostConnectionsPerMinute ¶ added in v1.29.0
func WithPerHostConnectionsPerMinute(limit int) HandlerOption
WithPerHostConnectionsPerMinute sets the per host connections per minute limit.
Connection limiting is a hard limit that will reject requests with a http.StatusTooManyRequests status code if the limit is exceeded. API call limiting is a soft limit that will delay requests if the limit is exceeded.
type Node ¶
type Node struct {
// contains filtered or unexported fields
}
func (*Node) ChainGetBlock ¶ added in v1.23.3
func (*Node) ChainGetBlockMessages ¶
func (*Node) ChainGetEvents ¶ added in v1.26.0
func (*Node) ChainGetGenesis ¶ added in v1.13.2
func (*Node) ChainGetMessage ¶
func (*Node) ChainGetNode ¶
func (*Node) ChainGetParentMessages ¶ added in v1.13.2
func (*Node) ChainGetParentReceipts ¶ added in v1.13.2
func (*Node) ChainGetPath ¶ added in v1.11.3
func (*Node) ChainGetTipSet ¶
func (*Node) ChainGetTipSetAfterHeight ¶ added in v1.11.2
func (*Node) ChainGetTipSetByHeight ¶
func (*Node) ChainHasObj ¶
func (*Node) ChainNotify ¶
func (*Node) ChainPutObj ¶ added in v1.16.0
func (*Node) ChainReadObj ¶
func (*Node) EthAccounts ¶ added in v1.20.0
func (*Node) EthAddressToFilecoinAddress ¶ added in v1.27.0
func (*Node) EthBlockNumber ¶ added in v1.20.0
func (*Node) EthChainId ¶ added in v1.20.0
func (*Node) EthEstimateGas ¶ added in v1.20.0
func (*Node) EthFeeHistory ¶ added in v1.20.0
func (*Node) EthGasPrice ¶ added in v1.20.0
func (*Node) EthGetBalance ¶ added in v1.20.0
func (gw *Node) EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error)
func (*Node) EthGetBlockByHash ¶ added in v1.20.0
func (*Node) EthGetBlockByNumber ¶ added in v1.20.0
func (*Node) EthGetBlockTransactionCountByHash ¶ added in v1.20.0
func (*Node) EthGetBlockTransactionCountByNumber ¶ added in v1.20.0
func (*Node) EthGetCode ¶ added in v1.20.0
func (gw *Node) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error)
func (*Node) EthGetFilterChanges ¶ added in v1.20.0
func (gw *Node) EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error)
func (*Node) EthGetFilterLogs ¶ added in v1.20.0
func (gw *Node) EthGetFilterLogs(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error)
func (*Node) EthGetLogs ¶ added in v1.20.0
func (gw *Node) EthGetLogs(ctx context.Context, filter *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error)
func (*Node) EthGetMessageCidByTransactionHash ¶ added in v1.20.0
func (*Node) EthGetStorageAt ¶ added in v1.20.0
func (*Node) EthGetTransactionByHash ¶ added in v1.20.0
func (*Node) EthGetTransactionByHashLimited ¶ added in v1.23.0
func (*Node) EthGetTransactionCount ¶ added in v1.20.0
func (gw *Node) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error)
func (*Node) EthGetTransactionHashByCid ¶ added in v1.20.0
func (*Node) EthGetTransactionReceipt ¶ added in v1.20.0
func (*Node) EthGetTransactionReceiptLimited ¶ added in v1.23.0
func (gw *Node) EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error)
func (*Node) EthMaxPriorityFeePerGas ¶ added in v1.20.0
func (*Node) EthNewBlockFilter ¶ added in v1.20.0
func (*Node) EthNewFilter ¶ added in v1.20.0
func (gw *Node) EthNewFilter(ctx context.Context, filter *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error)
func (*Node) EthNewPendingTransactionFilter ¶ added in v1.20.0
func (*Node) EthProtocolVersion ¶ added in v1.20.0
func (*Node) EthSendRawTransaction ¶ added in v1.20.0
func (*Node) EthSubscribe ¶ added in v1.20.0
func (*Node) EthSyncing ¶ added in v1.23.3
func (*Node) EthTraceBlock ¶ added in v1.25.0
func (*Node) EthTraceFilter ¶ added in v1.29.0
func (gw *Node) EthTraceFilter(ctx context.Context, filter ethtypes.EthTraceFilterCriteria) ([]*ethtypes.EthTraceFilterResult, error)
func (*Node) EthTraceReplayBlockTransactions ¶ added in v1.25.0
func (*Node) EthTraceTransaction ¶ added in v1.27.1
func (*Node) EthUninstallFilter ¶ added in v1.20.0
func (*Node) EthUnsubscribe ¶ added in v1.20.0
func (*Node) FilecoinAddressToEthAddress ¶ added in v1.27.0
func (*Node) GasEstimateGasPremium ¶ added in v1.23.1
func (*Node) GasEstimateMessageGas ¶
func (*Node) GetActorEventsRaw ¶ added in v1.26.0
func (gw *Node) GetActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) ([]*types.ActorEvent, error)
func (*Node) MinerGetBaseInfo ¶ added in v1.23.3
func (gw *Node) MinerGetBaseInfo(ctx context.Context, addr address.Address, h abi.ChainEpoch, tsk types.TipSetKey) (*api.MiningBaseInfo, error)
func (*Node) MpoolGetNonce ¶ added in v1.20.2
func (*Node) MpoolPending ¶ added in v1.23.3
func (*Node) MsigGetAvailableBalance ¶
func (*Node) MsigGetPending ¶
func (*Node) MsigGetVested ¶
func (*Node) MsigGetVestingSchedule ¶ added in v1.15.1
func (*Node) NetListening ¶ added in v1.20.0
func (*Node) NetVersion ¶ added in v1.20.0
func (*Node) StateAccountKey ¶
func (*Node) StateCirculatingSupply ¶
func (*Node) StateDealProviderCollateralBounds ¶
func (*Node) StateDecodeParams ¶ added in v1.20.2
func (*Node) StateGetActor ¶
func (*Node) StateGetAllocation ¶ added in v1.25.0
func (gw *Node) StateGetAllocation(ctx context.Context, clientAddr address.Address, allocationId verifregtypes.AllocationId, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
func (*Node) StateGetAllocationForPendingDeal ¶ added in v1.25.0
func (gw *Node) StateGetAllocationForPendingDeal(ctx context.Context, dealId abi.DealID, tsk types.TipSetKey) (*verifregtypes.Allocation, error)
func (*Node) StateGetAllocations ¶ added in v1.25.0
func (gw *Node) StateGetAllocations(ctx context.Context, clientAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.AllocationId]verifregtypes.Allocation, error)
func (*Node) StateGetClaim ¶ added in v1.25.0
func (gw *Node) StateGetClaim(ctx context.Context, providerAddr address.Address, claimId verifregtypes.ClaimId, tsk types.TipSetKey) (*verifregtypes.Claim, error)
func (*Node) StateGetClaims ¶ added in v1.25.0
func (gw *Node) StateGetClaims(ctx context.Context, providerAddr address.Address, tsk types.TipSetKey) (map[verifregtypes.ClaimId]verifregtypes.Claim, error)
func (*Node) StateListMiners ¶
func (*Node) StateLookupID ¶
func (*Node) StateMarketBalance ¶
func (*Node) StateMarketStorageDeal ¶
func (*Node) StateMinerAvailableBalance ¶
func (*Node) StateMinerDeadlines ¶
func (*Node) StateMinerFaults ¶
func (*Node) StateMinerInfo ¶
func (*Node) StateMinerPower ¶
func (*Node) StateMinerProvingDeadline ¶
func (*Node) StateMinerRecoveries ¶
func (*Node) StateMinerSectorCount ¶ added in v1.23.1
func (*Node) StateNetworkName ¶ added in v1.20.2
func (*Node) StateNetworkVersion ¶
func (*Node) StateReadState ¶
func (*Node) StateReplay ¶ added in v1.23.1
func (*Node) StateSearchMsg ¶
func (*Node) StateSectorGetInfo ¶
func (gw *Node) StateSectorGetInfo(ctx context.Context, maddr address.Address, n abi.SectorNumber, tsk types.TipSetKey) (*miner.SectorOnChainInfo, error)
func (*Node) StateVMCirculatingSupplyInternal ¶
func (*Node) StateVerifiedClientStatus ¶
func (*Node) StateVerifierStatus ¶ added in v1.23.0
func (*Node) StateWaitMsg ¶
func (*Node) SubscribeActorEventsRaw ¶ added in v1.26.0
func (gw *Node) SubscribeActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) (<-chan *types.ActorEvent, error)
func (*Node) WalletBalance ¶
func (*Node) WalletVerify ¶
type Option ¶ added in v1.29.0
type Option func(*options)
func WithEthMaxFiltersPerConn ¶ added in v1.29.0
WithEthMaxFiltersPerConn sets the maximum number of Ethereum filters and subscriptions that can be maintained per websocket connection.
func WithEthSubHandler ¶ added in v1.29.0
func WithEthSubHandler(subHandler *EthSubHandler) Option
WithEthSubHandler sets the Ethereum subscription handler for the gateway node. This is used for the RPC reverse handler for EthSubscribe calls.
func WithMaxLookbackDuration ¶ added in v1.29.0
WithMaxLookbackDuration sets the maximum lookback duration (time) for state queries.
func WithMaxMessageLookbackEpochs ¶ added in v1.29.0
func WithMaxMessageLookbackEpochs(maxMessageLookbackEpochs abi.ChainEpoch) Option
WithMaxMessageLookbackEpochs sets the maximum lookback (epochs) for state queries.
func WithRateLimit ¶ added in v1.29.0
WithRateLimit sets the maximum number of requests per second globally that will be allowed before the gateway starts to rate limit requests.
func WithRateLimitTimeout ¶ added in v1.29.0
WithRateLimitTimeout sets the timeout for rate limiting requests such that when rate limiting is being applied, if the timeout is reached the request will be allowed.
type RateLimitHandler ¶ added in v1.29.0
type RateLimitHandler struct {
// contains filtered or unexported fields
}
func NewRateLimitHandler ¶ added in v1.29.0
func NewRateLimitHandler( next http.Handler, perConnectionAPIRateLimit int, perHostConnectionsPerMinute int, cleanupInterval time.Duration, ) *RateLimitHandler
NewRateLimitHandler creates a new RateLimitHandler that wraps the provided handler and limits the number of API calls per minute within a single WebSocket connection (where API calls are weighted by their relative expense), and the number of connections per minute from a single host. The cleanupInterval determines how often the handler will check for unused limiters to clean up.
func (*RateLimitHandler) ServeHTTP ¶ added in v1.29.0
func (h *RateLimitHandler) ServeHTTP(w http.ResponseWriter, r *http.Request)
type ShutdownHandler ¶ added in v1.29.0
ShutdownHandler is an http.Handler that can be gracefully shutdown.
func Handler ¶
func Handler(gwapi lapi.Gateway, api lapi.FullNode, options ...HandlerOption) (ShutdownHandler, error)
Handler returns a gateway http.Handler, to be mounted as-is on the server. The handler is returned as a ShutdownHandler which allows for graceful shutdown of the handler via its Shutdown method.
type TargetAPI ¶
type TargetAPI interface { 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) GasEstimateGasPremium(context.Context, uint64, address.Address, int64, types.TipSetKey) (types.BigInt, error) StateReplay(context.Context, types.TipSetKey, cid.Cid) (*api.InvocResult, error) StateMinerSectorCount(context.Context, address.Address, types.TipSetKey) (api.MinerSectors, error) Version(context.Context) (api.APIVersion, error) ChainGetParentMessages(context.Context, cid.Cid) ([]api.Message, error) ChainGetParentReceipts(context.Context, cid.Cid) ([]*types.MessageReceipt, error) ChainGetBlockMessages(context.Context, cid.Cid) (*api.BlockMessages, error) ChainGetMessage(ctx context.Context, mc cid.Cid) (*types.Message, error) ChainGetNode(ctx context.Context, p string) (*api.IpldObject, error) ChainGetTipSet(ctx context.Context, tsk types.TipSetKey) (*types.TipSet, error) ChainGetTipSetByHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error) ChainGetTipSetAfterHeight(ctx context.Context, h abi.ChainEpoch, tsk types.TipSetKey) (*types.TipSet, error) ChainHasObj(context.Context, cid.Cid) (bool, error) ChainHead(ctx context.Context) (*types.TipSet, error) ChainNotify(context.Context) (<-chan []*api.HeadChange, error) ChainGetPath(ctx context.Context, from, to types.TipSetKey) ([]*api.HeadChange, error) ChainReadObj(context.Context, cid.Cid) ([]byte, error) ChainPutObj(context.Context, blocks.Block) error ChainGetGenesis(context.Context) (*types.TipSet, error) GasEstimateMessageGas(ctx context.Context, msg *types.Message, spec *api.MessageSendSpec, tsk types.TipSetKey) (*types.Message, error) MpoolGetNonce(ctx context.Context, addr address.Address) (uint64, error) MpoolPushUntrusted(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) MsigGetVestingSchedule(context.Context, address.Address, types.TipSetKey) (api.MsigVesting, error) MsigGetPending(ctx context.Context, addr address.Address, ts types.TipSetKey) ([]*api.MsigTransaction, error) StateAccountKey(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error) 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) StateGetActor(ctx context.Context, actor address.Address, ts types.TipSetKey) (*types.Actor, error) 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) StateLookupID(ctx context.Context, addr address.Address, tsk types.TipSetKey) (address.Address, error) StateListMiners(ctx context.Context, 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) StateNetworkName(context.Context) (dtypes.NetworkName, error) StateNetworkVersion(context.Context, types.TipSetKey) (network.Version, error) StateSearchMsg(ctx context.Context, from types.TipSetKey, msg cid.Cid, limit abi.ChainEpoch, allowReplaced bool) (*api.MsgLookup, error) StateWaitMsg(ctx context.Context, cid cid.Cid, confidence uint64, limit abi.ChainEpoch, allowReplaced bool) (*api.MsgLookup, error) StateReadState(ctx context.Context, actor address.Address, tsk types.TipSetKey) (*api.ActorState, error) StateMinerPower(context.Context, address.Address, types.TipSetKey) (*api.MinerPower, error) StateMinerFaults(context.Context, address.Address, types.TipSetKey) (bitfield.BitField, error) StateMinerRecoveries(context.Context, address.Address, types.TipSetKey) (bitfield.BitField, error) StateMinerInfo(context.Context, address.Address, types.TipSetKey) (api.MinerInfo, error) StateMinerDeadlines(context.Context, address.Address, types.TipSetKey) ([]api.Deadline, error) StateMinerAvailableBalance(context.Context, address.Address, types.TipSetKey) (types.BigInt, error) StateMinerProvingDeadline(context.Context, address.Address, types.TipSetKey) (*dline.Info, error) StateCirculatingSupply(context.Context, types.TipSetKey) (abi.TokenAmount, 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) StateVerifierStatus(ctx context.Context, addr address.Address, tsk types.TipSetKey) (*abi.StoragePower, error) StateVMCirculatingSupplyInternal(context.Context, types.TipSetKey) (api.CirculatingSupply, error) WalletBalance(context.Context, address.Address) (types.BigInt, error) EthAddressToFilecoinAddress(ctx context.Context, ethAddress ethtypes.EthAddress) (address.Address, error) FilecoinAddressToEthAddress(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthAddress, error) EthBlockNumber(ctx context.Context) (ethtypes.EthUint64, error) EthGetBlockTransactionCountByNumber(ctx context.Context, blkNum ethtypes.EthUint64) (ethtypes.EthUint64, error) EthGetBlockTransactionCountByHash(ctx context.Context, blkHash ethtypes.EthHash) (ethtypes.EthUint64, error) EthGetBlockByHash(ctx context.Context, blkHash ethtypes.EthHash, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetBlockByNumber(ctx context.Context, blkNum string, fullTxInfo bool) (ethtypes.EthBlock, error) EthGetTransactionByHashLimited(ctx context.Context, txHash *ethtypes.EthHash, limit abi.ChainEpoch) (*ethtypes.EthTx, error) EthGetTransactionHashByCid(ctx context.Context, cid cid.Cid) (*ethtypes.EthHash, error) EthGetMessageCidByTransactionHash(ctx context.Context, txHash *ethtypes.EthHash) (*cid.Cid, error) EthGetTransactionCount(ctx context.Context, sender ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthUint64, error) EthGetTransactionReceiptLimited(ctx context.Context, txHash ethtypes.EthHash, limit abi.ChainEpoch) (*api.EthTxReceipt, error) EthGetTransactionByBlockHashAndIndex(ctx context.Context, blkHash ethtypes.EthHash, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) EthGetTransactionByBlockNumberAndIndex(ctx context.Context, blkNum ethtypes.EthUint64, txIndex ethtypes.EthUint64) (ethtypes.EthTx, error) EthGetCode(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) EthGetStorageAt(ctx context.Context, address ethtypes.EthAddress, position ethtypes.EthBytes, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) EthGetBalance(ctx context.Context, address ethtypes.EthAddress, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBigInt, error) EthChainId(ctx context.Context) (ethtypes.EthUint64, error) EthSyncing(ctx context.Context) (ethtypes.EthSyncingResult, error) NetVersion(ctx context.Context) (string, error) NetListening(ctx context.Context) (bool, error) EthProtocolVersion(ctx context.Context) (ethtypes.EthUint64, error) EthGasPrice(ctx context.Context) (ethtypes.EthBigInt, error) EthFeeHistory(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthFeeHistory, error) EthMaxPriorityFeePerGas(ctx context.Context) (ethtypes.EthBigInt, error) EthEstimateGas(ctx context.Context, p jsonrpc.RawParams) (ethtypes.EthUint64, error) EthCall(ctx context.Context, tx ethtypes.EthCall, blkParam ethtypes.EthBlockNumberOrHash) (ethtypes.EthBytes, error) EthSendRawTransaction(ctx context.Context, rawTx ethtypes.EthBytes) (ethtypes.EthHash, error) EthGetLogs(ctx context.Context, filter *ethtypes.EthFilterSpec) (*ethtypes.EthFilterResult, error) EthGetFilterChanges(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) EthGetFilterLogs(ctx context.Context, id ethtypes.EthFilterID) (*ethtypes.EthFilterResult, error) EthNewFilter(ctx context.Context, filter *ethtypes.EthFilterSpec) (ethtypes.EthFilterID, error) EthNewBlockFilter(ctx context.Context) (ethtypes.EthFilterID, error) EthNewPendingTransactionFilter(ctx context.Context) (ethtypes.EthFilterID, error) EthUninstallFilter(ctx context.Context, id ethtypes.EthFilterID) (bool, error) EthSubscribe(ctx context.Context, params jsonrpc.RawParams) (ethtypes.EthSubscriptionID, error) EthUnsubscribe(ctx context.Context, id ethtypes.EthSubscriptionID) (bool, error) Web3ClientVersion(ctx context.Context) (string, error) EthTraceBlock(ctx context.Context, blkNum string) ([]*ethtypes.EthTraceBlock, error) EthTraceReplayBlockTransactions(ctx context.Context, blkNum string, traceTypes []string) ([]*ethtypes.EthTraceReplayBlockTransaction, error) EthTraceTransaction(ctx context.Context, txHash string) ([]*ethtypes.EthTraceTransaction, error) EthTraceFilter(ctx context.Context, filter ethtypes.EthTraceFilterCriteria) ([]*ethtypes.EthTraceFilterResult, error) GetActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) ([]*types.ActorEvent, error) SubscribeActorEventsRaw(ctx context.Context, filter *types.ActorEventFilter) (<-chan *types.ActorEvent, error) ChainGetEvents(ctx context.Context, eventsRoot cid.Cid) ([]types.Event, error) }
TargetAPI defines the API methods that the Node depends on (to make it easy to mock for tests)