useReadContract
Perform a read-only contract call with type safety.
If you don't need type safety, use useCall instead.
Usage
import { , } from "@starknetfoundation/starknet-start-react";
const { } = ();
const { , } = ({
: [
{
: "symbol",
: "function",
: [],
: [
{
: "core::felt252",
},
],
: "view",
},
] as ,
: "symbol",
: ..,
: [],
});Data
- Type:
unknown
The response from the contract. Type is inferred.
Arguments
functionName
- Type:
string
The contract function name.
args
- Type:
ArgsOrCalldata
The arguments to the function.
address
- Type:
0x${string}
The contract address.
abi
- Type:
Abi
The contract abi which needs to be a const for type safety
blockIdentifier
- Type:
BlockNumber | undefined
Perform the query against the provided block, e.g. BlockTag.LATEST.
watch
- Type:
boolean | undefined
If true, refetch the data at every block.
enabled
- Type:
boolean | undefined
If false, don't perform the query.
refetchInterval
- Type:
number | false | ((query: Query) => number | false | undefined)
If set to a number, the query is refetched at the provided interval (in milliseconds).
If set to a function, the callback will be used to determine the refetch interval.
Returns
data
- Type:
Data | undefined
The resolved data.
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.
isLoading
- Type:
boolean
True while the query is loading for the first time.
refetch
- Type:
(options?: RefetchOptions) => Promise<QueryObserverResult<Data, Error>>
Refetch the query.