Déployer sur testnet avec brownie

Dec 12 2020

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 listj'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

1 Macarse Dec 14 2020 at 00:11

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 0votre 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