Constructors

  • Parameters

    • client: {
          campaign(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          campaignAPR(
              variables?: Exact<{ [key: string]: never }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignAprQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          campaignAPRV2ById(
              variables: Exact<
                  {
                      campaignId: number;
                      chainId: number;
                      poolAddress: string;
                      vaultAddresses: string
                      | readonly string[];
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignAprv2ByIdQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          campaignAPRV2ByVault(
              variables: Exact<
                  {
                      vault: string;
                      chainId: number;
                      poolAddress: string;
                      vaultAddresses: string
                      | readonly string[];
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignAprv2ByVaultQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          campaignAPRsV2(
              variables: Exact<
                  {
                      chainId: number;
                      poolAddress: string;
                      vaultAddresses: string
                      | readonly string[];
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignApRsV2Query;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          campaigns(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<CampaignFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          campaignsByPool(
              variables: Exact<{ pool: string; chainId: number }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CampaignsByPoolQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          checkSignature(
              variables: Exact<{ address: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: CheckSignatureQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          claimProof(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: ClaimProofQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          claimProofs(
              variables: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<ClaimProofFilter>;
                      user: string;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: ClaimProofsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          claimRewards(
              variables: Exact<
                  {
                      poolId: string;
                      chainId: number;
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<ClaimRewardFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: ClaimRewardsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          historicalRewards(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<HistoricalRewardsFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: HistoricalRewardsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          ponderDeploymentConfig(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: PonderDeploymentConfigQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          ponderDeploymentConfigs(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<PonderDeploymentFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: PonderDeploymentConfigsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          pool(
              variables: Exact<{ id: string; chainId: number }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: PoolQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          poolRewards(
              variables: Exact<{ poolId: string; chainId: number }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: PoolRewardsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          pools(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<PoolFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: PoolsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          resolveIp(
              variables?: Exact<{ [key: string]: never }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: ResolveIpQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          rewardByCampaignId(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: RewardByCampaignIdQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          rewardToken(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: RewardTokenQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          rewardTokens(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<RewardTokenFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: RewardTokensQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          rewards(
              variables?: Exact<{ [key: string]: never }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: RewardsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          smartRewarderContracts(
              variables?: Exact<{ [key: string]: never }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: SmartRewarderContractsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          strategies(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<StrategyFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: StrategiesQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          strategy(
              variables: Exact<{ id: string; chainId: number }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: StrategyQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          token(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: TokenQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          tokens(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<TokenFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: TokensQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          userBalances(
              variables: Exact<{ user: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: UserBalancesQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          userReward(
              variables: Exact<{ id: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: UserRewardQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          userRewards(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<UserRewardFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: UserRewardsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          userRewardsByCampaign(
              variables: Exact<{ user: string; campaignId: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: UserRewardsByCampaignQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          vault(
              variables: Exact<{ id: string; chainId: number }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: VaultQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          vaultAPRV2(
              variables: Exact<
                  { vault: string; chainId: number; poolAddress: string },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: VaultAprv2Query;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          vaultAPRs(
              variables?: Exact<{ [key: string]: never }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: VaultApRsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          vaultAPRsV2(
              variables?: Exact<{ [key: string]: never }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: VaultApRsV2Query;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          vaults(
              variables?: Exact<
                  {
                      first?: InputMaybe<number>;
                      after?: InputMaybe<string>;
                      orderBy?: InputMaybe<OrderByInput>;
                      filter?: InputMaybe<VaultFilter>;
                  },
              >,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: VaultsQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
          vaultsByCampaign(
              variables: Exact<{ campaignId: string }>,
              requestHeaders?: GraphQLClientRequestHeaders,
          ): Promise<
              {
                  data: VaultsByCampaignQuery;
                  errors?: GraphQLError[];
                  extensions?: any;
                  headers: Headers;
                  status: number;
              },
          >;
      }
    • publicClient: {
          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${string}`[] | 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${string}`[] | 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: (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";
                          }
                      )[]
                      : `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${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",
                      >
                  ) & { 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<
                              UnionOmit<(...), (...)> & ((...) extends (...) ? (...) : (...)) & (
                                  (...) extends (...) ? (...) : (...)
                              ),
                              IsNever<(...)> extends true ? unknown : ExactPartial<(...)>,
                          > & { chainId?: number },
                          ParameterTypeToParameters<
                              request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                                  ? any[any][number]
                                  : | "type"
                                  | "chainId"
                                  | "gas"
                                  | "nonce"
                                  | "blobVersionedHashes"
                                  | "fees",
                          >,
                      > & (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>,
                >,
        >(
            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${string}`[] | 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${string}`[] | 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: (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";
                        }
                    )[]
                    : `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${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",
                    >
                ) & { 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<
                            UnionOmit<(...), (...)> & ((...) extends (...) ? (...) : (...)) & (
                                (...) extends (...) ? (...) : (...)
                            ),
                            IsNever<(...)> extends true ? unknown : ExactPartial<(...)>,
                        > & { chainId?: number },
                        ParameterTypeToParameters<
                            request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                                ? any[any][number]
                                : | "type"
                                | "chainId"
                                | "gas"
                                | "nonce"
                                | "blobVersionedHashes"
                                | "fees",
                        >,
                    > & (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),
        })
    • walletClient: {
          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${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",
                      >
                  ) & { 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<
                              UnionOmit<(...), (...)> & ((...) extends (...) ? (...) : (...)) & (
                                  (...) extends (...) ? (...) : (...)
                              ),
                              IsNever<(...)> extends true ? unknown : ExactPartial<(...)>,
                          > & { chainId?: number },
                          ParameterTypeToParameters<
                              request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                                  ? any[any][number]
                                  : | "type"
                                  | "chainId"
                                  | "gas"
                                  | "nonce"
                                  | "blobVersionedHashes"
                                  | "fees",
                          >,
                      > & (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${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",
                      >
                  ) & { 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)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : 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)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : 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)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : 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)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : 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)
                              | (
                                  request["type"] extends undefined
                                  | string
                                      ? Extract<any[any], string>
                                      : 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 | 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${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",
                    >
                ) & { 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<
                            UnionOmit<(...), (...)> & ((...) extends (...) ? (...) : (...)) & (
                                (...) extends (...) ? (...) : (...)
                            ),
                            IsNever<(...)> extends true ? unknown : ExactPartial<(...)>,
                        > & { chainId?: number },
                        ParameterTypeToParameters<
                            request["parameters"] extends readonly PrepareTransactionRequestParameterType[]
                                ? any[any][number]
                                : | "type"
                                | "chainId"
                                | "gas"
                                | "nonce"
                                | "blobVersionedHashes"
                                | "fees",
                        >,
                    > & (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${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",
                    >
                ) & { 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)
                            | (
                                request["type"] extends undefined
                                | string
                                    ? Extract<any[any], string>
                                    : 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)
                            | (
                                request["type"] extends undefined
                                | string
                                    ? Extract<any[any], string>
                                    : 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)
                            | (
                                request["type"] extends undefined
                                | string
                                    ? Extract<any[any], string>
                                    : 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)
                            | (
                                request["type"] extends undefined
                                | string
                                    ? Extract<any[any], string>
                                    : 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)
                            | (
                                request["type"] extends undefined
                                | string
                                    ? Extract<any[any], string>
                                    : 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 SmartRewards

Methods

  • Retrieves campaigns associated with a specific pool address

    Parameters

    • poolAddress: string

      The address of the pool to get campaigns for

    • chainId: number

      Chain ID where the pool exists

    Returns Promise<SteerResponse<Campaign[]>>

    Promise resolving to an array of campaigns associated with the pool

    // Get campaigns for a pool on a specific chain
    const campaigns = await smartRewards.campaignsByPool('0x...', 1);
  • Retrieves claim proofs for a user that can be used to claim rewards

    Parameters

    • user: `0x${string}`

      Address of the user to get proofs for

    • chainId: number

      Chain ID where the claims exist

    • OptionalcampaignId: number

      Optional campaign ID to filter claims

    Returns Promise<SteerResponse<ClaimProofsResponse>>

    Promise resolving to claim proof data with pagination support

  • Retrieves historical claim data for a specific pool

    Parameters

    • chainId: number

      Chain ID where the pool exists

    • pool: string

      Address or identifier of the pool

    • Optionaluser: `0x${string}`

      Optional user address to filter claims

    Returns Promise<SteerResponse<ClaimRewardsConnection>>

    Promise resolving to paginated claim history data

    // Get all claims for a pool
    const allClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress);

    // Get claims for a specific user in a pool
    const userClaims = await smartRewards.getClaimRewardsByPool(1, poolAddress, userAddress);
  • Gets a comprehensive summary of a user's reward status

    Parameters

    • user: `0x${string}`

      Address of the user

    • poolAddress: string
    • chainId: number

      Chain ID to check rewards on

    • OptionalcampaignId: number

      Optional campaign ID to filter rewards

    • decimals: number = 18

      Number of decimals for formatting (default: 18)

    Returns Promise<SteerResponse<RewardSummary>>

    Promise resolving to reward summary with both native and formatted values

    const summary = await smartRewards.getRewardSummary(userAddress, chainId);
    console.log('Total earned:', summary.data.totalEarned.formatted);
    console.log('Available to claim:', summary.data.claimable.formatted);
  • Claims rewards from the smart rewarder contract

    Parameters

    Returns Promise<SteerResponse<`0x${string}`>>

    Promise resolving to transaction hash if successful

    This method handles the low-level interaction with the smart contract. For a higher-level interface, consider using claimCampaignRewards instead.

    // Get claim proofs
    const claimProofs = await smartRewards.getClaimProofs(userAddress, chainId, campaignId);

    // Get smart rewarder contract
    const rewarders = await smartRewards.getSmartRewarderContracts();
    const rewarder = rewarders.data?.find(r => r.chainId === chainId);

    if (claimProofs.data && rewarder) {
    // Prepare claim data
    const claimData = smartRewards.prepareClaimData(claimProofs.data);
    claimData.rewarderAddress = rewarder.address as Address;

    // Claim rewards
    const tx = await smartRewards.claimReward(claimData);
    }

    Will throw an error if no wallet account is found

    Will throw an error if contract simulation fails

  • Helper function to prepare claim data from claim proofs

    Parameters

    Returns ClaimRewardParams

    ClaimRewardParams object ready for use with claimReward

    This helper function transforms the claim proofs into the format required by the smart contract. Note that the returned object's rewarderAddress is empty and must be set before using with claimReward.

    // Get claim proofs and rewarder contract
    const proofs = await smartRewards.getClaimProofs(userAddress, chainId);
    const rewarders = await smartRewards.getSmartRewarderContracts();
    const rewarder = rewarders.data?.find(r => r.chainId === chainId);

    if (proofs.data && rewarder) {
    // Prepare the claim data
    const claimData = smartRewards.prepareClaimData(proofs.data);

    // Set the rewarder address (required)
    claimData.rewarderAddress = rewarder.address as Address;

    // Now the data is ready for claiming
    const tx = await smartRewards.claimReward(claimData);
    }
  • Convenience function to handle the entire claim process

    Parameters

    • userAddress: `0x${string}`

      The address of the user claiming rewards

    • chainId: number

      The chain ID where the campaign exists

    • OptionalcampaignId: number

      Optional campaign ID to filter claims

    Returns Promise<SteerResponse<`0x${string}`>>

    Transaction hash if successful, or error details if failed

  • Prepares the claim rewards campaign object with all necessary data for contract interaction

    Parameters

    • userAddress: `0x${string}`

      The address of the user claiming rewards

    • chainId: number

      The chain ID where the campaign exists

    • OptionalcampaignId: number

      Optional campaign ID to filter claims

    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 [
                    readonly `0x${string}`[],
                    readonly bigint[],
                    readonly bigint[],
                    readonly (readonly `0x${string}`[])[],
                ];
            },
        >,
    >

    Promise resolving to an object containing all necessary data for claiming rewards

    // Get the prepared claim data
    const claimData = await smartRewards.prepareClaimRewardsCampaign(userAddress, chainId, campaignId);

    if (claimData.success) {
    // Use the data with your own contract interaction methods
    const { address, abi, functionName, args } = claimData.data;
    // Execute the contract call using your preferred method
    }
  • 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