Triển khai testnet với brownie
Tôi đang tìm cách triển khai một số mã tới testnet kovan với Brownie. Tuy nhiên, tôi vẫn gặp lỗi khi truy cập tài khoản. Đây là lệnh tôi đang chạy:
brownie run scripts/deploy_price_consumer_v3.py --network kovan
Đây là lỗi:
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]
Nhưng khi tôi chạy, brownie accounts listtôi nhận được một tài khoản.
brownie accounts list
Brownie v1.11.12 - Python development framework for Ethereum
Found 1 account:
└─0: 0x643315C9Be056cDEA171F4e7b2222a4ddaB9F88D
patrick@iMac: [~/code/chainlink-mix] $
Thông tin thêm
Tôi cũng đã thử thay đổi cấu hình:
networks:
default: kovan
kovan:
cmd_settings:
mnemonic: ${MNEMONIC}
host: ${KOVAN_RPC_URL}
Với một số biến môi trường
Và tôi cũng đã làm theo hướng dẫn từ câu hỏi tương tự này , nhưng vẫn gặp sự cố.
Trả lời
Sau khi chạy:
brownie accounts new <id>
Và cấp cho tài khoản một ID duy nhất, bạn sẽ phải nhập khóa cá nhân. Sau đó, trong tập lệnh triển khai, bạn cần tải tài khoản và nhập mật khẩu cho tài khoản. Vì vậy, nếu bạn có một hợp đồng được đặt tên PriceFeed.solvà bạn đã cung cấp ID tài khoản của 0tập lệnh triển khai của mình sẽ trông giống như sau:
from brownie import PriceFeed, accounts
def main():
dev = accounts.load('0')
return PriceFeed.deploy({'from': dev})
Đây là một ví dụ từ Ví dụ yearn.finance: https://github.com/iearn-finance/yearn-vaults/pull/125