useClient
Hook for getting Client instance.
Import
import { useClient } from "starkweb/react";Usage
index.tsx
import { useClient } from "starkweb/react";
function App() {
const client = useClient();
}Parameters
import { type UseClientParameters } from "starkweb/react";chainId
config["chains"][number]["id"] | undefined
ID of chain to use when getting Client.
index.ts
import { useClient } from "starkweb/react";
import { mainnet } from "starkweb/react/chains";
function App() {
const client = useClient({
chainId: mainnet.chain_id,
});
}config
Config | undefined
Config to use instead of retrieving from the nearest StarkwebProvider.
index.tsx
import { useClient } from "starkweb/react";
import { config } from "./config";
function App() {
const client = useClient({
config,
});
}Return Type
import { type UseClientReturnType } from "starkweb/react";Client | undefined
Client instance.
Examples
Basic Usage
basic.tsx
import { useClient } from "starkweb/react";
function ClientInfo() {
const client = useClient();
if (!client) return <div>No client available</div>;
return (
<div>
<div>Client UID: {client.uid}</div>
<div>Transport Type: {client.transport.type}</div>
</div>
);
}With Chain Selection
chain-selection.tsx
import { useClient } from "starkweb/react";
import { mainnet } from "starkweb/chains";
import { useState } from "react";
function BlockFetcher() {
const [blockNumber, setBlockNumber] = useState<bigint>();
const client = useClient({
chainId: mainnet.chain_id,
});
async function fetchLatestBlock() {
if (!client) return;
const block = await client.getBlockNumber();
setBlockNumber(block);
}
return (
<div>
<button onClick={fetchLatestBlock}>Fetch Latest Block</button>
{blockNumber && <div>Latest Block: {blockNumber.toString()}</div>}
</div>
);
}With Custom Config
custom-config.tsx
import { useClient } from "starkweb/react";
import { createConfig, http } from "starkweb/core";
import { mainnet } from "starkweb/chains";
const config = createConfig({
chains: [mainnet],
transports: {
[mainnet.chain_id]: http(),
},
});
function CustomClientInfo() {
const client = useClient({
config,
});
return (
<div>
{client ? (
<div>Custom client connected</div>
) : (
<div>Custom client not available</div>
)}
</div>
);
}