Развертывание в тестовой сети с помощью Brownie
Я хочу развернуть код в тестовой сети kovan с Brownie. Однако я продолжаю получать ошибку при доступе к аккаунтам. Вот команда, которую я выполняю:
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>
И присвоив учетной записи уникальный идентификатор, вам нужно будет ввести закрытый ключ. Затем в вашем сценарии развертывания вам необходимо загрузить учетную запись и ввести пароль для учетной записи. Итак, если у вас есть контракт с именем PriceFeed.sol
и вы указали идентификатор учетной записи 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