Truffle

Windows Ganache GUI 沒有從在 WSL2 上執行的 Truffle 獲取更新

  • January 21, 2022

我像往常一樣向 Ganache 添加了松露工作區。但是現在當我在 truffle shell 中執行一個簡單的truffle develop後續操作時,Ganache 發現合約已部署,但它並沒有發現錢包餘額的變化。migrate

我的truffle-config.js文件只有一個變化:

 compilers: {
   solc: {
     version: "native", 
   },
 },

我在 WSL2 中執行 truffle,而 ganache gui 本地安裝在 Windows 中。

以下是 Truffle shell 報告的餘額:

truffle(develop)> web3.eth.getBalance(accounts[0])
'99934183260000000000' # updated balance after migrate

truffle(develop)> accounts[0]
'0x6b318B9350E42bEB94f9Ae5e8b9DA854a6137628'

0x6b318B9350E42bEB94f9Ae5e8b9DA854a6137628Ganache 中的同一個帳戶顯示余額已滿 100 Eth:圖片

我有一個類似的問題,似乎可以通過確保在嘗試在 GUI 中連接到它之前執行 ganache-cli 來解決。我還必須選擇“0.0.0.0”的主機類型

我將以下內容添加到我的 .zshrc 或 .bashrc 文件中

# Get WSL Host IP
export WSL_HOST_IP="$(awk '/nameserver/ { print $2 }' /etc/resolv.conf)"

這允許我顯示我的主機 ip,因此 WSL2 中的命令可以到達本地主機。

現在在 Ganache GUI 中創建一個工作區,並在伺服器 HOSTNAME 設置下選擇“0.0.0.0 - All Interfaces”。

在您的 truffle 項目中編輯 truffle-config.js 文件並將您的網路開發塊設置為:

development: {
 host: process.env.WSL_HOST_IP,
 port: 7545,
 network_id: "*" // Match any network id
}

現在,當您執行 truffle migrate 時,它應該連接到 Ganache GUI。

引用自:https://ethereum.stackexchange.com/questions/90309