Solidity

將智能合約部署到 ganache-desktop 而不是帶有 brownie 的 ganache-cli

  • April 8, 2022

我有一個用布朗尼開發的智能合約。我想將它部署到ganache。如果我執行我的部署腳本 brownie run scripts/deploy.py,brownie 會使用ganache-cli. 但我想將它部署到桌面版本的 ganache,以便我可以更方便地使用它。我可以查看我的網路,brownie networks list我可以看到不同的網路,如乙太坊主網、Ropsten 等以及開發網路:

Development
 ├─Ganache-CLI: development
 ├─Geth Dev: geth-dev
 ├─Hardhat: hardhat
 ├─Hardhat (Mainnet Fork): hardhat-fork
 ├─Ganache-CLI (Mainnet Fork): mainnet-fork
 ├─Ganache-CLI (BSC-Mainnet Fork): bsc-main-fork
 ├─Ganache-CLI (FTM-Mainnet Fork): ftm-main-fork
 ├─Ganache-CLI (Polygon-Mainnet Fork): polygon-main-fork
 └─Ganache-CLI (XDai-Mainnet Fork): xdai-main-fork

由於使用brownie run scripts/deploy.py不帶該--network選項的選項會將其部署到開發網路,我想必須配置一些東西,因此它不使用Ganache-CLI. 我找不到將它部署到我的 ganache 桌面的方法。我在教程中看到,如果布朗尼正在執行,它通常會通過 RPC-Client 自動連接到 ganache 桌面。但是在我的電腦上它不工作。

好的。我找到了解決方案。我可以在我的網路列表中添加一個本地網路:

brownie networks add Ethereum ganache-local host=http://127.0.0.1:7545 chainid=5777

ganache-local我選擇的名稱在哪裡,正在host + chainid執行的 Ganache-desktop 版本在哪裡。執行該命令後,您可以看到一條成功消息:

SUCCESS: A new network 'ganache-local' has been added
 └─ganache-local
   ├─id: ganache-local
   ├─chainid: 5777
   └─host: HTTP://127.0.0.1:7545

如果您現在執行brownie networks list,您將在該Ethereum部分下看到新的ganache-local

Ethereum
 ├─Mainnet (Infura): mainnet
 ├─Ropsten (Infura): ropsten
 ├─Rinkeby (Infura): rinkeby
 ├─Goerli (Infura): goerli
 ├─Kovan (Infura): kovan
 └─ganache-local: ganache-local

現在我可以執行 brownie run scripts/deploy.py --network ganache-local並部署到 ganache-desktop

你可以刪除網路brownie networks delete ganache-local

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