Déployer sur testnet avec brownie
Je cherche à déployer du code sur le testnet kovan avec Brownie. Cependant, je reçois une erreur lors de l'accès aux comptes. Voici la commande que j'exécute:
brownie run scripts/deploy_price_consumer_v3.py --network kovan
Voici l'erreur:
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]
Mais quand je cours, brownie accounts list
j'obtiens un compte.
brownie accounts list
Brownie v1.11.12 - Python development framework for Ethereum
Found 1 account:
└─0: 0x643315C9Be056cDEA171F4e7b2222a4ddaB9F88D
patrick@iMac: [~/code/chainlink-mix] $
Information additionnelle
J'ai aussi essayé de changer la configuration:
networks:
default: kovan
kovan:
cmd_settings:
mnemonic: ${MNEMONIC}
host: ${KOVAN_RPC_URL}
Avec quelques variables d'environnement
Et j'ai également suivi les instructions de cette question similaire , mais j'ai toujours rencontré des problèmes.
Réponses
Après l'exécution:
brownie accounts new <id>
Et en donnant au compte un identifiant unique, vous devrez entrer la clé privée. Ensuite, dans votre script de déploiement, vous devez charger le compte et entrer le mot de passe du compte. Donc, si vous avez un contrat nommé PriceFeed.sol
, et que vous avez donné l'ID de compte de 0
votre script de déploiement ressemblera à quelque chose comme:
from brownie import PriceFeed, accounts
def main():
dev = accounts.load('0')
return PriceFeed.deploy({'from': dev})
Voici un exemple de yearn.finance Exemple: https://github.com/iearn-finance/yearn-vaults/pull/125