useEvents
Fetch Starknet events continuously
By default this hook tries to fetches all the events (5 events per page) starting from genesis but you can pass arguments for filtering
Usage
Fetch ETH Transfer events:
import { useEvents } from "@starknet-react/core";
const {
data,
error,
fetchNextPage,
hasNextPage,
isFetchingNextPage,
} = useEvents(
{
address: "0x049d36570d4e46f48e99674bd3fcc84644ddd6b96f7c741b1562b82f9e004dc7",
eventName: "Transfer",
fromBlock: 442920,
toBlock: "latest",
pageSize: 10
}
);
Arguments
address
- Type:
Address | undefined
Filter events emitted by a specific contract address
eventName
- Type:
string | undefined
Filter events using an event name, e.g "Transfer".
fromBlock
- Type:
BlockIdentifier | undefined
The BlockIdentifer
type from starknet
excluding bigint
Start fetching events from this block, e.g 44920.
toBlock
- Type:
BlockIdentifier | undefined
The BlockIdentifer
type from starknet
excluding bigint
Stop fetching events at this block, e.g BlockTag.LATEST
.
pageSize
- Type:
number | undefined
The number of events returned from each individual query, default to 5.
Returns
data
- Type:
InfiniteData<Events, string>
InfiniteData<Events, string> = {
pages: Array<Events>; // Array containing all pages.
pageParams: Array<string>; // Array containing all page params.
}
The InfiniteData
type from react-query
and the Events
type from starknet
.
hasNextPage
- Type:
boolean
Will be true if there is a next page to be fetched
isFetchingNextPage
- Type:
boolean
Will be true while fetching the next page with fetchNextPage
.
fetchNextPage
- Type:
(options?: FetchNextPageOptions) => Promise<UseEventsResult>
UseEventsResult
is the same return type of the useEvents
hook
This function allows you to fetch the next page of events, make sure to check isFetchingNextPage
and hasNextPage
before calling it.
If options.cancelRefetch: boolean
is set to true, calling fetchNextPage
repeatedly will fetch events every time, whether the previous invocation has resolved or not. Also, the result from previous invocations will be ignored. If set to false, calling fetchNextPage
repeatedly won't have any effect until the first invocation has resolved. Default is true.
error
- Type:
Error | null
Any error thrown by the query.
status
- Type:
"error" | "pending" | "success"
The query status.
pending
: the query is being executed.success
: the query executed without an error.error
: the query threw an error.
isError
- Type:
boolean
Derived from status
.
isPending
- Type:
boolean
Derived from status
.
isSuccess
- Type:
boolean
Derived from status
.
fetchStatus
-
Type:
"fetching" | "paused" | "idle"
-
fetching
: the query is fetching. -
paused
: the query is paused. -
idle
: the query is not fetching.
isFetching
- Type:
boolean
Derived from fetchStatus
.