Implementar en testnet con brownie

Dec 12 2020

Estoy buscando implementar algo de código en la red de prueba de kovan con Brownie. Sin embargo, sigo recibiendo un error al acceder a las cuentas. Aquí está el comando que estoy ejecutando:

brownie run scripts/deploy_price_consumer_v3.py --network kovan

Aquí está el error:

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]

Pero cuando corro brownie accounts listobtengo una cuenta.

brownie accounts list
Brownie v1.11.12 - Python development framework for Ethereum

Found 1 account:
 └─0: 0x643315C9Be056cDEA171F4e7b2222a4ddaB9F88D
patrick@iMac: [~/code/chainlink-mix] $ 

Información Adicional

También intenté cambiar la configuración:

networks:
  default: kovan
  kovan:
    cmd_settings:
      mnemonic: ${MNEMONIC}
    host: ${KOVAN_RPC_URL}

Con algunas variables de entorno

Y seguí las instrucciones de esta pregunta similar también , pero aún encontré problemas.

Respuestas

1 Macarse Dec 14 2020 at 00:11

Despues de correr:

brownie accounts new <id>

Y al darle a la cuenta una identificación única, deberá ingresar la clave privada. Luego, en su secuencia de comandos de implementación, debe cargar la cuenta e ingresar la contraseña de la cuenta. Entonces, si tiene un contrato con nombre PriceFeed.soly proporcionó el ID de cuenta de 0su secuencia de comandos de implementación, se verá algo como:

from brownie import PriceFeed, accounts


def main():
    dev = accounts.load('0')
    return PriceFeed.deploy({'from': dev})

Aquí hay un ejemplo de yearn.finance Example: https://github.com/iearn-finance/yearn-vaults/pull/125