Contract-Development

儘管已部署契約,但為什麼 Brownie ContractContainer 是空的?

  • January 27, 2022

我遇到了 Brownie 沒有將部署的契約附加到的問題,ContractContainer因為在嘗試ContractContainer為我的SimpleStorage契約編制索引時,我收到以下錯誤:

IndexError:列表索引超出範圍

我有一個deploy.py部署契約的腳本,我可以確認它可以正常執行並部署契約(可在資源管理器中查看):

from brownie import accounts, SimpleStorage

def main():
 account = accounts.load("my-account")
 SimpleStorage.deploy({"from": account})

另一個腳本用於訪問使用上述腳本部署interact.py的給定部署合約並與之互動。SimpleStorage

from brownie import SimpleStorage

def main():
 simple_storage_zero = SimpleStorage[0] # indexing error

有人可以幫助我嗎?如果不是確切的問題,我至少有另一種與給定SimpleStorage契約互動的方式,例如使用契約的地址對其進行實例化。

我不確定這是如何解決的,但只需刪除./build/deployments目錄的內容並重新部署契約就可以為我解決。

或者,您可以將預設網路更改為您正在部署的測試網路。如果我沒記錯的話,brownie 預設會啟動並連接到 ganache-cli。你可以參考這裡的文件https://eth-brownie.readthedocs.io/en/stable/network-management.html#live-networks,或者參考下圖在此處輸入圖像描述

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