Hierarchy (View Summary)

Constructors

  • Parameters

    • client: {
          extend: <
              const client extends
                  {
                      account?: undefined;
                      batch?: undefined;
                      cacheTime?: undefined;
                      ccipRead?: undefined;
                      chain?: undefined;
                      key?: undefined;
                      name?: undefined;
                      pollingInterval?: undefined;
                      request?: undefined;
                      transport?: undefined;
                      type?: undefined;
                      uid?: undefined;
                      [key: string]: unknown;
                  } & ExactPartial<
                      ExtendableProtectedActions<Transport, undefined | Chain, undefined>,
                  >,
          >(
              fn: (
                  client: Client<
                      Transport,
                      undefined
                      | Chain,
                      undefined,
                      PublicRpcSchema,
                      PublicActions<Transport, undefined | Chain>,
                  >,
              ) => client,
          ) => Client<
              Transport,
              undefined
              | Chain,
              undefined,
              PublicRpcSchema,
              { [K in string | number | symbol]: client[K] } & PublicActions<
                  Transport,
                  undefined
                  | Chain,
              >,
          >;
          account: undefined;
          batch?: { multicall?: boolean | { batchSize?: number; wait?: number } };
          cacheTime: number;
          ccipRead?:
              | false
              | {
                  request?: (
                      parameters: CcipRequestParameters,
                  ) => Promise<`0x${string}`>;
              };
          chain: undefined
          | Chain;
          key: string;
          name: string;
          pollingInterval: number;
          request: EIP1193RequestFn<PublicRpcSchema>;
          transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
          type: string;
          uid: string;
          call: (
              parameters: CallParameters<undefined | Chain>,
          ) => Promise<CallReturnType>;
          createAccessList: (
              parameters: CreateAccessListParameters<undefined | Chain>,
          ) => Promise<{ accessList: AccessList; gasUsed: bigint }>;
          createBlockFilter: () => Promise<
              {
                  id: `0x${string}`;
                  request: EIP1193RequestFn<
                      readonly [
                          {
                              Method: "eth_getFilterChanges";
                              Parameters: [filterId: `0x${string}`];
                              ReturnType: `0x${(...)}`[] | RpcLog[];
                          },
                          {
                              Method: "eth_getFilterLogs";
                              Parameters: [filterId: `0x${string}`];
                              ReturnType: RpcLog[];
                          },
                          {
                              Method: "eth_uninstallFilter";
                              Parameters: [filterId: `0x${string}`];
                              ReturnType: boolean;
                          },
                      ],
                  >;
                  type: "block";
              },
          >;
          createContractEventFilter: <
              const abi extends Abi
              | readonly unknown[],
              eventName extends undefined | string,
              args extends undefined | Record<string, unknown> | readonly unknown[],
              strict extends undefined | boolean = undefined,
              fromBlock extends undefined | bigint | BlockTag = undefined,
              toBlock extends undefined | bigint | BlockTag = undefined,
          >(
              args: CreateContractEventFilterParameters<
                  abi,
                  eventName,
                  args,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          ) => Promise<
              CreateContractEventFilterReturnType<
                  abi,
                  eventName,
                  args,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          >;
          createEventFilter: <
              const abiEvent extends undefined
              | AbiEvent = undefined,
              const abiEvents extends
                  undefined | readonly unknown[] | readonly AbiEvent[] = abiEvent extends AbiEvent
                  ? [abiEvent<abiEvent>]
                  : undefined,
              strict extends undefined
              | boolean = undefined,
              fromBlock extends undefined | bigint | BlockTag = undefined,
              toBlock extends undefined | bigint | BlockTag = undefined,
              _EventName extends undefined | string = MaybeAbiEventName<abiEvent>,
              _Args extends
                  undefined | Record<string, unknown> | readonly unknown[] = undefined,
          >(
              args?: CreateEventFilterParameters<
                  abiEvent,
                  abiEvents,
                  strict,
                  fromBlock,
                  toBlock,
                  _EventName,
                  _Args,
              >,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: Filter<
                      "event",
                      abiEvents,
                      _EventName,
                      _Args,
                      strict,
                      fromBlock,
                      toBlock,
                  >[K]
              },
          >;
          createPendingTransactionFilter: () => Promise<
              {
                  id: `0x${string}`;
                  request: EIP1193RequestFn<
                      readonly [
                          {
                              Method: "eth_getFilterChanges";
                              Parameters: [filterId: `0x${string}`];
                              ReturnType: `0x${(...)}`[] | RpcLog[];
                          },
                          {
                              Method: "eth_getFilterLogs";
                              Parameters: [filterId: `0x${string}`];
                              ReturnType: RpcLog[];
                          },
                          {
                              Method: "eth_uninstallFilter";
                              Parameters: [filterId: `0x${string}`];
                              ReturnType: boolean;
                          },
                      ],
                  >;
                  type: "transaction";
              },
          >;
          estimateContractGas: <
              chain extends undefined
              | Chain,
              const abi extends Abi | readonly unknown[],
              functionName extends string,
              args extends unknown,
          >(
              args: EstimateContractGasParameters<abi, functionName, args, chain>,
          ) => Promise<bigint>;
          estimateGas: (
              args: EstimateGasParameters<undefined | Chain>,
          ) => Promise<bigint>;
          getBalance: (args: GetBalanceParameters) => Promise<bigint>;
          getBlobBaseFee: () => Promise<bigint>;
          getBlock: <
              includeTransactions extends boolean = false,
              blockTag extends BlockTag = "latest",
          >(
              args?: GetBlockParameters<includeTransactions, blockTag>,
          ) => Promise<
              {
                  baseFeePerGas: null
                  | bigint;
                  blobGasUsed: bigint;
                  difficulty: bigint;
                  excessBlobGas: bigint;
                  extraData: `0x${string}`;
                  gasLimit: bigint;
                  gasUsed: bigint;
                  hash: blockTag extends "pending" ? null : `0x${string}`;
                  logsBloom: blockTag extends "pending" ? null : `0x${string}`;
                  miner: `0x${string}`;
                  mixHash: `0x${string}`;
                  nonce: blockTag extends "pending" ? null : `0x${string}`;
                  number: blockTag extends "pending" ? null : bigint;
                  parentBeaconBlockRoot?: `0x${string}`;
                  parentHash: `0x${string}`;
                  receiptsRoot: `0x${string}`;
                  sealFields: `0x${string}`[];
                  sha3Uncles: `0x${string}`;
                  size: bigint;
                  stateRoot: `0x${string}`;
                  timestamp: bigint;
                  totalDifficulty: null | bigint;
                  transactionsRoot: `0x${string}`;
                  uncles: `0x${string}`[];
                  withdrawals?: Withdrawal[];
                  withdrawalsRoot?: `0x${string}`;
                  transactions: includeTransactions extends true
                      ? (
                          | {
                              gasPrice: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : `0x${(...)}`;
                              blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              to: null | `0x${(...)}`;
                              transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : number;
                              typeHex: null | `0x${(...)}`;
                              v: bigint;
                              value: bigint;
                              accessList?: undefined;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              chainId?: number;
                              yParity?: undefined;
                              type: "legacy";
                          }
                          | {
                              gasPrice: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : `0x${(...)}`;
                              blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              to: null | `0x${(...)}`;
                              transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : number;
                              typeHex: null | `0x${(...)}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              chainId: number;
                              type: "eip2930";
                          }
                          | {
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : `0x${(...)}`;
                              blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              to: null | `0x${(...)}`;
                              transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : number;
                              typeHex: null | `0x${(...)}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes?: undefined;
                              chainId: number;
                              type: "eip1559";
                          }
                          | {
                              gasPrice?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : `0x${(...)}`;
                              blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              to: null | `0x${(...)}`;
                              transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : number;
                              typeHex: null | `0x${(...)}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                              accessList: AccessList;
                              authorizationList?: undefined;
                              blobVersionedHashes: readonly `0x${(...)}`[];
                              chainId: number;
                              type: "eip4844";
                          }
                          | {
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas: bigint;
                              maxPriorityFeePerGas: bigint;
                              blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : `0x${(...)}`;
                              blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : bigint;
                              from: `0x${string}`;
                              gas: bigint;
                              hash: `0x${string}`;
                              input: `0x${string}`;
                              nonce: number;
                              r: `0x${string}`;
                              s: `0x${string}`;
                              to: null | `0x${(...)}`;
                              transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                  ? null
                                  : number;
                              typeHex: null | `0x${(...)}`;
                              v: bigint;
                              value: bigint;
                              yParity: number;
                              accessList: AccessList;
                              authorizationList: SignedAuthorizationList;
                              blobVersionedHashes?: undefined;
                              chainId: number;
                              type: "eip7702";
                          }
                      )[]
                      : `0x${string}`[];
              },
          >;
          getBlockNumber: (args?: GetBlockNumberParameters) => Promise<bigint>;
          getBlockTransactionCount: (
              args?: GetBlockTransactionCountParameters,
          ) => Promise<number>;
          getBytecode: (args: GetCodeParameters) => Promise<GetCodeReturnType>;
          getChainId: () => Promise<number>;
          getCode: (args: GetCodeParameters) => Promise<GetCodeReturnType>;
          getContractEvents: <
              const abi extends Abi
              | readonly unknown[],
              eventName extends undefined | string = undefined,
              strict extends undefined | boolean = undefined,
              fromBlock extends undefined | bigint | BlockTag = undefined,
              toBlock extends undefined | bigint | BlockTag = undefined,
          >(
              args: GetContractEventsParameters<
                  abi,
                  eventName,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          ) => Promise<
              GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>,
          >;
          getEip712Domain: (
              args: GetEip712DomainParameters,
          ) => Promise<GetEip712DomainReturnType>;
          getEnsAddress: (
              args: {
                  coinType?: number;
                  gatewayUrls?: string[];
                  name: string;
                  strict?: boolean;
                  universalResolverAddress?: `0x${string}`;
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
              },
          ) => Promise<GetEnsAddressReturnType>;
          getEnsAvatar: (
              args: {
                  assetGatewayUrls?: AssetGatewayUrls;
                  name: string;
                  gatewayUrls?: string[];
                  strict?: boolean;
                  universalResolverAddress?: `0x${string}`;
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
              },
          ) => Promise<GetEnsAvatarReturnType>;
          getEnsName: (
              args: {
                  address: `0x${string}`;
                  gatewayUrls?: string[];
                  strict?: boolean;
                  universalResolverAddress?: `0x${string}`;
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
              },
          ) => Promise<GetEnsNameReturnType>;
          getEnsResolver: (
              args: {
                  name: string;
                  universalResolverAddress?: `0x${string}`;
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
              },
          ) => Promise<`0x${string}`>;
          getEnsText: (
              args: {
                  name: string;
                  gatewayUrls?: string[];
                  key: string;
                  strict?: boolean;
                  universalResolverAddress?: `0x${string}`;
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
              },
          ) => Promise<GetEnsTextReturnType>;
          getFeeHistory: (
              args: GetFeeHistoryParameters,
          ) => Promise<GetFeeHistoryReturnType>;
          estimateFeesPerGas: <
              chainOverride extends undefined
              | Chain = undefined,
              type extends FeeValuesType = "eip1559",
          >(
              args?: EstimateFeesPerGasParameters<
                  undefined
                  | Chain,
                  chainOverride,
                  type,
              >,
          ) => Promise<EstimateFeesPerGasReturnType<type>>;
          getFilterChanges: <
              filterType extends FilterType,
              const abi extends undefined | Abi | readonly unknown[],
              eventName extends undefined | string,
              strict extends undefined | boolean = undefined,
              fromBlock extends undefined | bigint | BlockTag = undefined,
              toBlock extends undefined | bigint | BlockTag = undefined,
          >(
              args: GetFilterChangesParameters<
                  filterType,
                  abi,
                  eventName,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          ) => Promise<
              GetFilterChangesReturnType<
                  filterType,
                  abi,
                  eventName,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          >;
          getFilterLogs: <
              const abi extends undefined
              | Abi
              | readonly unknown[],
              eventName extends undefined | string,
              strict extends undefined | boolean = undefined,
              fromBlock extends undefined | bigint | BlockTag = undefined,
              toBlock extends undefined | bigint | BlockTag = undefined,
          >(
              args: GetFilterLogsParameters<
                  abi,
                  eventName,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          ) => Promise<
              GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>,
          >;
          getGasPrice: () => Promise<bigint>;
          getLogs: <
              const abiEvent extends undefined
              | AbiEvent = undefined,
              const abiEvents extends
                  undefined | readonly unknown[] | readonly AbiEvent[] = abiEvent extends AbiEvent
                  ? [abiEvent<abiEvent>]
                  : undefined,
              strict extends undefined
              | boolean = undefined,
              fromBlock extends undefined | bigint | BlockTag = undefined,
              toBlock extends undefined | bigint | BlockTag = undefined,
          >(
              args?: GetLogsParameters<
                  abiEvent,
                  abiEvents,
                  strict,
                  fromBlock,
                  toBlock,
              >,
          ) => Promise<
              GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>,
          >;
          getProof: (args: GetProofParameters) => Promise<GetProofReturnType>;
          estimateMaxPriorityFeePerGas: <
              chainOverride extends undefined
              | Chain = undefined,
          >(
              args?: { chain: null | chainOverride },
          ) => Promise<bigint>;
          getStorageAt: (
              args: GetStorageAtParameters,
          ) => Promise<GetStorageAtReturnType>;
          getTransaction: <blockTag extends BlockTag = "latest">(
              args: GetTransactionParameters<blockTag>,
          ) => Promise<
              | {
                  gasPrice: bigint;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas?: undefined;
                  maxPriorityFeePerGas?: undefined;
                  blockHash: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : `0x${string}`;
                  blockNumber: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : bigint;
                  from: `0x${string}`;
                  gas: bigint;
                  hash: `0x${string}`;
                  input: `0x${string}`;
                  nonce: number;
                  r: `0x${string}`;
                  s: `0x${string}`;
                  to: null | `0x${string}`;
                  transactionIndex: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : number;
                  typeHex: null | `0x${string}`;
                  v: bigint;
                  value: bigint;
                  accessList?: undefined;
                  authorizationList?: undefined;
                  blobVersionedHashes?: undefined;
                  chainId?: number;
                  yParity?: undefined;
                  type: "legacy";
              }
              | {
                  gasPrice: bigint;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas?: undefined;
                  maxPriorityFeePerGas?: undefined;
                  blockHash: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : `0x${string}`;
                  blockNumber: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : bigint;
                  from: `0x${string}`;
                  gas: bigint;
                  hash: `0x${string}`;
                  input: `0x${string}`;
                  nonce: number;
                  r: `0x${string}`;
                  s: `0x${string}`;
                  to: null | `0x${string}`;
                  transactionIndex: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : number;
                  typeHex: null | `0x${string}`;
                  v: bigint;
                  value: bigint;
                  yParity: number;
                  accessList: AccessList;
                  authorizationList?: undefined;
                  blobVersionedHashes?: undefined;
                  chainId: number;
                  type: "eip2930";
              }
              | {
                  gasPrice?: undefined;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas: bigint;
                  maxPriorityFeePerGas: bigint;
                  blockHash: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : `0x${string}`;
                  blockNumber: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : bigint;
                  from: `0x${string}`;
                  gas: bigint;
                  hash: `0x${string}`;
                  input: `0x${string}`;
                  nonce: number;
                  r: `0x${string}`;
                  s: `0x${string}`;
                  to: null | `0x${string}`;
                  transactionIndex: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : number;
                  typeHex: null | `0x${string}`;
                  v: bigint;
                  value: bigint;
                  yParity: number;
                  accessList: AccessList;
                  authorizationList?: undefined;
                  blobVersionedHashes?: undefined;
                  chainId: number;
                  type: "eip1559";
              }
              | {
                  gasPrice?: undefined;
                  maxFeePerBlobGas: bigint;
                  maxFeePerGas: bigint;
                  maxPriorityFeePerGas: bigint;
                  blockHash: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : `0x${string}`;
                  blockNumber: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : bigint;
                  from: `0x${string}`;
                  gas: bigint;
                  hash: `0x${string}`;
                  input: `0x${string}`;
                  nonce: number;
                  r: `0x${string}`;
                  s: `0x${string}`;
                  to: null | `0x${string}`;
                  transactionIndex: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : number;
                  typeHex: null | `0x${string}`;
                  v: bigint;
                  value: bigint;
                  yParity: number;
                  accessList: AccessList;
                  authorizationList?: undefined;
                  blobVersionedHashes: readonly `0x${string}`[];
                  chainId: number;
                  type: "eip4844";
              }
              | {
                  gasPrice?: undefined;
                  maxFeePerBlobGas?: undefined;
                  maxFeePerGas: bigint;
                  maxPriorityFeePerGas: bigint;
                  blockHash: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : `0x${string}`;
                  blockNumber: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : bigint;
                  from: `0x${string}`;
                  gas: bigint;
                  hash: `0x${string}`;
                  input: `0x${string}`;
                  nonce: number;
                  r: `0x${string}`;
                  s: `0x${string}`;
                  to: null | `0x${string}`;
                  transactionIndex: (blockTag extends "pending" ? true : false) extends true
                      ? null
                      : number;
                  typeHex: null | `0x${string}`;
                  v: bigint;
                  value: bigint;
                  yParity: number;
                  accessList: AccessList;
                  authorizationList: SignedAuthorizationList;
                  blobVersionedHashes?: undefined;
                  chainId: number;
                  type: "eip7702";
              },
          >;
          getTransactionConfirmations: (
              args: GetTransactionConfirmationsParameters<undefined | Chain>,
          ) => Promise<bigint>;
          getTransactionCount: (
              args: GetTransactionCountParameters,
          ) => Promise<number>;
          getTransactionReceipt: (
              args: GetTransactionReceiptParameters,
          ) => Promise<TransactionReceipt>;
          multicall: <
              const contracts extends readonly unknown[],
              allowFailure extends boolean = true,
          >(
              args: MulticallParameters<contracts, allowFailure>,
          ) => Promise<MulticallReturnType<contracts, allowFailure>>;
          prepareTransactionRequest: <
              const request extends
                  (
                      | Omit<
                          {
                              accessList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to: null
                              | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                              accessList?: AccessList;
                              blobs: readonly `0x${string}`[] | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              kzg?: Kzg;
                              sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg } & {
                      nonceManager?: NonceManager;
                      parameters?: readonly PrepareTransactionRequestParameterType[];
                  },
              chainOverride extends undefined
              | Chain = undefined,
              accountOverride extends undefined | `0x${string}` | Account = undefined,
          >(
              args: PrepareTransactionRequestParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  accountOverride,
                  request,
              >,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: (
                      UnionRequiredBy<
                          Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                              chainId?: (...) | (...);
                          },
                          ParameterTypeToParameters<
                              (...)[(...)] extends readonly (...)[]
                                  ? (...)[(...)]
                                  : (...) | (...) | (...) | (...) | (...) | (...),
                          >,
                      > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">)
                  )[K]
              },
          >;
          readContract: <
              const abi extends Abi
              | readonly unknown[],
              functionName extends string,
              const args extends unknown,
          >(
              args: ReadContractParameters<abi, functionName, args>,
          ) => Promise<ReadContractReturnType<abi, functionName, args>>;
          sendRawTransaction: (
              args: SendRawTransactionParameters,
          ) => Promise<`0x${string}`>;
          simulate: <const calls extends readonly unknown[]>(
              args: SimulateParameters<calls>,
          ) => Promise<SimulateReturnType<calls>>;
          simulateContract: <
              const abi extends Abi
              | readonly unknown[],
              functionName extends string,
              const args extends unknown,
              chainOverride extends undefined | Chain,
              accountOverride extends undefined | `0x${string}` | Account = undefined,
          >(
              args: SimulateContractParameters<
                  abi,
                  functionName,
                  args,
                  undefined
                  | Chain,
                  chainOverride,
                  accountOverride,
              >,
          ) => Promise<
              SimulateContractReturnType<
                  abi,
                  functionName,
                  args,
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  accountOverride,
              >,
          >;
          verifyMessage: (
              args: {
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
                  address: `0x${string}`;
                  signature: `0x${string}` | ByteArray | Signature;
                  universalSignatureVerifierAddress?: `0x${string}`;
                  factory?: `0x${string}`;
                  factoryData?: `0x${string}`;
                  message: SignableMessage;
              },
          ) => Promise<boolean>;
          verifySiweMessage: (
              args: {
                  blockNumber?: bigint;
                  blockTag?: BlockTag;
                  message: string;
                  signature: `0x${string}`;
                  address?: `0x${string}`;
                  domain?: string;
                  nonce?: string;
                  scheme?: string;
                  time?: Date;
              },
          ) => Promise<boolean>;
          verifyTypedData: (args: VerifyTypedDataParameters) => Promise<boolean>;
          uninstallFilter: (args: UninstallFilterParameters) => Promise<boolean>;
          waitForTransactionReceipt: (
              args: WaitForTransactionReceiptParameters<undefined | Chain>,
          ) => Promise<TransactionReceipt>;
          watchBlockNumber: (
              args: WatchBlockNumberParameters,
          ) => WatchBlockNumberReturnType;
          watchBlocks: <
              includeTransactions extends boolean = false,
              blockTag extends BlockTag = "latest",
          >(
              args: WatchBlocksParameters<
                  Transport,
                  undefined
                  | Chain,
                  includeTransactions,
                  blockTag,
              >,
          ) => WatchBlocksReturnType;
          watchContractEvent: <
              const abi extends Abi
              | readonly unknown[],
              eventName extends string,
              strict extends undefined | boolean = undefined,
          >(
              args: WatchContractEventParameters<abi, eventName, strict, Transport>,
          ) => WatchContractEventReturnType;
          watchEvent: <
              const abiEvent extends undefined
              | AbiEvent = undefined,
              const abiEvents extends
                  undefined | readonly unknown[] | readonly AbiEvent[] = abiEvent extends AbiEvent
                  ? [abiEvent<abiEvent>]
                  : undefined,
              strict extends undefined
              | boolean = undefined,
          >(
              args: WatchEventParameters<abiEvent, abiEvents, strict, Transport>,
          ) => WatchEventReturnType;
          watchPendingTransactions: (
              args: WatchPendingTransactionsParameters<Transport>,
          ) => WatchPendingTransactionsReturnType;
      } & {
          extend: <
              const client extends
                  {
                      account?: undefined;
                      batch?: undefined;
                      cacheTime?: undefined;
                      ccipRead?: undefined;
                      chain?: undefined;
                      key?: undefined;
                      name?: undefined;
                      pollingInterval?: undefined;
                      request?: undefined;
                      transport?: undefined;
                      type?: undefined;
                      uid?: undefined;
                      [key: string]: unknown;
                  } & ExactPartial<
                      ExtendableProtectedActions<
                          Transport,
                          undefined
                          | Chain,
                          undefined | Account,
                      >,
                  >,
          >(
              fn: (
                  client: Client<
                      Transport,
                      undefined
                      | Chain,
                      undefined | Account,
                      WalletRpcSchema,
                      WalletActions<undefined | Chain, undefined | Account>,
                  >,
              ) => client,
          ) => Client<
              Transport,
              undefined
              | Chain,
              undefined | Account,
              WalletRpcSchema,
              { [K in string | number | symbol]: client[K] } & WalletActions<
                  undefined
                  | Chain,
                  undefined | Account,
              >,
          >;
          account: undefined | Account;
          batch?: { multicall?: boolean | { batchSize?: number; wait?: number } };
          cacheTime: number;
          ccipRead?:
              | false
              | {
                  request?: (
                      parameters: CcipRequestParameters,
                  ) => Promise<`0x${string}`>;
              };
          chain: undefined
          | Chain;
          key: string;
          name: string;
          pollingInterval: number;
          request: EIP1193RequestFn<WalletRpcSchema>;
          transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>;
          type: string;
          uid: string;
          addChain: (args: AddChainParameters) => Promise<void>;
          deployContract: <
              const abi extends Abi
              | readonly unknown[],
              chainOverride extends undefined | Chain,
          >(
              args: DeployContractParameters<
                  abi,
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
              >,
          ) => Promise<`0x${string}`>;
          getAddresses: () => Promise<GetAddressesReturnType>;
          getChainId: () => Promise<number>;
          getPermissions: () => Promise<GetPermissionsReturnType>;
          prepareTransactionRequest: <
              const request extends
                  (
                      | Omit<
                          {
                              accessList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to: null
                              | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                              accessList?: AccessList;
                              blobs: readonly `0x${string}`[] | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              kzg?: Kzg;
                              sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg } & {
                      nonceManager?: NonceManager;
                      parameters?: readonly PrepareTransactionRequestParameterType[];
                  },
              chainOverride extends undefined
              | Chain = undefined,
              accountOverride extends undefined | `0x${string}` | Account = undefined,
          >(
              args: PrepareTransactionRequestParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  accountOverride,
                  request,
              >,
          ) => Promise<
              {
                  [K in string
                  | number
                  | symbol]: (
                      UnionRequiredBy<
                          Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                              chainId?: (...) | (...);
                          },
                          ParameterTypeToParameters<
                              (...)[(...)] extends readonly (...)[]
                                  ? (...)[(...)]
                                  : (...) | (...) | (...) | (...) | (...) | (...),
                          >,
                      > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">)
                  )[K]
              },
          >;
          requestAddresses: () => Promise<RequestAddressesReturnType>;
          requestPermissions: (
              args: {
                  eth_accounts: Record<string, any>;
                  [key: string]: Record<string, any>;
              },
          ) => Promise<RequestPermissionsReturnType>;
          sendRawTransaction: (
              args: SendRawTransactionParameters,
          ) => Promise<`0x${string}`>;
          sendTransaction: <
              const request extends
                  (
                      | Omit<
                          {
                              accessList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to: null
                              | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                              accessList?: AccessList;
                              blobs: readonly `0x${string}`[] | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              kzg?: Kzg;
                              sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                          },
                          "from",
                      >
                  ) & { kzg?: Kzg },
              chainOverride extends undefined
              | Chain = undefined,
          >(
              args: SendTransactionParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  request,
              >,
          ) => Promise<`0x${string}`>;
          signMessage: (
              args: SignMessageParameters<undefined | Account>,
          ) => Promise<`0x${string}`>;
          signTransaction: <
              chainOverride extends undefined
              | Chain,
              const request extends
              
                      | Omit<
                          {
                              accessList?: undefined;
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "legacy";
                              value?: bigint;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: bigint;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: undefined;
                              maxPriorityFeePerGas?: undefined;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip2930";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip1559";
                              value?: bigint;
                              accessList?: AccessList;
                          },
                          "from",
                      >
                      | Omit<
                          {
                              authorizationList?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas: bigint;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to: null
                              | `0x${string}`;
                              type?: "eip4844";
                              value?: bigint;
                              accessList?: AccessList;
                              blobs: readonly `0x${string}`[] | readonly ByteArray[];
                              blobVersionedHashes?: readonly `0x${string}`[];
                              kzg?: Kzg;
                              sidecars?: readonly BlobSidecar<`0x${string}`>[];
                          },
                          "from",
                      >
                      | Omit<
                          {
                              blobs?: undefined;
                              blobVersionedHashes?: undefined;
                              kzg?: undefined;
                              sidecars?: undefined;
                              gasPrice?: undefined;
                              maxFeePerBlobGas?: undefined;
                              maxFeePerGas?: bigint;
                              maxPriorityFeePerGas?: bigint;
                              data?: `0x${string}`;
                              from?: `0x${string}`;
                              gas?: bigint;
                              nonce?: number;
                              to?: null
                              | `0x${string}`;
                              type?: "eip7702";
                              value?: bigint;
                              accessList?: AccessList;
                              authorizationList?: AuthorizationList<number, boolean>;
                          },
                          "from",
                      > = UnionOmit<
                  ExtractChainFormatterParameters<
                      DeriveChain<undefined | Chain, chainOverride>,
                      "transactionRequest",
                      TransactionRequest,
                  >,
                  "from",
              >,
          >(
              args: SignTransactionParameters<
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
                  request,
              >,
          ) => Promise<
              TransactionSerialized<
                  GetTransactionType<
                      request,
                      | (request extends LegacyProperties ? "legacy" : never)
                      | (request extends EIP1559Properties ? "eip1559" : never)
                      | (request extends EIP2930Properties ? "eip2930" : never)
                      | (request extends EIP4844Properties ? "eip4844" : never)
                      | (request extends EIP7702Properties ? "eip7702" : never)
                      | (
                          request["type"] extends undefined
                          | string
                              ? Extract<any[any], string>
                              : never
                      ),
                  >,

                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                          > extends "eip1559"
                              ? `0x02${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                          > extends "eip2930"
                              ? `0x01${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                          > extends "eip4844"
                              ? `0x03${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                          > extends "eip7702"
                              ? `0x04${string}`
                              : never
                      )
                      | (
                          GetTransactionType<
                              request,
                              | (request extends LegacyProperties ? "legacy" : never)
                              | (request extends EIP1559Properties ? "eip1559" : never)
                              | (request extends EIP2930Properties ? "eip2930" : never)
                              | (request extends EIP4844Properties ? "eip4844" : never)
                              | (request extends EIP7702Properties ? "eip7702" : never)
                              | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                          > extends "legacy"
                              ? TransactionSerializedLegacy
                              : never
                      ),
              >,
          >;
          signTypedData: <
              const typedData extends
                  | {
                      string?: undefined;
                      address?: undefined;
                      bool?: undefined;
                      bytes?: undefined;
                      bytes23?: undefined;
                      bytes1?: undefined;
                      bytes2?: undefined;
                      bytes3?: undefined;
                      bytes4?: undefined;
                      bytes5?: undefined;
                      bytes6?: undefined;
                      bytes7?: undefined;
                      bytes8?: undefined;
                      bytes9?: undefined;
                      bytes10?: undefined;
                      bytes11?: undefined;
                      bytes12?: undefined;
                      bytes13?: undefined;
                      bytes14?: undefined;
                      bytes15?: undefined;
                      bytes16?: undefined;
                      bytes17?: undefined;
                      bytes18?: undefined;
                      bytes19?: undefined;
                      bytes20?: undefined;
                      bytes21?: undefined;
                      bytes22?: undefined;
                      bytes24?: undefined;
                      bytes25?: undefined;
                      bytes26?: undefined;
                      bytes27?: undefined;
                      bytes28?: undefined;
                      bytes29?: undefined;
                      bytes30?: undefined;
                      bytes31?: undefined;
                      bytes32?: undefined;
                      int8?: undefined;
                      int16?: undefined;
                      int24?: undefined;
                      int32?: undefined;
                      int40?: undefined;
                      int48?: undefined;
                      int56?: undefined;
                      int64?: undefined;
                      int72?: undefined;
                      int80?: undefined;
                      int88?: undefined;
                      int96?: undefined;
                      int104?: undefined;
                      int112?: undefined;
                      int120?: undefined;
                      int128?: undefined;
                      int136?: undefined;
                      int144?: undefined;
                      int152?: undefined;
                      int160?: undefined;
                      int168?: undefined;
                      int176?: undefined;
                      int184?: undefined;
                      int192?: undefined;
                      int200?: undefined;
                      int208?: undefined;
                      int216?: undefined;
                      int224?: undefined;
                      int232?: undefined;
                      int240?: undefined;
                      int248?: undefined;
                      int256?: undefined;
                      uint8?: undefined;
                      uint16?: undefined;
                      uint24?: undefined;
                      uint32?: undefined;
                      uint40?: undefined;
                      uint48?: undefined;
                      uint56?: undefined;
                      uint64?: undefined;
                      uint72?: undefined;
                      uint80?: undefined;
                      uint88?: undefined;
                      uint96?: undefined;
                      uint104?: undefined;
                      uint112?: undefined;
                      uint120?: undefined;
                      uint128?: undefined;
                      uint136?: undefined;
                      uint144?: undefined;
                      uint152?: undefined;
                      uint160?: undefined;
                      uint168?: undefined;
                      uint176?: undefined;
                      uint184?: undefined;
                      uint192?: undefined;
                      uint200?: undefined;
                      uint208?: undefined;
                      uint216?: undefined;
                      uint224?: undefined;
                      uint232?: undefined;
                      uint240?: undefined;
                      uint248?: undefined;
                      uint256?: undefined;
                      [key: string]: readonly TypedDataParameter[];
                      [key: `string[${string}]`]: undefined;
                      [key: `function[${string}]`]: undefined;
                      [key: `address[${string}]`]: undefined;
                      [key: `bool[${string}]`]: undefined;
                      [key: `bytes[${string}]`]: undefined;
                      [key: `bytes23[${string}]`]: undefined;
                      [key: `bytes1[${string}]`]: undefined;
                      [key: `bytes2[${string}]`]: undefined;
                      [key: `bytes3[${string}]`]: undefined;
                      [key: `bytes4[${string}]`]: undefined;
                      [key: `bytes5[${string}]`]: undefined;
                      [key: `bytes6[${string}]`]: undefined;
                      [key: `bytes7[${string}]`]: undefined;
                      [key: `bytes8[${string}]`]: undefined;
                      [key: `bytes9[${string}]`]: undefined;
                      [key: `bytes10[${string}]`]: undefined;
                      [key: `bytes11[${string}]`]: undefined;
                      [key: `bytes12[${string}]`]: undefined;
                      [key: `bytes13[${string}]`]: undefined;
                      [key: `bytes14[${string}]`]: undefined;
                      [key: `bytes15[${string}]`]: undefined;
                      [key: `bytes16[${string}]`]: undefined;
                      [key: `bytes17[${string}]`]: undefined;
                      [key: `bytes18[${string}]`]: undefined;
                      [key: `bytes19[${string}]`]: undefined;
                      [key: `bytes20[${string}]`]: undefined;
                      [key: `bytes21[${string}]`]: undefined;
                      [key: `bytes22[${string}]`]: undefined;
                      [key: `bytes24[${string}]`]: undefined;
                      [key: `bytes25[${string}]`]: undefined;
                      [key: `bytes26[${string}]`]: undefined;
                      [key: `bytes27[${string}]`]: undefined;
                      [key: `bytes28[${string}]`]: undefined;
                      [key: `bytes29[${string}]`]: undefined;
                      [key: `bytes30[${string}]`]: undefined;
                      [key: `bytes31[${string}]`]: undefined;
                      [key: `bytes32[${string}]`]: undefined;
                      [key: `int[${string}]`]: undefined;
                      [key: `int8[${string}]`]: undefined;
                      [key: `int16[${string}]`]: undefined;
                      [key: `int24[${string}]`]: undefined;
                      [key: `int32[${string}]`]: undefined;
                      [key: `int40[${string}]`]: undefined;
                      [key: `int48[${string}]`]: undefined;
                      [key: `int56[${string}]`]: undefined;
                      [key: `int64[${string}]`]: undefined;
                      [key: `int72[${string}]`]: undefined;
                      [key: `int80[${string}]`]: undefined;
                      [key: `int88[${string}]`]: undefined;
                      [key: `int96[${string}]`]: undefined;
                      [key: `int104[${string}]`]: undefined;
                      [key: `int112[${string}]`]: undefined;
                      [key: `int120[${string}]`]: undefined;
                      [key: `int128[${string}]`]: undefined;
                      [key: `int136[${string}]`]: undefined;
                      [key: `int144[${string}]`]: undefined;
                      [key: `int152[${string}]`]: undefined;
                      [key: `int160[${string}]`]: undefined;
                      [key: `int168[${string}]`]: undefined;
                      [key: `int176[${string}]`]: undefined;
                      [key: `int184[${string}]`]: undefined;
                      [key: `int192[${string}]`]: undefined;
                      [key: `int200[${string}]`]: undefined;
                      [key: `int208[${string}]`]: undefined;
                      [key: `int216[${string}]`]: undefined;
                      [key: `int224[${string}]`]: undefined;
                      [key: `int232[${string}]`]: undefined;
                      [key: `int240[${string}]`]: undefined;
                      [key: `int248[${string}]`]: undefined;
                      [key: `int256[${string}]`]: undefined;
                      [key: `uint[${string}]`]: undefined;
                      [key: `uint8[${string}]`]: undefined;
                      [key: `uint16[${string}]`]: undefined;
                      [key: `uint24[${string}]`]: undefined;
                      [key: `uint32[${string}]`]: undefined;
                      [key: `uint40[${string}]`]: undefined;
                      [key: `uint48[${string}]`]: undefined;
                      [key: `uint56[${string}]`]: undefined;
                      [key: `uint64[${string}]`]: undefined;
                      [key: `uint72[${string}]`]: undefined;
                      [key: `uint80[${string}]`]: undefined;
                      [key: `uint88[${string}]`]: undefined;
                      [key: `uint96[${string}]`]: undefined;
                      [key: `uint104[${string}]`]: undefined;
                      [key: `uint112[${string}]`]: undefined;
                      [key: `uint120[${string}]`]: undefined;
                      [key: `uint128[${string}]`]: undefined;
                      [key: `uint136[${string}]`]: undefined;
                      [key: `uint144[${string}]`]: undefined;
                      [key: `uint152[${string}]`]: undefined;
                      [key: `uint160[${string}]`]: undefined;
                      [key: `uint168[${string}]`]: undefined;
                      [key: `uint176[${string}]`]: undefined;
                      [key: `uint184[${string}]`]: undefined;
                      [key: `uint192[${string}]`]: undefined;
                      [key: `uint200[${string}]`]: undefined;
                      [key: `uint208[${string}]`]: undefined;
                      [key: `uint216[${string}]`]: undefined;
                      [key: `uint224[${string}]`]: undefined;
                      [key: `uint232[${string}]`]: undefined;
                      [key: `uint240[${string}]`]: undefined;
                      [key: `uint248[${string}]`]: undefined;
                      [key: `uint256[${string}]`]: undefined;
                  }
                  | { [key: string]: unknown },
              primaryType extends string,
          >(
              args: SignTypedDataParameters<
                  typedData,
                  primaryType,
                  undefined
                  | Account,
              >,
          ) => Promise<`0x${string}`>;
          switchChain: (args: SwitchChainParameters) => Promise<void>;
          watchAsset: (args: WatchAssetParams) => Promise<boolean>;
          writeContract: <
              const abi extends Abi
              | readonly unknown[],
              functionName extends string,
              args extends unknown,
              chainOverride extends undefined | Chain = undefined,
          >(
              args: WriteContractParameters<
                  abi,
                  functionName,
                  args,
                  undefined
                  | Chain,
                  undefined | Account,
                  chainOverride,
              >,
          ) => Promise<`0x${string}`>;
      }
      • extend: <
            const client extends
                {
                    account?: undefined;
                    batch?: undefined;
                    cacheTime?: undefined;
                    ccipRead?: undefined;
                    chain?: undefined;
                    key?: undefined;
                    name?: undefined;
                    pollingInterval?: undefined;
                    request?: undefined;
                    transport?: undefined;
                    type?: undefined;
                    uid?: undefined;
                    [key: string]: unknown;
                } & ExactPartial<
                    ExtendableProtectedActions<Transport, undefined | Chain, undefined>,
                >,
        >(
            fn: (
                client: Client<
                    Transport,
                    undefined
                    | Chain,
                    undefined,
                    PublicRpcSchema,
                    PublicActions<Transport, undefined | Chain>,
                >,
            ) => client,
        ) => Client<
            Transport,
            undefined
            | Chain,
            undefined,
            PublicRpcSchema,
            { [K in string | number | symbol]: client[K] } & PublicActions<
                Transport,
                undefined
                | Chain,
            >,
        >
      • account: undefined

        The Account of the Client.

      • Optionalbatch?: { multicall?: boolean | { batchSize?: number; wait?: number } }

        Flags for batch settings.

        • Optionalmulticall?: boolean | { batchSize?: number; wait?: number }

          Toggle to enable eth_call multicall aggregation.

      • cacheTime: number

        Time (in ms) that cached data will remain in memory.

      • OptionalccipRead?:
            | false
            | {
                request?: (parameters: CcipRequestParameters) => Promise<`0x${string}`>;
            }

        CCIP Read configuration.

      • chain: undefined | Chain

        Chain for the client.

      • key: string

        A key for the client.

      • name: string

        A name for the client.

      • pollingInterval: number

        Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds.

      • request: EIP1193RequestFn<PublicRpcSchema>

        Request function wrapped with friendly error handling

      • transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>

        The RPC transport

      • type: string

        The type of client.

      • uid: string

        A unique ID for the client.

      • call: (parameters: CallParameters<undefined | Chain>) => Promise<CallReturnType>

        Executes a new message call immediately without submitting a transaction to the network.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const data = await client.call({
        account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
        data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        })
      • createAccessList: (
            parameters: CreateAccessListParameters<undefined | Chain>,
        ) => Promise<{ accessList: AccessList; gasUsed: bigint }>

        Creates an EIP-2930 access list that you can include in a transaction.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })

        const data = await client.createAccessList({
        data: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        })
      • createBlockFilter: () => Promise<
            {
                id: `0x${string}`;
                request: EIP1193RequestFn<
                    readonly [
                        {
                            Method: "eth_getFilterChanges";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: `0x${(...)}`[] | RpcLog[];
                        },
                        {
                            Method: "eth_getFilterLogs";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: RpcLog[];
                        },
                        {
                            Method: "eth_uninstallFilter";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: boolean;
                        },
                    ],
                >;
                type: "block";
            },
        >

        Creates a Filter to listen for new block hashes that can be used with getFilterChanges.

        import { createPublicClient, createBlockFilter, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await createBlockFilter(client)
        // { id: "0x345a6572337856574a76364e457a4366", type: 'block' }
      • createContractEventFilter: <
            const abi extends Abi
            | readonly unknown[],
            eventName extends undefined | string,
            args extends undefined | Record<string, unknown> | readonly unknown[],
            strict extends undefined | boolean = undefined,
            fromBlock extends undefined | bigint | BlockTag = undefined,
            toBlock extends undefined | bigint | BlockTag = undefined,
        >(
            args: CreateContractEventFilterParameters<
                abi,
                eventName,
                args,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            CreateContractEventFilterReturnType<
                abi,
                eventName,
                args,
                strict,
                fromBlock,
                toBlock,
            >,
        >

        Creates a Filter to retrieve event logs that can be used with getFilterChanges or getFilterLogs.

        import { createPublicClient, http, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createContractEventFilter({
        abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
        })
      • createEventFilter: <
            const abiEvent extends undefined
            | AbiEvent = undefined,
            const abiEvents extends
                undefined | readonly unknown[] | readonly AbiEvent[] = abiEvent extends AbiEvent
                ? [abiEvent<abiEvent>]
                : undefined,
            strict extends undefined
            | boolean = undefined,
            fromBlock extends undefined | bigint | BlockTag = undefined,
            toBlock extends undefined | bigint | BlockTag = undefined,
            _EventName extends undefined | string = MaybeAbiEventName<abiEvent>,
            _Args extends
                undefined | Record<string, unknown> | readonly unknown[] = undefined,
        >(
            args?: CreateEventFilterParameters<
                abiEvent,
                abiEvents,
                strict,
                fromBlock,
                toBlock,
                _EventName,
                _Args,
            >,
        ) => Promise<
            {
                [K in string
                | number
                | symbol]: Filter<
                    "event",
                    abiEvents,
                    _EventName,
                    _Args,
                    strict,
                    fromBlock,
                    toBlock,
                >[K]
            },
        >

        Creates a Filter to listen for new events that can be used with getFilterChanges.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createEventFilter({
        address: '0xfba3912ca04dd458c843e2ee08967fc04f3579c2',
        })
      • createPendingTransactionFilter: () => Promise<
            {
                id: `0x${string}`;
                request: EIP1193RequestFn<
                    readonly [
                        {
                            Method: "eth_getFilterChanges";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: `0x${(...)}`[] | RpcLog[];
                        },
                        {
                            Method: "eth_getFilterLogs";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: RpcLog[];
                        },
                        {
                            Method: "eth_uninstallFilter";
                            Parameters: [filterId: `0x${string}`];
                            ReturnType: boolean;
                        },
                    ],
                >;
                type: "transaction";
            },
        >

        Creates a Filter to listen for new pending transaction hashes that can be used with getFilterChanges.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createPendingTransactionFilter()
        // { id: "0x345a6572337856574a76364e457a4366", type: 'transaction' }
      • estimateContractGas: <
            chain extends undefined
            | Chain,
            const abi extends Abi | readonly unknown[],
            functionName extends string,
            args extends unknown,
        >(
            args: EstimateContractGasParameters<abi, functionName, args, chain>,
        ) => Promise<bigint>

        Estimates the gas required to successfully execute a contract write function call.

        Internally, uses a Public Client to call the estimateGas action with ABI-encoded data.

        import { createPublicClient, http, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const gas = await client.estimateContractGas({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['function mint() public']),
        functionName: 'mint',
        account: '0xf39fd6e51aad88f6f4ce6ab8827279cfffb92266',
        })
      • estimateGas: (args: EstimateGasParameters<undefined | Chain>) => Promise<bigint>

        Estimates the gas necessary to complete a transaction without submitting it to the network.

        import { createPublicClient, http, parseEther } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const gasEstimate = await client.estimateGas({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: parseEther('1'),
        })
      • getBalance: (args: GetBalanceParameters) => Promise<bigint>

        Returns the balance of an address in wei.

        You can convert the balance to ether units with formatEther.

        const balance = await getBalance(client, {
        address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        blockTag: 'safe'
        })
        const balanceAsEther = formatEther(balance)
        // "6.942"
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const balance = await client.getBalance({
        address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        })
        // 10000000000000000000000n (wei)
      • getBlobBaseFee: () => Promise<bigint>

        Returns the base fee per blob gas in wei.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { getBlobBaseFee } from 'viem/public'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const blobBaseFee = await client.getBlobBaseFee()
      • getBlock: <
            includeTransactions extends boolean = false,
            blockTag extends BlockTag = "latest",
        >(
            args?: GetBlockParameters<includeTransactions, blockTag>,
        ) => Promise<
            {
                baseFeePerGas: null
                | bigint;
                blobGasUsed: bigint;
                difficulty: bigint;
                excessBlobGas: bigint;
                extraData: `0x${string}`;
                gasLimit: bigint;
                gasUsed: bigint;
                hash: blockTag extends "pending" ? null : `0x${string}`;
                logsBloom: blockTag extends "pending" ? null : `0x${string}`;
                miner: `0x${string}`;
                mixHash: `0x${string}`;
                nonce: blockTag extends "pending" ? null : `0x${string}`;
                number: blockTag extends "pending" ? null : bigint;
                parentBeaconBlockRoot?: `0x${string}`;
                parentHash: `0x${string}`;
                receiptsRoot: `0x${string}`;
                sealFields: `0x${string}`[];
                sha3Uncles: `0x${string}`;
                size: bigint;
                stateRoot: `0x${string}`;
                timestamp: bigint;
                totalDifficulty: null | bigint;
                transactionsRoot: `0x${string}`;
                uncles: `0x${string}`[];
                withdrawals?: Withdrawal[];
                withdrawalsRoot?: `0x${string}`;
                transactions: includeTransactions extends true
                    ? (
                        | {
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : `0x${(...)}`;
                            blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: null | `0x${(...)}`;
                            transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : number;
                            typeHex: null | `0x${(...)}`;
                            v: bigint;
                            value: bigint;
                            accessList?: undefined;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId?: number;
                            yParity?: undefined;
                            type: "legacy";
                        }
                        | {
                            gasPrice: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : `0x${(...)}`;
                            blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: null | `0x${(...)}`;
                            transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : number;
                            typeHex: null | `0x${(...)}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip2930";
                        }
                        | {
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : `0x${(...)}`;
                            blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: null | `0x${(...)}`;
                            transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : number;
                            typeHex: null | `0x${(...)}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip1559";
                        }
                        | {
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : `0x${(...)}`;
                            blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: null | `0x${(...)}`;
                            transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : number;
                            typeHex: null | `0x${(...)}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: AccessList;
                            authorizationList?: undefined;
                            blobVersionedHashes: readonly `0x${(...)}`[];
                            chainId: number;
                            type: "eip4844";
                        }
                        | {
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas: bigint;
                            maxPriorityFeePerGas: bigint;
                            blockHash: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : `0x${(...)}`;
                            blockNumber: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : bigint;
                            from: `0x${string}`;
                            gas: bigint;
                            hash: `0x${string}`;
                            input: `0x${string}`;
                            nonce: number;
                            r: `0x${string}`;
                            s: `0x${string}`;
                            to: null | `0x${(...)}`;
                            transactionIndex: ((...) extends (...) ? (...) : (...)) extends true
                                ? null
                                : number;
                            typeHex: null | `0x${(...)}`;
                            v: bigint;
                            value: bigint;
                            yParity: number;
                            accessList: AccessList;
                            authorizationList: SignedAuthorizationList;
                            blobVersionedHashes?: undefined;
                            chainId: number;
                            type: "eip7702";
                        }
                    )[]
                    : `0x${string}`[];
            },
        >

        Returns information about a block at a block number, hash, or tag.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const block = await client.getBlock()
      • getBlockNumber: (args?: GetBlockNumberParameters) => Promise<bigint>
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const blockNumber = await client.getBlockNumber()
        // 69420n
      • getBlockTransactionCount: (args?: GetBlockTransactionCountParameters) => Promise<number>

        Returns the number of Transactions at a block number, hash, or tag.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const count = await client.getBlockTransactionCount()
      • getBytecode: (args: GetCodeParameters) => Promise<GetCodeReturnType>

        Use getCode instead.

      • getChainId: () => Promise<number>

        Returns the chain ID associated with the current network.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const chainId = await client.getChainId()
        // 1
      • getCode: (args: GetCodeParameters) => Promise<GetCodeReturnType>

        Retrieves the bytecode at an address.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const code = await client.getCode({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        })
      • getContractEvents: <
            const abi extends Abi
            | readonly unknown[],
            eventName extends undefined | string = undefined,
            strict extends undefined | boolean = undefined,
            fromBlock extends undefined | bigint | BlockTag = undefined,
            toBlock extends undefined | bigint | BlockTag = undefined,
        >(
            args: GetContractEventsParameters<
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetContractEventsReturnType<abi, eventName, strict, fromBlock, toBlock>,
        >

        Returns a list of event logs emitted by a contract.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { wagmiAbi } from './abi'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const logs = await client.getContractEvents(client, {
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: wagmiAbi,
        eventName: 'Transfer'
        })
      • getEip712Domain: (args: GetEip712DomainParameters) => Promise<GetEip712DomainReturnType>

        Reads the EIP-712 domain from a contract, based on the ERC-5267 specification.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })

        const domain = await client.getEip712Domain({
        address: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
        })
        // {
        // domain: {
        // name: 'ExampleContract',
        // version: '1',
        // chainId: 1,
        // verifyingContract: '0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
        // },
        // fields: '0x0f',
        // extensions: [],
        // }
      • getEnsAddress: (
            args: {
                coinType?: number;
                gatewayUrls?: string[];
                name: string;
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
                blockNumber?: bigint;
                blockTag?: BlockTag;
            },
        ) => Promise<GetEnsAddressReturnType>

        Calls resolve(bytes, bytes) on ENS Universal Resolver Contract.

        Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { normalize } from 'viem/ens'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const ensAddress = await client.getEnsAddress({
        name: normalize('wevm.eth'),
        })
        // '0xd2135CfB216b74109775236E36d4b433F1DF507B'
      • getEnsAvatar: (
            args: {
                assetGatewayUrls?: AssetGatewayUrls;
                name: string;
                gatewayUrls?: string[];
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
                blockNumber?: bigint;
                blockTag?: BlockTag;
            },
        ) => Promise<GetEnsAvatarReturnType>

        Calls getEnsText with key set to 'avatar'.

        Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { normalize } from 'viem/ens'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const ensAvatar = await client.getEnsAvatar({
        name: normalize('wevm.eth'),
        })
        // 'https://ipfs.io/ipfs/Qma8mnp6xV3J2cRNf3mTth5C8nV11CAnceVinc3y8jSbio'
      • getEnsName: (
            args: {
                address: `0x${string}`;
                gatewayUrls?: string[];
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
                blockNumber?: bigint;
                blockTag?: BlockTag;
            },
        ) => Promise<GetEnsNameReturnType>

        Calls reverse(bytes) on ENS Universal Resolver Contract to "reverse resolve" the address to the primary ENS name.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const ensName = await client.getEnsName({
        address: '0xd2135CfB216b74109775236E36d4b433F1DF507B',
        })
        // 'wevm.eth'
      • getEnsResolver: (
            args: {
                name: string;
                universalResolverAddress?: `0x${string}`;
                blockNumber?: bigint;
                blockTag?: BlockTag;
            },
        ) => Promise<`0x${string}`>

        Calls findResolver(bytes) on ENS Universal Resolver Contract to retrieve the resolver of an ENS name.

        Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { normalize } from 'viem/ens'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const resolverAddress = await client.getEnsResolver({
        name: normalize('wevm.eth'),
        })
        // '0x4976fb03C32e5B8cfe2b6cCB31c09Ba78EBaBa41'
      • getEnsText: (
            args: {
                name: string;
                gatewayUrls?: string[];
                key: string;
                strict?: boolean;
                universalResolverAddress?: `0x${string}`;
                blockNumber?: bigint;
                blockTag?: BlockTag;
            },
        ) => Promise<GetEnsTextReturnType>

        Calls resolve(bytes, bytes) on ENS Universal Resolver Contract.

        Since ENS names prohibit certain forbidden characters (e.g. underscore) and have other validation rules, you likely want to normalize ENS names with UTS-46 normalization before passing them to getEnsAddress. You can use the built-in normalize function for this.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { normalize } from 'viem/ens'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const twitterRecord = await client.getEnsText({
        name: normalize('wevm.eth'),
        key: 'com.twitter',
        })
        // 'wevm_dev'
      • getFeeHistory: (args: GetFeeHistoryParameters) => Promise<GetFeeHistoryReturnType>

        Returns a collection of historical gas information.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const feeHistory = await client.getFeeHistory({
        blockCount: 4,
        rewardPercentiles: [25, 75],
        })
      • estimateFeesPerGas: <
            chainOverride extends undefined
            | Chain = undefined,
            type extends FeeValuesType = "eip1559",
        >(
            args?: EstimateFeesPerGasParameters<
                undefined
                | Chain,
                chainOverride,
                type,
            >,
        ) => Promise<EstimateFeesPerGasReturnType<type>>

        Returns an estimate for the fees per gas for a transaction to be included in the next block.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const maxPriorityFeePerGas = await client.estimateFeesPerGas()
        // { maxFeePerGas: ..., maxPriorityFeePerGas: ... }
      • getFilterChanges: <
            filterType extends FilterType,
            const abi extends undefined | Abi | readonly unknown[],
            eventName extends undefined | string,
            strict extends undefined | boolean = undefined,
            fromBlock extends undefined | bigint | BlockTag = undefined,
            toBlock extends undefined | bigint | BlockTag = undefined,
        >(
            args: GetFilterChangesParameters<
                filterType,
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetFilterChangesReturnType<
                filterType,
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        >

        Returns a list of logs or hashes based on a Filter since the last time it was called.

        A Filter can be created from the following actions:

        Depending on the type of filter, the return value will be different:

        • If the filter was created with createContractEventFilter or createEventFilter, it returns a list of logs.
        • If the filter was created with createPendingTransactionFilter, it returns a list of transaction hashes.
        • If the filter was created with createBlockFilter, it returns a list of block hashes.
        // Blocks
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createBlockFilter()
        const hashes = await client.getFilterChanges({ filter })
        // Contract Events
        import { createPublicClient, http, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createContractEventFilter({
        address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
        abi: parseAbi(['event Transfer(address indexed, address indexed, uint256)']),
        eventName: 'Transfer',
        })
        const logs = await client.getFilterChanges({ filter })
        // Raw Events
        import { createPublicClient, http, parseAbiItem } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createEventFilter({
        address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
        event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
        })
        const logs = await client.getFilterChanges({ filter })
        // Transactions
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createPendingTransactionFilter()
        const hashes = await client.getFilterChanges({ filter })
      • getFilterLogs: <
            const abi extends undefined
            | Abi
            | readonly unknown[],
            eventName extends undefined | string,
            strict extends undefined | boolean = undefined,
            fromBlock extends undefined | bigint | BlockTag = undefined,
            toBlock extends undefined | bigint | BlockTag = undefined,
        >(
            args: GetFilterLogsParameters<
                abi,
                eventName,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetFilterLogsReturnType<abi, eventName, strict, fromBlock, toBlock>,
        >

        Returns a list of event logs since the filter was created.

        getFilterLogs is only compatible with event filters.

        import { createPublicClient, http, parseAbiItem } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const filter = await client.createEventFilter({
        address: '0xa0b86991c6218b36c1d19d4a2e9eb0ce3606eb48',
        event: parseAbiItem('event Transfer(address indexed, address indexed, uint256)'),
        })
        const logs = await client.getFilterLogs({ filter })
      • getGasPrice: () => Promise<bigint>

        Returns the current price of gas (in wei).

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const gasPrice = await client.getGasPrice()
      • getLogs: <
            const abiEvent extends undefined
            | AbiEvent = undefined,
            const abiEvents extends
                undefined | readonly unknown[] | readonly AbiEvent[] = abiEvent extends AbiEvent
                ? [abiEvent<abiEvent>]
                : undefined,
            strict extends undefined
            | boolean = undefined,
            fromBlock extends undefined | bigint | BlockTag = undefined,
            toBlock extends undefined | bigint | BlockTag = undefined,
        >(
            args?: GetLogsParameters<
                abiEvent,
                abiEvents,
                strict,
                fromBlock,
                toBlock,
            >,
        ) => Promise<
            GetLogsReturnType<abiEvent, abiEvents, strict, fromBlock, toBlock>,
        >

        Returns a list of event logs matching the provided parameters.

        import { createPublicClient, http, parseAbiItem } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const logs = await client.getLogs()
      • getProof: (args: GetProofParameters) => Promise<GetProofReturnType>

        Returns the account and storage values of the specified account including the Merkle-proof.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const block = await client.getProof({
        address: '0x...',
        storageKeys: ['0x...'],
        })
      • estimateMaxPriorityFeePerGas: <chainOverride extends undefined | Chain = undefined>(
            args?: { chain: null | chainOverride },
        ) => Promise<bigint>

        Returns an estimate for the max priority fee per gas (in wei) for a transaction to be included in the next block.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const maxPriorityFeePerGas = await client.estimateMaxPriorityFeePerGas()
        // 10000000n
      • getStorageAt: (args: GetStorageAtParameters) => Promise<GetStorageAtReturnType>

        Returns the value from a storage slot at a given address.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { getStorageAt } from 'viem/contract'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const code = await client.getStorageAt({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        slot: toHex(0),
        })
      • getTransaction: <blockTag extends BlockTag = "latest">(
            args: GetTransactionParameters<blockTag>,
        ) => Promise<
            | {
                gasPrice: bigint;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                from: `0x${string}`;
                gas: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                accessList?: undefined;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                chainId?: number;
                yParity?: undefined;
                type: "legacy";
            }
            | {
                gasPrice: bigint;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas?: undefined;
                maxPriorityFeePerGas?: undefined;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                from: `0x${string}`;
                gas: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                chainId: number;
                type: "eip2930";
            }
            | {
                gasPrice?: undefined;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                from: `0x${string}`;
                gas: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes?: undefined;
                chainId: number;
                type: "eip1559";
            }
            | {
                gasPrice?: undefined;
                maxFeePerBlobGas: bigint;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                from: `0x${string}`;
                gas: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
                accessList: AccessList;
                authorizationList?: undefined;
                blobVersionedHashes: readonly `0x${string}`[];
                chainId: number;
                type: "eip4844";
            }
            | {
                gasPrice?: undefined;
                maxFeePerBlobGas?: undefined;
                maxFeePerGas: bigint;
                maxPriorityFeePerGas: bigint;
                blockHash: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : `0x${string}`;
                blockNumber: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : bigint;
                from: `0x${string}`;
                gas: bigint;
                hash: `0x${string}`;
                input: `0x${string}`;
                nonce: number;
                r: `0x${string}`;
                s: `0x${string}`;
                to: null | `0x${string}`;
                transactionIndex: (blockTag extends "pending" ? true : false) extends true
                    ? null
                    : number;
                typeHex: null | `0x${string}`;
                v: bigint;
                value: bigint;
                yParity: number;
                accessList: AccessList;
                authorizationList: SignedAuthorizationList;
                blobVersionedHashes?: undefined;
                chainId: number;
                type: "eip7702";
            },
        >
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const transaction = await client.getTransaction({
        hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
        })
      • getTransactionConfirmations: (
            args: GetTransactionConfirmationsParameters<undefined | Chain>,
        ) => Promise<bigint>

        Returns the number of blocks passed (confirmations) since the transaction was processed on a block.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const confirmations = await client.getTransactionConfirmations({
        hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
        })
      • getTransactionCount: (args: GetTransactionCountParameters) => Promise<number>

        Returns the number of Transactions an Account has broadcast / sent.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const transactionCount = await client.getTransactionCount({
        address: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        })
      • getTransactionReceipt: (args: GetTransactionReceiptParameters) => Promise<TransactionReceipt>
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const transactionReceipt = await client.getTransactionReceipt({
        hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
        })
      • multicall: <
            const contracts extends readonly unknown[],
            allowFailure extends boolean = true,
        >(
            args: MulticallParameters<contracts, allowFailure>,
        ) => Promise<MulticallReturnType<contracts, allowFailure>>

        Similar to readContract, but batches up multiple functions on a contract in a single RPC call via the multicall3 contract.

        import { createPublicClient, http, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const abi = parseAbi([
        'function balanceOf(address) view returns (uint256)',
        'function totalSupply() view returns (uint256)',
        ])
        const result = await client.multicall({
        contracts: [
        {
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi,
        functionName: 'balanceOf',
        args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
        },
        {
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi,
        functionName: 'totalSupply',
        },
        ],
        })
        // [{ result: 424122n, status: 'success' }, { result: 1000000n, status: 'success' }]
      • prepareTransactionRequest: <
            const request extends
                (
                    | Omit<
                        {
                            accessList?: undefined;
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "legacy";
                            value?: bigint;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip2930";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip1559";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to: null
                            | `0x${string}`;
                            type?: "eip4844";
                            value?: bigint;
                            accessList?: AccessList;
                            blobs: readonly `0x${string}`[] | readonly ByteArray[];
                            blobVersionedHashes?: readonly `0x${string}`[];
                            kzg?: Kzg;
                            sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip7702";
                            value?: bigint;
                            accessList?: AccessList;
                            authorizationList?: AuthorizationList<number, boolean>;
                        },
                        "from",
                    >
                ) & { kzg?: Kzg } & {
                    nonceManager?: NonceManager;
                    parameters?: readonly PrepareTransactionRequestParameterType[];
                },
            chainOverride extends undefined
            | Chain = undefined,
            accountOverride extends undefined | `0x${string}` | Account = undefined,
        >(
            args: PrepareTransactionRequestParameters<
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
                accountOverride,
                request,
            >,
        ) => Promise<
            {
                [K in string
                | number
                | symbol]: (
                    UnionRequiredBy<
                        Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                            chainId?: (...) | (...);
                        },
                        ParameterTypeToParameters<
                            (...)[(...)] extends readonly (...)[]
                                ? (...)[(...)]
                                : (...) | (...) | (...) | (...) | (...) | (...),
                        >,
                    > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">)
                )[K]
            },
        >

        Prepares a transaction request for signing.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const request = await client.prepareTransactionRequest({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        to: '0x0000000000000000000000000000000000000000',
        value: 1n,
        })
        // Account Hoisting
        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const request = await client.prepareTransactionRequest({
        to: '0x0000000000000000000000000000000000000000',
        value: 1n,
        })
      • readContract: <
            const abi extends Abi
            | readonly unknown[],
            functionName extends string,
            const args extends unknown,
        >(
            args: ReadContractParameters<abi, functionName, args>,
        ) => Promise<ReadContractReturnType<abi, functionName, args>>

        Calls a read-only function on a contract, and returns the response.

        A "read-only" function (constant function) on a Solidity contract is denoted by a view or pure keyword. They can only read the state of the contract, and cannot make any changes to it. Since read-only methods do not change the state of the contract, they do not require any gas to be executed, and can be called by any user without the need to pay for gas.

        Internally, uses a Public Client to call the call action with ABI-encoded data.

        import { createPublicClient, http, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'
        import { readContract } from 'viem/contract'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const result = await client.readContract({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['function balanceOf(address) view returns (uint256)']),
        functionName: 'balanceOf',
        args: ['0xA0Cf798816D4b9b9866b5330EEa46a18382f251e'],
        })
        // 424122n
      • sendRawTransaction: (args: SendRawTransactionParameters) => Promise<`0x${string}`>

        Sends a signed transaction to the network

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'
        import { sendRawTransaction } from 'viem/wallet'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })

        const hash = await client.sendRawTransaction({
        serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'
        })
      • simulate: <const calls extends readonly unknown[]>(
            args: SimulateParameters<calls>,
        ) => Promise<SimulateReturnType<calls>>

        Simulates a set of calls on block(s) with optional block and state overrides.

        import { createPublicClient, http, parseEther } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })

        const result = await client.simulate({
        blocks: [{
        blockOverrides: {
        number: 69420n,
        },
        calls: [{
        {
        account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
        data: '0xdeadbeef',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        },
        {
        account: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: parseEther('1'),
        },
        }],
        stateOverrides: [{
        address: '0x5a0b54d5dc17e482fe8b0bdca5320161b95fb929',
        balance: parseEther('10'),
        }],
        }]
        })
      • simulateContract: <
            const abi extends Abi
            | readonly unknown[],
            functionName extends string,
            const args extends unknown,
            chainOverride extends undefined | Chain,
            accountOverride extends undefined | `0x${string}` | Account = undefined,
        >(
            args: SimulateContractParameters<
                abi,
                functionName,
                args,
                undefined
                | Chain,
                chainOverride,
                accountOverride,
            >,
        ) => Promise<
            SimulateContractReturnType<
                abi,
                functionName,
                args,
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
                accountOverride,
            >,
        >

        Simulates/validates a contract interaction. This is useful for retrieving return data and revert reasons of contract write functions.

        This function does not require gas to execute and does not change the state of the blockchain. It is almost identical to readContract, but also supports contract write functions.

        Internally, uses a Public Client to call the call action with ABI-encoded data.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const result = await client.simulateContract({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['function mint(uint32) view returns (uint32)']),
        functionName: 'mint',
        args: ['69420'],
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        })
      • verifyMessage: (
            args: {
                blockNumber?: bigint;
                blockTag?: BlockTag;
                address: `0x${string}`;
                signature: `0x${string}` | ByteArray | Signature;
                universalSignatureVerifierAddress?: `0x${string}`;
                factory?: `0x${string}`;
                factoryData?: `0x${string}`;
                message: SignableMessage;
            },
        ) => Promise<boolean>

        Verify that a message was signed by the provided address.

        Compatible with Smart Contract Accounts & Externally Owned Accounts via ERC-6492.

      • verifySiweMessage: (
            args: {
                blockNumber?: bigint;
                blockTag?: BlockTag;
                message: string;
                signature: `0x${string}`;
                address?: `0x${string}`;
                domain?: string;
                nonce?: string;
                scheme?: string;
                time?: Date;
            },
        ) => Promise<boolean>

        Verifies EIP-4361 formatted message was signed.

        Compatible with Smart Contract Accounts & Externally Owned Accounts via ERC-6492.

      • verifyTypedData: (args: VerifyTypedDataParameters) => Promise<boolean>

        Verify that typed data was signed by the provided address.

      • uninstallFilter: (args: UninstallFilterParameters) => Promise<boolean>

        Destroys a Filter that was created from one of the following Actions:

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'
        import { createPendingTransactionFilter, uninstallFilter } from 'viem/public'

        const filter = await client.createPendingTransactionFilter()
        const uninstalled = await client.uninstallFilter({ filter })
        // true
      • waitForTransactionReceipt: (
            args: WaitForTransactionReceiptParameters<undefined | Chain>,
        ) => Promise<TransactionReceipt>

        Waits for the Transaction to be included on a Block (one confirmation), and then returns the Transaction Receipt. If the Transaction reverts, then the action will throw an error.

        The waitForTransactionReceipt action additionally supports Replacement detection (e.g. sped up Transactions).

        Transactions can be replaced when a user modifies their transaction in their wallet (to speed up or cancel). Transactions are replaced when they are sent from the same nonce.

        There are 3 types of Transaction Replacement reasons:

        • repriced: The gas price has been modified (e.g. different maxFeePerGas)
        • cancelled: The Transaction has been cancelled (e.g. value === 0n)
        • replaced: The Transaction has been replaced (e.g. different value or data)
        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const transactionReceipt = await client.waitForTransactionReceipt({
        hash: '0x4ca7ee652d57678f26e887c149ab0735f41de37bcad58c9f6d3ed5824f15b74d',
        })
      • watchBlockNumber: (args: WatchBlockNumberParameters) => WatchBlockNumberReturnType

        Watches and returns incoming block numbers.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const unwatch = await client.watchBlockNumber({
        onBlockNumber: (blockNumber) => console.log(blockNumber),
        })
      • watchBlocks: <
            includeTransactions extends boolean = false,
            blockTag extends BlockTag = "latest",
        >(
            args: WatchBlocksParameters<
                Transport,
                undefined
                | Chain,
                includeTransactions,
                blockTag,
            >,
        ) => WatchBlocksReturnType

        Watches and returns information for incoming blocks.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const unwatch = await client.watchBlocks({
        onBlock: (block) => console.log(block),
        })
      • watchContractEvent: <
            const abi extends Abi
            | readonly unknown[],
            eventName extends string,
            strict extends undefined | boolean = undefined,
        >(
            args: WatchContractEventParameters<abi, eventName, strict, Transport>,
        ) => WatchContractEventReturnType

        Watches and returns emitted contract event logs.

        This Action will batch up all the event logs found within the pollingInterval, and invoke them via onLogs.

        watchContractEvent will attempt to create an Event Filter and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. eth_newFilter), then watchContractEvent will fall back to using getLogs instead.

        import { createPublicClient, http, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const unwatch = client.watchContractEvent({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['event Transfer(address indexed from, address indexed to, uint256 value)']),
        eventName: 'Transfer',
        args: { from: '0xc961145a54C96E3aE9bAA048c4F4D6b04C13916b' },
        onLogs: (logs) => console.log(logs),
        })
      • watchEvent: <
            const abiEvent extends undefined
            | AbiEvent = undefined,
            const abiEvents extends
                undefined | readonly unknown[] | readonly AbiEvent[] = abiEvent extends AbiEvent
                ? [abiEvent<abiEvent>]
                : undefined,
            strict extends undefined
            | boolean = undefined,
        >(
            args: WatchEventParameters<abiEvent, abiEvents, strict, Transport>,
        ) => WatchEventReturnType

        Watches and returns emitted Event Logs.

        This Action will batch up all the Event Logs found within the pollingInterval, and invoke them via onLogs.

        watchEvent will attempt to create an Event Filter and listen to changes to the Filter per polling interval, however, if the RPC Provider does not support Filters (e.g. eth_newFilter), then watchEvent will fall back to using getLogs instead.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const unwatch = client.watchEvent({
        onLogs: (logs) => console.log(logs),
        })
      • watchPendingTransactions: (
            args: WatchPendingTransactionsParameters<Transport>,
        ) => WatchPendingTransactionsReturnType

        Watches and returns pending transaction hashes.

        This Action will batch up all the pending transactions found within the pollingInterval, and invoke them via onTransactions.

        import { createPublicClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createPublicClient({
        chain: mainnet,
        transport: http(),
        })
        const unwatch = await client.watchPendingTransactions({
        onTransactions: (hashes) => console.log(hashes),
        })
      • extend: <
            const client extends
                {
                    account?: undefined;
                    batch?: undefined;
                    cacheTime?: undefined;
                    ccipRead?: undefined;
                    chain?: undefined;
                    key?: undefined;
                    name?: undefined;
                    pollingInterval?: undefined;
                    request?: undefined;
                    transport?: undefined;
                    type?: undefined;
                    uid?: undefined;
                    [key: string]: unknown;
                } & ExactPartial<
                    ExtendableProtectedActions<
                        Transport,
                        undefined
                        | Chain,
                        undefined | Account,
                    >,
                >,
        >(
            fn: (
                client: Client<
                    Transport,
                    undefined
                    | Chain,
                    undefined | Account,
                    WalletRpcSchema,
                    WalletActions<undefined | Chain, undefined | Account>,
                >,
            ) => client,
        ) => Client<
            Transport,
            undefined
            | Chain,
            undefined | Account,
            WalletRpcSchema,
            { [K in string | number | symbol]: client[K] } & WalletActions<
                undefined
                | Chain,
                undefined | Account,
            >,
        >
      • account: undefined | Account

        The Account of the Client.

      • Optionalbatch?: { multicall?: boolean | { batchSize?: number; wait?: number } }

        Flags for batch settings.

        • Optionalmulticall?: boolean | { batchSize?: number; wait?: number }

          Toggle to enable eth_call multicall aggregation.

      • cacheTime: number

        Time (in ms) that cached data will remain in memory.

      • OptionalccipRead?:
            | false
            | {
                request?: (parameters: CcipRequestParameters) => Promise<`0x${string}`>;
            }

        CCIP Read configuration.

      • chain: undefined | Chain

        Chain for the client.

      • key: string

        A key for the client.

      • name: string

        A name for the client.

      • pollingInterval: number

        Frequency (in ms) for polling enabled actions & events. Defaults to 4_000 milliseconds.

      • request: EIP1193RequestFn<WalletRpcSchema>

        Request function wrapped with friendly error handling

      • transport: TransportConfig<string, EIP1193RequestFn> & Record<string, any>

        The RPC transport

      • type: string

        The type of client.

      • uid: string

        A unique ID for the client.

      • addChain: (args: AddChainParameters) => Promise<void>

        Adds an EVM chain to the wallet.

        import { createWalletClient, custom } from 'viem'
        import { optimism } from 'viem/chains'

        const client = createWalletClient({
        transport: custom(window.ethereum),
        })
        await client.addChain({ chain: optimism })
      • deployContract: <
            const abi extends Abi
            | readonly unknown[],
            chainOverride extends undefined | Chain,
        >(
            args: DeployContractParameters<
                abi,
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
            >,
        ) => Promise<`0x${string}`>

        Deploys a contract to the network, given bytecode and constructor arguments.

        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: http(),
        })
        const hash = await client.deployContract({
        abi: [],
        account: '0x…,
        bytecode: '0x608060405260405161083e38038061083e833981016040819052610...',
        })
      • getAddresses: () => Promise<GetAddressesReturnType>

        Returns a list of account addresses owned by the wallet or client.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const accounts = await client.getAddresses()
      • getChainId: () => Promise<number>

        Returns the chain ID associated with the current network.

        import { createWalletClient, http } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const chainId = await client.getChainId()
        // 1
      • getPermissions: () => Promise<GetPermissionsReturnType>

        Gets the wallets current permissions.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const permissions = await client.getPermissions()
      • prepareTransactionRequest: <
            const request extends
                (
                    | Omit<
                        {
                            accessList?: undefined;
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "legacy";
                            value?: bigint;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip2930";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip1559";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to: null
                            | `0x${string}`;
                            type?: "eip4844";
                            value?: bigint;
                            accessList?: AccessList;
                            blobs: readonly `0x${string}`[] | readonly ByteArray[];
                            blobVersionedHashes?: readonly `0x${string}`[];
                            kzg?: Kzg;
                            sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip7702";
                            value?: bigint;
                            accessList?: AccessList;
                            authorizationList?: AuthorizationList<number, boolean>;
                        },
                        "from",
                    >
                ) & { kzg?: Kzg } & {
                    nonceManager?: NonceManager;
                    parameters?: readonly PrepareTransactionRequestParameterType[];
                },
            chainOverride extends undefined
            | Chain = undefined,
            accountOverride extends undefined | `0x${string}` | Account = undefined,
        >(
            args: PrepareTransactionRequestParameters<
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
                accountOverride,
                request,
            >,
        ) => Promise<
            {
                [K in string
                | number
                | symbol]: (
                    UnionRequiredBy<
                        Extract<(...) & (...) & (...), (...) extends (...) ? (...) : (...)> & {
                            chainId?: (...) | (...);
                        },
                        ParameterTypeToParameters<
                            (...)[(...)] extends readonly (...)[]
                                ? (...)[(...)]
                                : (...) | (...) | (...) | (...) | (...) | (...),
                        >,
                    > & (unknown extends request["kzg"] ? {} : Pick<request, "kzg">)
                )[K]
            },
        >

        Prepares a transaction request for signing.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const request = await client.prepareTransactionRequest({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        to: '0x0000000000000000000000000000000000000000',
        value: 1n,
        })
        // Account Hoisting
        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const request = await client.prepareTransactionRequest({
        to: '0x0000000000000000000000000000000000000000',
        value: 1n,
        })
      • requestAddresses: () => Promise<RequestAddressesReturnType>

        Requests a list of accounts managed by a wallet.

        Sends a request to the wallet, asking for permission to access the user's accounts. After the user accepts the request, it will return a list of accounts (addresses).

        This API can be useful for dapps that need to access the user's accounts in order to execute transactions or interact with smart contracts.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const accounts = await client.requestAddresses()
      • requestPermissions: (
            args: {
                eth_accounts: Record<string, any>;
                [key: string]: Record<string, any>;
            },
        ) => Promise<RequestPermissionsReturnType>

        Requests permissions for a wallet.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const permissions = await client.requestPermissions({
        eth_accounts: {}
        })
      • sendRawTransaction: (args: SendRawTransactionParameters) => Promise<`0x${string}`>

        Sends a signed transaction to the network

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'
        import { sendRawTransaction } from 'viem/wallet'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })

        const hash = await client.sendRawTransaction({
        serializedTransaction: '0x02f850018203118080825208808080c080a04012522854168b27e5dc3d5839bab5e6b39e1a0ffd343901ce1622e3d64b48f1a04e00902ae0502c4728cbf12156290df99c3ed7de85b1dbfe20b5c36931733a33'
        })
      • sendTransaction: <
            const request extends
                (
                    | Omit<
                        {
                            accessList?: undefined;
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "legacy";
                            value?: bigint;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip2930";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip1559";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to: null
                            | `0x${string}`;
                            type?: "eip4844";
                            value?: bigint;
                            accessList?: AccessList;
                            blobs: readonly `0x${string}`[] | readonly ByteArray[];
                            blobVersionedHashes?: readonly `0x${string}`[];
                            kzg?: Kzg;
                            sidecars?: readonly BlobSidecar<`0x${(...)}`>[];
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip7702";
                            value?: bigint;
                            accessList?: AccessList;
                            authorizationList?: AuthorizationList<number, boolean>;
                        },
                        "from",
                    >
                ) & { kzg?: Kzg },
            chainOverride extends undefined
            | Chain = undefined,
        >(
            args: SendTransactionParameters<
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
                request,
            >,
        ) => Promise<`0x${string}`>

        Creates, signs, and sends a new transaction to the network.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const hash = await client.sendTransaction({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: 1000000000000000000n,
        })
        // Account Hoisting
        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: http(),
        })
        const hash = await client.sendTransaction({
        to: '0x70997970c51812dc3a010c7d01b50e0d17dc79c8',
        value: 1000000000000000000n,
        })
      • signMessage: (args: SignMessageParameters<undefined | Account>) => Promise<`0x${string}`>

        Calculates an Ethereum-specific signature in EIP-191 format: keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)).

        With the calculated signature, you can:

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const signature = await client.signMessage({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        message: 'hello world',
        })
        // Account Hoisting
        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: http(),
        })
        const signature = await client.signMessage({
        message: 'hello world',
        })
      • signTransaction: <
            chainOverride extends undefined
            | Chain,
            const request extends
            
                    | Omit<
                        {
                            accessList?: undefined;
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "legacy";
                            value?: bigint;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: bigint;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: undefined;
                            maxPriorityFeePerGas?: undefined;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip2930";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip1559";
                            value?: bigint;
                            accessList?: AccessList;
                        },
                        "from",
                    >
                    | Omit<
                        {
                            authorizationList?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas: bigint;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to: null
                            | `0x${string}`;
                            type?: "eip4844";
                            value?: bigint;
                            accessList?: AccessList;
                            blobs: readonly `0x${string}`[] | readonly ByteArray[];
                            blobVersionedHashes?: readonly `0x${string}`[];
                            kzg?: Kzg;
                            sidecars?: readonly BlobSidecar<`0x${string}`>[];
                        },
                        "from",
                    >
                    | Omit<
                        {
                            blobs?: undefined;
                            blobVersionedHashes?: undefined;
                            kzg?: undefined;
                            sidecars?: undefined;
                            gasPrice?: undefined;
                            maxFeePerBlobGas?: undefined;
                            maxFeePerGas?: bigint;
                            maxPriorityFeePerGas?: bigint;
                            data?: `0x${string}`;
                            from?: `0x${string}`;
                            gas?: bigint;
                            nonce?: number;
                            to?: null
                            | `0x${string}`;
                            type?: "eip7702";
                            value?: bigint;
                            accessList?: AccessList;
                            authorizationList?: AuthorizationList<number, boolean>;
                        },
                        "from",
                    > = UnionOmit<
                ExtractChainFormatterParameters<
                    DeriveChain<undefined | Chain, chainOverride>,
                    "transactionRequest",
                    TransactionRequest,
                >,
                "from",
            >,
        >(
            args: SignTransactionParameters<
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
                request,
            >,
        ) => Promise<
            TransactionSerialized<
                GetTransactionType<
                    request,
                    | (request extends LegacyProperties ? "legacy" : never)
                    | (request extends EIP1559Properties ? "eip1559" : never)
                    | (request extends EIP2930Properties ? "eip2930" : never)
                    | (request extends EIP4844Properties ? "eip4844" : never)
                    | (request extends EIP7702Properties ? "eip7702" : never)
                    | (
                        request["type"] extends undefined
                        | string
                            ? Extract<any[any], string>
                            : never
                    ),
                >,

                    | (
                        GetTransactionType<
                            request,
                            | (request extends LegacyProperties ? "legacy" : never)
                            | (request extends EIP1559Properties ? "eip1559" : never)
                            | (request extends EIP2930Properties ? "eip2930" : never)
                            | (request extends EIP4844Properties ? "eip4844" : never)
                            | (request extends EIP7702Properties ? "eip7702" : never)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                        > extends "eip1559"
                            ? `0x02${string}`
                            : never
                    )
                    | (
                        GetTransactionType<
                            request,
                            | (request extends LegacyProperties ? "legacy" : never)
                            | (request extends EIP1559Properties ? "eip1559" : never)
                            | (request extends EIP2930Properties ? "eip2930" : never)
                            | (request extends EIP4844Properties ? "eip4844" : never)
                            | (request extends EIP7702Properties ? "eip7702" : never)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                        > extends "eip2930"
                            ? `0x01${string}`
                            : never
                    )
                    | (
                        GetTransactionType<
                            request,
                            | (request extends LegacyProperties ? "legacy" : never)
                            | (request extends EIP1559Properties ? "eip1559" : never)
                            | (request extends EIP2930Properties ? "eip2930" : never)
                            | (request extends EIP4844Properties ? "eip4844" : never)
                            | (request extends EIP7702Properties ? "eip7702" : never)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                        > extends "eip4844"
                            ? `0x03${string}`
                            : never
                    )
                    | (
                        GetTransactionType<
                            request,
                            | (request extends LegacyProperties ? "legacy" : never)
                            | (request extends EIP1559Properties ? "eip1559" : never)
                            | (request extends EIP2930Properties ? "eip2930" : never)
                            | (request extends EIP4844Properties ? "eip4844" : never)
                            | (request extends EIP7702Properties ? "eip7702" : never)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                        > extends "eip7702"
                            ? `0x04${string}`
                            : never
                    )
                    | (
                        GetTransactionType<
                            request,
                            | (request extends LegacyProperties ? "legacy" : never)
                            | (request extends EIP1559Properties ? "eip1559" : never)
                            | (request extends EIP2930Properties ? "eip2930" : never)
                            | (request extends EIP4844Properties ? "eip4844" : never)
                            | (request extends EIP7702Properties ? "eip7702" : never)
                            | ((...)[(...)] extends (...) | (...) ? Extract<(...), (...)> : never),
                        > extends "legacy"
                            ? TransactionSerializedLegacy
                            : never
                    ),
            >,
        >

        Signs a transaction.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const request = await client.prepareTransactionRequest({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        to: '0x0000000000000000000000000000000000000000',
        value: 1n,
        })
        const signature = await client.signTransaction(request)
        // Account Hoisting
        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const request = await client.prepareTransactionRequest({
        to: '0x0000000000000000000000000000000000000000',
        value: 1n,
        })
        const signature = await client.signTransaction(request)
      • signTypedData: <
            const typedData extends
                | {
                    string?: undefined;
                    address?: undefined;
                    bool?: undefined;
                    bytes?: undefined;
                    bytes23?: undefined;
                    bytes1?: undefined;
                    bytes2?: undefined;
                    bytes3?: undefined;
                    bytes4?: undefined;
                    bytes5?: undefined;
                    bytes6?: undefined;
                    bytes7?: undefined;
                    bytes8?: undefined;
                    bytes9?: undefined;
                    bytes10?: undefined;
                    bytes11?: undefined;
                    bytes12?: undefined;
                    bytes13?: undefined;
                    bytes14?: undefined;
                    bytes15?: undefined;
                    bytes16?: undefined;
                    bytes17?: undefined;
                    bytes18?: undefined;
                    bytes19?: undefined;
                    bytes20?: undefined;
                    bytes21?: undefined;
                    bytes22?: undefined;
                    bytes24?: undefined;
                    bytes25?: undefined;
                    bytes26?: undefined;
                    bytes27?: undefined;
                    bytes28?: undefined;
                    bytes29?: undefined;
                    bytes30?: undefined;
                    bytes31?: undefined;
                    bytes32?: undefined;
                    int8?: undefined;
                    int16?: undefined;
                    int24?: undefined;
                    int32?: undefined;
                    int40?: undefined;
                    int48?: undefined;
                    int56?: undefined;
                    int64?: undefined;
                    int72?: undefined;
                    int80?: undefined;
                    int88?: undefined;
                    int96?: undefined;
                    int104?: undefined;
                    int112?: undefined;
                    int120?: undefined;
                    int128?: undefined;
                    int136?: undefined;
                    int144?: undefined;
                    int152?: undefined;
                    int160?: undefined;
                    int168?: undefined;
                    int176?: undefined;
                    int184?: undefined;
                    int192?: undefined;
                    int200?: undefined;
                    int208?: undefined;
                    int216?: undefined;
                    int224?: undefined;
                    int232?: undefined;
                    int240?: undefined;
                    int248?: undefined;
                    int256?: undefined;
                    uint8?: undefined;
                    uint16?: undefined;
                    uint24?: undefined;
                    uint32?: undefined;
                    uint40?: undefined;
                    uint48?: undefined;
                    uint56?: undefined;
                    uint64?: undefined;
                    uint72?: undefined;
                    uint80?: undefined;
                    uint88?: undefined;
                    uint96?: undefined;
                    uint104?: undefined;
                    uint112?: undefined;
                    uint120?: undefined;
                    uint128?: undefined;
                    uint136?: undefined;
                    uint144?: undefined;
                    uint152?: undefined;
                    uint160?: undefined;
                    uint168?: undefined;
                    uint176?: undefined;
                    uint184?: undefined;
                    uint192?: undefined;
                    uint200?: undefined;
                    uint208?: undefined;
                    uint216?: undefined;
                    uint224?: undefined;
                    uint232?: undefined;
                    uint240?: undefined;
                    uint248?: undefined;
                    uint256?: undefined;
                    [key: string]: readonly TypedDataParameter[];
                    [key: `string[${string}]`]: undefined;
                    [key: `function[${string}]`]: undefined;
                    [key: `address[${string}]`]: undefined;
                    [key: `bool[${string}]`]: undefined;
                    [key: `bytes[${string}]`]: undefined;
                    [key: `bytes23[${string}]`]: undefined;
                    [key: `bytes1[${string}]`]: undefined;
                    [key: `bytes2[${string}]`]: undefined;
                    [key: `bytes3[${string}]`]: undefined;
                    [key: `bytes4[${string}]`]: undefined;
                    [key: `bytes5[${string}]`]: undefined;
                    [key: `bytes6[${string}]`]: undefined;
                    [key: `bytes7[${string}]`]: undefined;
                    [key: `bytes8[${string}]`]: undefined;
                    [key: `bytes9[${string}]`]: undefined;
                    [key: `bytes10[${string}]`]: undefined;
                    [key: `bytes11[${string}]`]: undefined;
                    [key: `bytes12[${string}]`]: undefined;
                    [key: `bytes13[${string}]`]: undefined;
                    [key: `bytes14[${string}]`]: undefined;
                    [key: `bytes15[${string}]`]: undefined;
                    [key: `bytes16[${string}]`]: undefined;
                    [key: `bytes17[${string}]`]: undefined;
                    [key: `bytes18[${string}]`]: undefined;
                    [key: `bytes19[${string}]`]: undefined;
                    [key: `bytes20[${string}]`]: undefined;
                    [key: `bytes21[${string}]`]: undefined;
                    [key: `bytes22[${string}]`]: undefined;
                    [key: `bytes24[${string}]`]: undefined;
                    [key: `bytes25[${string}]`]: undefined;
                    [key: `bytes26[${string}]`]: undefined;
                    [key: `bytes27[${string}]`]: undefined;
                    [key: `bytes28[${string}]`]: undefined;
                    [key: `bytes29[${string}]`]: undefined;
                    [key: `bytes30[${string}]`]: undefined;
                    [key: `bytes31[${string}]`]: undefined;
                    [key: `bytes32[${string}]`]: undefined;
                    [key: `int[${string}]`]: undefined;
                    [key: `int8[${string}]`]: undefined;
                    [key: `int16[${string}]`]: undefined;
                    [key: `int24[${string}]`]: undefined;
                    [key: `int32[${string}]`]: undefined;
                    [key: `int40[${string}]`]: undefined;
                    [key: `int48[${string}]`]: undefined;
                    [key: `int56[${string}]`]: undefined;
                    [key: `int64[${string}]`]: undefined;
                    [key: `int72[${string}]`]: undefined;
                    [key: `int80[${string}]`]: undefined;
                    [key: `int88[${string}]`]: undefined;
                    [key: `int96[${string}]`]: undefined;
                    [key: `int104[${string}]`]: undefined;
                    [key: `int112[${string}]`]: undefined;
                    [key: `int120[${string}]`]: undefined;
                    [key: `int128[${string}]`]: undefined;
                    [key: `int136[${string}]`]: undefined;
                    [key: `int144[${string}]`]: undefined;
                    [key: `int152[${string}]`]: undefined;
                    [key: `int160[${string}]`]: undefined;
                    [key: `int168[${string}]`]: undefined;
                    [key: `int176[${string}]`]: undefined;
                    [key: `int184[${string}]`]: undefined;
                    [key: `int192[${string}]`]: undefined;
                    [key: `int200[${string}]`]: undefined;
                    [key: `int208[${string}]`]: undefined;
                    [key: `int216[${string}]`]: undefined;
                    [key: `int224[${string}]`]: undefined;
                    [key: `int232[${string}]`]: undefined;
                    [key: `int240[${string}]`]: undefined;
                    [key: `int248[${string}]`]: undefined;
                    [key: `int256[${string}]`]: undefined;
                    [key: `uint[${string}]`]: undefined;
                    [key: `uint8[${string}]`]: undefined;
                    [key: `uint16[${string}]`]: undefined;
                    [key: `uint24[${string}]`]: undefined;
                    [key: `uint32[${string}]`]: undefined;
                    [key: `uint40[${string}]`]: undefined;
                    [key: `uint48[${string}]`]: undefined;
                    [key: `uint56[${string}]`]: undefined;
                    [key: `uint64[${string}]`]: undefined;
                    [key: `uint72[${string}]`]: undefined;
                    [key: `uint80[${string}]`]: undefined;
                    [key: `uint88[${string}]`]: undefined;
                    [key: `uint96[${string}]`]: undefined;
                    [key: `uint104[${string}]`]: undefined;
                    [key: `uint112[${string}]`]: undefined;
                    [key: `uint120[${string}]`]: undefined;
                    [key: `uint128[${string}]`]: undefined;
                    [key: `uint136[${string}]`]: undefined;
                    [key: `uint144[${string}]`]: undefined;
                    [key: `uint152[${string}]`]: undefined;
                    [key: `uint160[${string}]`]: undefined;
                    [key: `uint168[${string}]`]: undefined;
                    [key: `uint176[${string}]`]: undefined;
                    [key: `uint184[${string}]`]: undefined;
                    [key: `uint192[${string}]`]: undefined;
                    [key: `uint200[${string}]`]: undefined;
                    [key: `uint208[${string}]`]: undefined;
                    [key: `uint216[${string}]`]: undefined;
                    [key: `uint224[${string}]`]: undefined;
                    [key: `uint232[${string}]`]: undefined;
                    [key: `uint240[${string}]`]: undefined;
                    [key: `uint248[${string}]`]: undefined;
                    [key: `uint256[${string}]`]: undefined;
                }
                | { [key: string]: unknown },
            primaryType extends string,
        >(
            args: SignTypedDataParameters<
                typedData,
                primaryType,
                undefined
                | Account,
            >,
        ) => Promise<`0x${string}`>

        Signs typed data and calculates an Ethereum-specific signature in EIP-191 format: keccak256("\x19Ethereum Signed Message:\n" + len(message) + message)).

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const signature = await client.signTypedData({
        account: '0xA0Cf798816D4b9b9866b5330EEa46a18382f251e',
        domain: {
        name: 'Ether Mail',
        version: '1',
        chainId: 1,
        verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
        },
        types: {
        Person: [
        { name: 'name', type: 'string' },
        { name: 'wallet', type: 'address' },
        ],
        Mail: [
        { name: 'from', type: 'Person' },
        { name: 'to', type: 'Person' },
        { name: 'contents', type: 'string' },
        ],
        },
        primaryType: 'Mail',
        message: {
        from: {
        name: 'Cow',
        wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
        },
        to: {
        name: 'Bob',
        wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
        },
        contents: 'Hello, Bob!',
        },
        })
        // Account Hoisting
        import { createWalletClient, http } from 'viem'
        import { privateKeyToAccount } from 'viem/accounts'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        account: privateKeyToAccount('0x…'),
        chain: mainnet,
        transport: http(),
        })
        const signature = await client.signTypedData({
        domain: {
        name: 'Ether Mail',
        version: '1',
        chainId: 1,
        verifyingContract: '0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC',
        },
        types: {
        Person: [
        { name: 'name', type: 'string' },
        { name: 'wallet', type: 'address' },
        ],
        Mail: [
        { name: 'from', type: 'Person' },
        { name: 'to', type: 'Person' },
        { name: 'contents', type: 'string' },
        ],
        },
        primaryType: 'Mail',
        message: {
        from: {
        name: 'Cow',
        wallet: '0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826',
        },
        to: {
        name: 'Bob',
        wallet: '0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB',
        },
        contents: 'Hello, Bob!',
        },
        })
      • switchChain: (args: SwitchChainParameters) => Promise<void>

        Switch the target chain in a wallet.

        import { createWalletClient, custom } from 'viem'
        import { mainnet, optimism } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        await client.switchChain({ id: optimism.id })
      • watchAsset: (args: WatchAssetParams) => Promise<boolean>

        Adds an EVM chain to the wallet.

        import { createWalletClient, custom } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const success = await client.watchAsset({
        type: 'ERC20',
        options: {
        address: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
        decimals: 18,
        symbol: 'WETH',
        },
        })
      • writeContract: <
            const abi extends Abi
            | readonly unknown[],
            functionName extends string,
            args extends unknown,
            chainOverride extends undefined | Chain = undefined,
        >(
            args: WriteContractParameters<
                abi,
                functionName,
                args,
                undefined
                | Chain,
                undefined | Account,
                chainOverride,
            >,
        ) => Promise<`0x${string}`>

        Executes a write function on a contract.

        A "write" function on a Solidity contract modifies the state of the blockchain. These types of functions require gas to be executed, and hence a Transaction is needed to be broadcast in order to change the state.

        Internally, uses a Wallet Client to call the sendTransaction action with ABI-encoded data.

        Warning: The write internally sends a transaction – it does not validate if the contract write will succeed (the contract may throw an error). It is highly recommended to simulate the contract write with contract.simulate before you execute it.

        import { createWalletClient, custom, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const hash = await client.writeContract({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
        functionName: 'mint',
        args: [69420],
        })
        // With Validation
        import { createWalletClient, custom, parseAbi } from 'viem'
        import { mainnet } from 'viem/chains'

        const client = createWalletClient({
        chain: mainnet,
        transport: custom(window.ethereum),
        })
        const { request } = await client.simulateContract({
        address: '0xFBA3912Ca04dd458c843e2EE08967fC04f3579c2',
        abi: parseAbi(['function mint(uint32 tokenId) nonpayable']),
        functionName: 'mint',
        args: [69420],
        }
        const hash = await client.writeContract(request)

    Returns VaultClient

Methods

  • Checks if a chain is supported by checking if it has a subgraph URL

    Parameters

    • chainId: number

      The chain ID to check

    Returns boolean

    boolean indicating if the chain is supported

  • Prepares the transaction data for depositing tokens into a vault without executing it

    Parameters

    • params: VaultDepositParams

      The deposit parameters

    Returns Promise<
        SteerResponse<
            {
                address: `0x${string}`;
                abi: {
                    type: string;
                    inputs: { name: string; internalType: string; type: string }[];
                    name: string;
                    outputs: never[];
                    stateMutability: string;
                }[];
                functionName: string;
                args: readonly [
                    `0x${string}`,
                    bigint,
                    bigint,
                    bigint,
                    bigint,
                    `0x${string}`,
                ];
            },
        >,
    >

  • Prepares the transaction data for withdrawing tokens from a vault without executing it

    Parameters

    • params: VaultWithdrawParams

      The withdrawal parameters

    Returns Promise<
        SteerResponse<
            {
                address: `0x${string}`;
                abi: {
                    type: string;
                    inputs: { name: string; internalType: string; type: string }[];
                    name: string;
                    outputs: never[];
                    stateMutability: string;
                }[];
                functionName: string;
                args: readonly [bigint, bigint, bigint, `0x${string}`];
            },
        >,
    >

  • Calculates the amount of tokens that would be received for a given amount of LP tokens

    Parameters

    • vaultAddress: `0x${string}`

      The vault address

    • lpToken: bigint

      The amount of LP tokens to calculate for

    Returns Promise<SteerResponse<TokensFromLpResponse>>

  • Gets the corresponding token amount based on the provided token amount and ratio

    Parameters

    • vaultAddress: `0x${string}`

      The vault address

    • amount: bigint

      The amount of token to calculate the corresponding amount for

    • zeroForOne: boolean

      If true, calculates token1 amount for given token0, if false calculates token0 amount for given token1

    Returns Promise<SteerResponse<bigint>>