运行 01_deploy_price_consumer 两次时出错 - 在布朗尼中杀死甘纳许
errors when running 01_deploy_price_consumer twice - killing ganache in brownie
目前正在学习 chainlink 训练营的练习 3:部署到本地区块链。
使用 ganache 时,如果我在 运行ning
之后有一个新的 chainlink-mix 文件夹
brownie run scripts/price_feed_scripts/01_deploy_price_consumer_v3.py
编译一切正常。但是当我关闭 ganache(ctrl+C) 并打开另一个 ganache 和 运行 相同的命令时,我得到了很多错误。
如果我删除 chainlink 混合并获得一个新的克隆,我可以解决这个问题。我想知道如何解决这个问题而不必每次都获取一个新文件夹。
编辑:我正在 运行再次执行 01_deploy_price_consumer
命令以查看是否可以将 eth 的默认 getLatestPrice 更改为 3000 而不是 2000
C:\Users\N\new\chainlink-mix>brownie run scripts/price_feed_scripts/01_deploy_price_consumer_v3.py
INFO: Could not find files for the given pattern(s).
Brownie v1.16.3 - Python development framework for Ethereum
ChainlinkMixProject is the active project.
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\_cli\__main__.py", line 64, in main
importlib.import_module(f"brownie._cli.{cmd}").main()
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\_cli\run.py", line 43, in main
network.connect(CONFIG.argv["network"])
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\main.py", line 55, in connect
p._load_deployments()
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\project\main.py", line 357, in _load_deployments
contract = ProjectContract(self, build, build_json.stem)
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\contract.py", line 1292, in __init__
_DeployedContractBase.__init__(self, address, owner, tx)
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\contract.py", line 758, in __init__
raise ContractNotFound(f"No contract deployed at {address}")
ContractNotFound: No contract deployed at 0xa1d97e44c6Ac5327DEa2deCAb5f9E1085b8Bcf38
brownie 连接的网络有 3 种:
Ethereum
Ethereum Classic
(可以忽略)
Development
您可以在终端中 运行ning brownie networks list
查看它们。
在 Ethereum
类别中创建网络时,brownie 将保存已部署合约的地址,在这种情况下,您的本地 ganache 链在 Ethereum
类别中。它记得,但将地址存储在 build
文件夹中。
因此,当您第一次将合约部署到本地 ganache 链时,brownie 会将地址存储在其构建文件夹中。这些合约存在于你的 ganache 链上。但是,当你删除 ganache 链并创建一个新链时,这些合约也会被删除,但 brownie 仍然认为它们存在。
brownie networks list
t运行 分类输出:
Ethereum
├─Mainnet (Infura): mainnet
└─ganache: ganache (brownie will remember these)
Development
├─Ganache-CLI: development
└─ganache-temp: ganache-temp (brownie won't remember these)
如果您希望 brownie 总是重新部署所需的体验,您可以在 Development
网络中创建您的 ganache 网络,这样 brownie 就不会记住它的部署,并且会一直部署新鲜.
不过,这意味着您将无法 运行 任何第二个脚本,例如 brownie run scripts/price_feed_scripts/02_whatever_this_one_is.py
,因为布朗尼不记得那里有任何合同。
目前正在学习 chainlink 训练营的练习 3:部署到本地区块链。
使用 ganache 时,如果我在 运行ning
之后有一个新的 chainlink-mix 文件夹brownie run scripts/price_feed_scripts/01_deploy_price_consumer_v3.py
编译一切正常。但是当我关闭 ganache(ctrl+C) 并打开另一个 ganache 和 运行 相同的命令时,我得到了很多错误。
如果我删除 chainlink 混合并获得一个新的克隆,我可以解决这个问题。我想知道如何解决这个问题而不必每次都获取一个新文件夹。
编辑:我正在 运行再次执行 01_deploy_price_consumer
命令以查看是否可以将 eth 的默认 getLatestPrice 更改为 3000 而不是 2000
C:\Users\N\new\chainlink-mix>brownie run scripts/price_feed_scripts/01_deploy_price_consumer_v3.py
INFO: Could not find files for the given pattern(s).
Brownie v1.16.3 - Python development framework for Ethereum
ChainlinkMixProject is the active project.
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\_cli\__main__.py", line 64, in main
importlib.import_module(f"brownie._cli.{cmd}").main()
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\_cli\run.py", line 43, in main
network.connect(CONFIG.argv["network"])
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\main.py", line 55, in connect
p._load_deployments()
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\project\main.py", line 357, in _load_deployments
contract = ProjectContract(self, build, build_json.stem)
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\contract.py", line 1292, in __init__
_DeployedContractBase.__init__(self, address, owner, tx)
File "C:\Users\N\AppData\Local\Programs\Python\Python39\lib\site-packages\brownie\network\contract.py", line 758, in __init__
raise ContractNotFound(f"No contract deployed at {address}")
ContractNotFound: No contract deployed at 0xa1d97e44c6Ac5327DEa2deCAb5f9E1085b8Bcf38
brownie 连接的网络有 3 种:
Ethereum
Ethereum Classic
(可以忽略)Development
您可以在终端中 运行ning brownie networks list
查看它们。
在 Ethereum
类别中创建网络时,brownie 将保存已部署合约的地址,在这种情况下,您的本地 ganache 链在 Ethereum
类别中。它记得,但将地址存储在 build
文件夹中。
因此,当您第一次将合约部署到本地 ganache 链时,brownie 会将地址存储在其构建文件夹中。这些合约存在于你的 ganache 链上。但是,当你删除 ganache 链并创建一个新链时,这些合约也会被删除,但 brownie 仍然认为它们存在。
brownie networks list
t运行 分类输出:
Ethereum
├─Mainnet (Infura): mainnet
└─ganache: ganache (brownie will remember these)
Development
├─Ganache-CLI: development
└─ganache-temp: ganache-temp (brownie won't remember these)
如果您希望 brownie 总是重新部署所需的体验,您可以在 Development
网络中创建您的 ganache 网络,这样 brownie 就不会记住它的部署,并且会一直部署新鲜.
不过,这意味着您将无法 运行 任何第二个脚本,例如 brownie run scripts/price_feed_scripts/02_whatever_this_one_is.py
,因为布朗尼不记得那里有任何合同。