我和布朗尼签了一份聪明的合同。我想把它部署到加纳奇。如果我运行我的部署脚本brownie run scripts/deploy.py,布朗尼将使用ganache-cli部署智能契约。但是我想把它部署到桌面版的ganache上,这样我就可以更方便地使用它了。我可以看一下我使用brownie networks list的网络,我可以看到不同的网络,如etc.、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桌面的方法。我在一个教程中看到,brownie通常会通过RPC客户机自动连接到ganache桌面,如果它正在运行。但是在我的电脑上它不工作了。
发布于 2021-10-03 21:11:08
好吧。我找到了解决办法。我可以在我的网络列表中添加一个本地网络:
brownie networks add Ethereum ganache-local host=http://127.0.0.1:7545 chainid=5777其中,ganache-local是我选择的名称,host + chainid来自运行中的Ganache桌面版本。运行该命令后,您可以看到一条成功消息:
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-桌面。
您可以使用brownie networks delete ganache-local删除网络。
发布于 2021-12-10 14:18:21
问题是,Brownie正在本地主机端口8545 (遗留配置)中寻找服务器。默认情况下,Ganache桌面应用程序在7545中运行。如果您将端口更改为8545,它应该能够自动提取它,而不是运行ganache-cli实例。
https://ethereum.stackexchange.com/questions/110979
复制相似问题