1

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) を使用しているという事実があると思いますが、正確に何に変更する必要があるのか​​ わかりません。このことを機能させます。

4

1 に答える 1