0.1.0-beta.0 • Published 1 year ago

wagmi-contracts v0.1.0-beta.0

Weekly downloads
-
License
MIT
Repository
-
Last release
1 year ago

wagmi-contracts

The library abstracts wagmi's hooks to access contracts by their names easily. So, you won't have to call hooks with address and abi every time.

Usage

shell/wagmi.ts

import { createClient } from "wagmi"
import { createContractHooks } from "wagmi-contracts"

export const wagmiClient = createClient({
  autoConnect: true,
  connectors,
  provider,
})

export const {
  useContract,
  useContractEvent,
  useContractRead,
  useContractReads,
  useContractWrite,
  useToken,
} = createContractHooks({
  contracts: {
    "bsc-testnet": {
      myFavouriteERC20Token: {
        address: "0x0000000000000000000000000000000000000000",
        abi: ERC20ABI,
      },
    },
  },
  wagmiClient,
})

components/component.tsx

import { useContract } from "../shell/wagmi"
export const Component = () => {
  const myLovedContract = useContract("myFavouriteERC20Token") // ethers.Contract instance

  return (
    <>
      <button onClick={myLovedContract.approve}>Approve</button>
    </>
  )
}

Todo

  • Implementation of the useContractInfiniteReads hook
  • Broader documentation
  • Improvement for the type support