在 rinkeby 測試網上執行 erc20 brownie 項目時出現屬性錯誤
PS E:\ERC20-BROWNIE> brownie run scripts/1_deploy_token.py –network rinkeby 資訊:找不到給定模式的文件。Brownie v1.16.4 - 乙太坊的 Python 開發框架
Erc20BrownieProject 是活動項目。
文件“C:\Users\scs\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie_cli\run.py”,第 49 行,主要返回值,frame = run(文件“C:\Users\ scs\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie\project\scripts.py",第 103 行,執行中 return_value = f_locals
$$ method_name $$(args, kwargs) 文件“.\scripts\1_deploy_token.py”,第 12 行,在 main my_token = MyToken.deploy(initial_supply, {“from”: account}) 文件“C:\Users\scs\AppData \Local\Programs\Python\Python310\lib\site-packages\brownie\network\contract.py",第 595 行,在呼叫* raise AttributeError( AttributeError: Final 參數必須是包含
from
指定地址的欄位的交易參數的字典從PS E:\ERC20-BROWNIE> brownie run scripts/1_deploy_token.py –network rinkeby INFO 部署:找不到給定模式的文件。Brownie v1.16.4 - 乙太坊的 Python 開發框架 Erc20BrownieProject 是活動項目。
文件“C:\Users\scs\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie_cli\run.py”,第 49 行,主要返回值,frame = run(文件“C:\Users\ scs\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie\project\scripts.py",第 103 行,執行中 return_value = f_locals
$$ method_name $$(args, kwargs) 文件“.\scripts\1_deploy_token.py”,第 12 行,在 main my_token = MyToken.deploy(initial_supply, {“from”: account}) 文件“C:\Users\scs\AppData \Local\Programs\Python\Python310\lib\site-packages\brownie\network\contract.py",第 595 行,在呼叫* raise AttributeError( AttributeError: Final 參數必須是包含
from
指定地址的欄位的交易參數的字典從PS E:\ERC20-BROWNIE> brownie run scripts/1_deploy_token.py –network rinkeby INFO 部署:找不到給定模式的文件。Brownie v1.16.4 - 乙太坊的 Python 開發框架 Erc20BrownieProject 是活動項目。
執行 ‘scripts\1_deploy_token.py::main’… 文件“C:\Users\scs\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie_cli\run.py”,第 49 行,在main return_value, frame = run( File “C:\Users\scs\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie\project\scripts.py”,第 103 行,執行中 return_value = f_locals
$$ method_name $$(args, kwargs) 文件“.\scripts\1_deploy_token.py”,第 12 行,在 main my_token = MyToken.deploy(initial_supply, {“from”: account}) 文件“C:\Users\scs\AppData \Local\Programs\Python\Python310\lib\site-packages\brownie\network\contract.py",第 595 行,在呼叫* raise AttributeError( AttributeError: Final 參數必須是包含
from
指定地址的欄位的交易參數的字典從PS E:\ERC20-BROWNIE>部署
如果您像這樣修改 get_account() 函式,那麼它可以工作。
這是另一種解決方案:您可以保留 get_account() 原樣。您可以在 yaml 文件中添加 rinkeby 網路,而不是像 Ganesh 的解決方案那樣註釋掉這兩行。
這是因為
if network.show_active() in config["networks"]:
在您的 brownie-config.yaml 文件中尋找“網路”。如果您在那裡添加帶有某些屬性的 rinkeby 網路,它將起作用。
例如,
networks: rinkeby: verify: True
我的布朗尼-config.yaml:
dependencies: - OpenZeppelin/openzeppelin-contracts@4.2.0 compiler: solc: remappings: - "@openzeppelin=OpenZeppelin/openzeppelin-contracts@4.2.0" dotenv: .env networks: rinkeby: verify: True wallets: from_key: ${PRIVATE_KEY}