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.

No pude obtener resultados cuando escribo código compilado en Visual Studio Code, al ejecutar python deploy.py me da un error. ¿Qué debo editar en mi código?

Acabo de empezar a programar y parece que falta algo en el código, se trata de un código compilado. El mensaje de error que me aparece después de ejecutar python deploy.py es el siguiente:
Lo revisé muchas veces pero sigue teniendo el mismo error.

El código es de una lección en la que estoy trabajando y se encuentra en este enlace:
https://github.com/PatrickAlphaC/web3py-simple-storage
El código se encuentra en este enlace: https://github.com/PatrickAlphaC/web3py-simple-storage/blob/main/deploy.py

Aquí está el código y el mensaje de error, ¡muchas gracias de antemano 🙂

Código:

from solcx import compile_standard

with open("SimpleStorage.sol", "r") as file:
    simple_storage_file = file.read()

compiled_sol = compile_standard(
    {
        "language": "solidity",
        "sources": {"simpleStorage.sol": {"content": simple_storage_file}},
        "settings": {
            "outputSelection": {
                "*": {
                    "*": ["abi", "metadata", "evm.bytecode", "evm.sourceMap"]
                }
            }
        },
    },
    solc_version="0.6.0",
)

print(compiled_sol)

Error:

“`
INFO: Could not find files for the given pattern(s).
Traceback (most recent call last):
File "C:\Users\user\web3py-simple-storage\deploy.py", line 8, in <module>
compiled_sol = compile_standard(
File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\site-packages\solcx\main.py", line 394, in compile_standard
raise SolcError(
solcx.exceptions.SolcError: Only "Solidity" or "Yul" is supported as a language.

command: <code>C:\Users\user\.solcx\solc-v0.6.0\solc.exe –standard-json</code>
return code: <code>0</code>
stdout:
{"errors":[{"component":"general","formattedMessage":"Only \"Solidity\" or \"Yul\" is supported as a language.","message":"Only \"Solidity\" or \"Yul\" is supported as a language.","severity":"error","type":"JSONError"}]}
“`

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    El mensaje de error sugiere que el código está intentando compilar un lenguaje que no es compatible con el paquete solcx. Específicamente, indica que solo se admite “Solidity” o “Yul” como lenguaje.

    Al revisar el código, parece que el atributo de lenguaje en la función compile_standard() está establecido en “solidity” en lugar de “Solidity”. Esto puede estar causando el error, ya que el atributo de lenguaje distingue entre mayúsculas y minúsculas.

    Para corregir el error, actualiza el código para utilizar “Solidity” como atributo de lenguaje en la función compile_standard(). El código actualizado debería verse así:

    from solcx import compile_standard
    
    with open("SimpleStorage.sol", "r") as file:
        simple_storage_file = file.read()
    
    compiled_sol = compile_standard(
        {
            "language": "Solidity",  # Actualiza aquí
            "sources": {"SimpleStorage.sol": {"content": simple_storage_file}},
            "settings": {
                "outputSelection": {
                    "*": {"*": ["abi", "metadata", "evm.bytecode", "evm.sourceMap"]}
                }
            },
        },
        solc_version="0.6.0",
    )
    
    print(compiled_sol)
    

    Una vez que se haya actualizado el código, intenta ejecutarlo nuevamente y verifica si el mensaje de error persiste.

Comments are closed.