我正在尝试在 Goerli 上部署智能合约,但收到导入错误

问题描述 投票:0回答:2

我正在使用 Brownie 在 Goerli 上部署合约,正确遵循指南的所有步骤,我已成功编译合约“FundMe”,但它返回错误 - ImportError:无法从“brownie”导入名称“FundMe” .

我正在使用命令 -

brownie run scripts/deploy.py --network goerli
。另外 .yaml 文件是正确的,并且 Solidity 文件位于 Contracts 目录中(其他人的实际问题是他们在 build/contracts 目录中有 Solidity 文件)。

这是deploy.py文件:

def deploy_fund_me():
    account = get_account()
    fund_me = FundMe.deploy({"from": account})
    print(f"Contractt deployed to {fund_me.address}")

def main():
    deploy_fund_me()

python blockchain solidity brownie
2个回答
0
投票

我以前也遇到过同样的问题。这就像由于

Fundme
未加载。解决方法是使用
brownie console
而不是部署脚本。

对于您的情况,请尝试:

  1. cd
    到您的项目路径
  2. 运行
    brownie console --network goerli
    ,然后
    FundMe
    应作为变量加载。
  3. 运行
    accounts.add('YOUR_PRIVATE_KEY')
    ,将
    YOUR_PRIVATE_KEY
    替换为您的私钥。
  4. 运行
    fund_me = FundMe.deploy({"from": accounts[0]})
    ,然后等待一秒钟。合约应该已部署。

然后您可以使用

fund_me.ANY_FUNCTION()
与合约交互,将
ANY_FUNCTION()
替换为您的函数。


0
投票

如果它确实不适合你,请尝试在函数中导入 FundMe。例如

defdeploy_fund_me(): from Brownie import Fundme #这会起作用。然后部署后您可以将导入返回顶部......

© www.soinside.com 2019 - 2024. All rights reserved.