Mit Brownie auf testnet bereitstellen
Ich möchte mit Brownie Code für das Kovan-Testnetz bereitstellen. Ich erhalte jedoch immer wieder einen Fehler beim Zugriff auf Konten. Hier ist der Befehl, den ich ausführe:
brownie run scripts/deploy_price_consumer_v3.py --network kovan
Hier ist der Fehler:
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]
Aber wenn ich renne, brownie accounts list
bekomme ich einen Account.
brownie accounts list
Brownie v1.11.12 - Python development framework for Ethereum
Found 1 account:
└─0: 0x643315C9Be056cDEA171F4e7b2222a4ddaB9F88D
patrick@iMac: [~/code/chainlink-mix] $
Zusätzliche Information
Ich habe auch versucht, die Konfiguration zu ändern:
networks:
default: kovan
kovan:
cmd_settings:
mnemonic: ${MNEMONIC}
host: ${KOVAN_RPC_URL}
Mit einigen Umgebungsvariablen
Und ich folgte auch den Anweisungen aus dieser ähnlichen Frage , stieß aber immer noch auf Probleme.
Antworten
Nach dem Rennen:
brownie accounts new <id>
Wenn Sie dem Konto eine eindeutige ID geben, müssen Sie den privaten Schlüssel eingeben. Anschließend müssen Sie in Ihrem Bereitstellungsskript das Konto laden und das Kennwort für das Konto eingeben. Wenn Sie also einen Vertrag mit dem Namen PriceFeed.sol
haben und die Konto-ID 0
Ihres Bereitstellungsskripts angegeben haben, sieht dies ungefähr so aus:
from brownie import PriceFeed, accounts
def main():
dev = accounts.load('0')
return PriceFeed.deploy({'from': dev})
Hier ist ein Beispiel aus yearn.finance Beispiel: https://github.com/iearn-finance/yearn-vaults/pull/125