ethers.js を使用して Typescript Expo アプリをローカルのガナッシュ ノードに接続しようとしています。現在、私のコードは次のようになっています。
import React, {useEffect, useState} from 'react'
import {View, Text} from 'react-native'
import "react-native-get-random-values"
import "@ethersproject/shims"
import { ethers } from 'ethers'
const ganacheUrl = "http://127.0.0.1:7545"
const Portfolio:React.FC = () => {
const provider = new ethers.providers.JsonRpcProvider(ganacheUrl)
const signer = provider.getSigner()
const [wallet,setWallet] = useState<Wallet>({privateKey:'',address:'',mnemonic:{phrase:''}})
useEffect(() => {
const newWallet = ethers.Wallet.createRandom()
const connectedWallet = newWallet.connect(provider)
const currentGas = connectedWallet.getGasPrice()
setWallet({privateKey:connectedWallet.privateKey,address:connectedWallet.address,mnemonic:connectedWallet.mnemonic})
},[])
return(
<View>
<Text style={{color:theme.colors.textWhite}}>Your public address:</Text>
<Text style={{color:theme.colors.textWhite}}>{wallet.address}</Text>
</View>
)
}
公開アドレスは正しく表示されていますが、オンチェーン データ (Gas Price など) を取得しようとすると、「NO-NETWORK」エラーが発生します。url が原因で expo クライアントが Ganache ノードに接続できないこと、およびネイティブ アプリケーションと Web アプリケーションが異なるホスト表記 (localhost と 192.168.1.1) を使用しているという事実があると思いますが、正確に何に変更する必要があるのか わかりません。このことを機能させます。