Truffle
Windows Ganache GUI 沒有從在 WSL2 上執行的 Truffle 獲取更新
我像往常一樣向 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'
0x6b318B9350E42bEB94f9Ae5e8b9DA854a6137628
Ganache 中的同一個帳戶顯示余額已滿 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。