Testnets

使用 brownie 部署到測試網

  • December 13, 2020

我正在尋找使用 Brownie 將一些程式碼部署到 kovan 測試網。但是,我不斷收到訪問帳戶的錯誤。這是我正在執行的命令:

brownie run scripts/deploy_price_consumer_v3.py --network kovan

這是錯誤:

Running 'scripts/deploy_price_consumer_v3.py::main'...
 File "brownie/_cli/run.py", line 49, in main
   return_value = run(args["<filename>"], method_name=args["<function>"] or "main")
 File "brownie/project/scripts.py", line 66, in run
   return getattr(module, method_name)(*args, **kwargs)
 File "./scripts/deploy_price_consumer_v3.py", line 7, in main
   print(accounts[0])
 File "brownie/network/account.py", line 103, in __getitem__
   return self._accounts[key]

但是當我執行時,brownie accounts list我會得到一個帳戶。

brownie accounts list
Brownie v1.11.12 - Python development framework for Ethereum

Found 1 account:
└─0: 0x643315C9Be056cDEA171F4e7b2222a4ddaB9F88D
patrick@iMac: [~/code/chainlink-mix] $ 

附加資訊

我還嘗試更改配置:

networks:
 default: kovan
 kovan:
   cmd_settings:
     mnemonic: ${MNEMONIC}
   host: ${KOVAN_RPC_URL}

帶有一些環境變數

我也按照這個類似問題的說明進行操作,但仍然遇到問題。

執行後:

brownie accounts new <id>

並為帳戶提供唯一 ID,您必須輸入私鑰。然後在您的部署腳本中,您需要載入該帳戶並輸入該帳戶的密碼。因此,如果您有一個名為 的契約PriceFeed.sol,並且您提供了部署腳本的帳戶 ID,那麼0您將如下所示:

from brownie import PriceFeed, accounts


def main():
   dev = accounts.load('0')
   return PriceFeed.deploy({'from': dev})

這是 yearn.finance 範例中的一個範例:https ://github.com/iearn-finance/yearn-vaults/pull/125

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