Triển khai testnet với brownie

Dec 12 2020

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

1 Macarse Dec 14 2020 at 00:11

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