美文网首页React:Dapp开发
React:Dapp开发-常用的hooks:wagmi

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

作者: 精神病患者link常 | 来源:发表于2022-07-27 13:58 被阅读0次

    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)
    

    相关文章

      网友评论

        本文标题:React:Dapp开发-常用的hooks:wagmi

        本文链接:https://www.haomeiwen.com/subject/doooirtx.html