React:Dapp开发

React:Dapp开发-常用的hooks:wagmi

2022-07-27  本文已影响0人  精神病患者link常

wagmi 文档:https://wagmi.sh/docs/getting-started

  1. 获取地址
  2. 获取余额
  3. 创建合约对象
    4.合约监听
    5.读取合约方法
    6.调用合约方法
    7.获取Network、Provider、Signer
    8.切换网络

1. 获取地址

  // address?: string
  // connector?: Connector
  // isConnecting: boolean
  // isReconnecting: boolean
  // isConnected: boolean
  // isDisconnected: boolean
  // status: 'connecting' | 'reconnecting' | 'connected' | 'disconnected'
  const account = useAccount({
    onConnect({ address, connector, isReconnected }) {
      console.log('Connected', { address, connector, isReconnected })
    },
    onDisconnect() {
      console.log('Disconnected')
    },
  })
  console.log('account==',account);
  

2. 获取余额

  const balance = useBalance({
   addressOrName:'自己的钱包地址' 
  })
  console.log('balance==',balance.data?.formatted);

3. 创建合约对象

const contract = useContract({
    addressOrName: '合约地址',
    contractInterface: 合约ABI,
  })

4.合约方法监听

function App() {
  useContractEvent({
    addressOrName: 合约地址,
    contractInterface:合约ABI,
    eventName: 'NewOwner', 合约监听方法
    listener: (event) => console.log(event),
    once: true, 监听一次
  })
}

5.读取合约方法

 const contractRead = useContractRead({
    addressOrName: '合约地址',
    contractInterface: 合约abi,
    functionName: 'getSleep', 合约方法
    args:[],参数
    onSuccess(data) {
      console.log('Success', data)
    },
    onError(error) {
      console.log('Error', error)
    },
  })

6.调用合约方法

 const { data, isError, isLoading, write } = useContractWrite({
    addressOrName: '合约地址',
    contractInterface: 合约abi,
    functionName: 'feed合约方法',
    args: [],参数
    onError(error) {
      console.log('Error', error)
    },
    onSuccess(data) {
      console.log('Success', data)
    },
  })

7.获取Network、Provider、Signer

const { chain, chains } = useNetwork()
const provider = useProvider()
const { data: signer, isError, isLoading } = useSigner()

8.切换网络

 const { chains, error, isLoading, pendingChainId, switchNetwork } =
    useSwitchNetwork()
 switchNetwork?.(chainId)
上一篇下一篇

猜你喜欢

热点阅读