es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo puedo solucionar el problema del archivo .env cuando quiero exportar mi clave privada en Brownie?

Tengo el mismo problema exacto que este, estoy aprendiendo en el curso de Patrick Collins en esta parte con el siguiente código:

from brownie import accounts, config, SimpleStorage, network


def deploy_simple_storage():
    account = get_account()
    simple_storage = SimpleStorage.deploy({"from": account})
    stored_value = simple_storage.retrieve()
    print(stored_value)
    transaction = simple_storage.store(15, {"from": account})
    transaction.wait(1)
    updated_stored_value = simple_storage.retrieve()
    print(updated_stored_value)


def get_account():
    if network.show_active() == "development":
        return accounts[0]
    else:
        return accounts.add(config["wallets"]["from_key"])


def main():
    deploy_simple_storage()

Tengo brownie v1.14.6.
Tengo .env y brownie-config.ymal en el mismo repositorio.
Ya intenté importar os en una línea, luego print(os.getenv("PRIVATE_KEY")) y me devuelve el mismo error y “none”.
Creo que es un problema con .env (Variables Environment, como también intenté agregar manualmente las variables de PATH y aún no funciona) me devuelve el mismo error:

PS C:\Users\ericl\demos\brownie_simple_storage> brownie run .\scripts\deploy.py --network rinkeby
INFO: Could not find files for the given pattern(s).
Brownie v1.14.6 - Python development framework for Ethereum

BrownieSimpleStorageProject is the active project.

Running 'scripts\deploy.py::main'...
  File "c:\users\ericl\appdata\local\programs\python\python39\lib\site-packages\brownie\_cli\run.py", line 49, in main
    return_value, frame = run(
  File "c:\users\ericl\appdata\local\programs\python\python39\lib\site-packages\brownie\project\scripts.py", line 103, in run
    return_value = f_locals[method_name](*args, **kwargs)
  File ".\scripts\deploy.py", line 23, in main
    deploy_simple_storage()
  File ".\scripts\deploy.py", line 5, in deploy_simple_storage
    account = get_account()
  File ".\scripts\deploy.py", line 19, in get_account
    return accounts.add(config["wallets"]["from_key"])
  File "c:\users\ericl\appdata\local\programs\python\python39\lib\site-packages\brownie\network\account.py", line 132, in add
    w3account = web3.eth.account.from_key(private_key)
_utils\decorators.py", line 18, in _wrapper
    return self.method(obj, *args, **kwargs)
  File "c:\users\ericl\appdata\local\programs\python\python39\lib\site-packages\eth_account\account.py", line 246, in from_key
    key = self._parsePrivateKey(private_key)
  File "c:\users\ericl\appdata\local\programs\python\python39\lib\site-packages\eth_utils\decorators.py", line 18, in _wrapper
    return self.method(obj, *args, **kwargs)
  File "c:\users\ericl\appdata\local\programs\python\python39\lib\site-packages\eth_account\account.py", line 696, in _parsePrivateKey
    raise ValueError(
ValueError: The private key must be exactly 32 bytes long, instead of 0 bytes.

Nota: Uso Windows 10.

Tags:  ,

Answer

  1. Avatar for davy.ai

    Parece que estás teniendo problemas para acceder a las variables de entorno al ejecutar tu script. Aquí hay algunas cosas que puedes intentar para resolver el problema:

    1. Revisa tu archivo .env: Asegúrate de que tu archivo .env esté en el formato correcto y que contenga las variables correctas. También puedes intentar usar os.getenv() para verificar si estás accediendo a las variables correctamente.
    2. Agrega las variables manualmente: Si todavía tienes problemas para acceder a las variables de entorno, puedes intentar agregarlas manualmente a tu script configurándolas como variables.

    3. Asegúrate de que las variables se estén cargando: Brownie busca automáticamente y carga tanto los archivos .env como brownie-config.yaml cuando ejecutas tu script. Asegúrate de que estos archivos estén en la ubicación correcta y de que se estén cargando correctamente.

    4. Revisa las variables de sistema: También es posible que tus variables de sistema no estén configuradas correctamente. Asegúrate de haber agregado las rutas y variables correctas a tus variables de entorno del sistema.

    También es importante tener en cuenta que el error que estás recibiendo está relacionado con la longitud de la clave privada. Asegúrate de estar usando la clave privada correcta y de que tenga la longitud correcta. Si todavía tienes problemas, puedes intentar contactar a la comunidad de Brownie para obtener soporte adicional.

Comments are closed.