¿Cómo usar la biblioteca con 1 archivo en la solidez del navegador?

Yo uso la solidez del navegador. Ahora, quiero crear este Contrato C.ingrese la descripción de la imagen aquí

Pero tengo el mensaje "Implementación y me gusta de las bibliotecas requeridas" en el lado derecho de la imagen. Ya he creado Math Library, y puedo crear Math Library, pero tomo este mensaje.

¿Qué debo hacer para crear un contrato C en la solidez del navegador?

Posdata: Esta es mi opinión, la causa está en Bytecode.ingrese la descripción de la imagen aquí

Hay "__Math:Math______________________________" en Bytecode. Creo que debería reemplazar este texto por la dirección de la biblioteca matemática, pero no puedo cambiar el código de bytes en la solidez del navegador. ¿Alguien sabe como solucionarlo?

Respuestas (1)

He recreado tu ejemplo y funciona bien para mí. He probado las siguientes variaciones para reproducir sin éxito. Tenga en cuenta que tengo el mismo (73__Math:Math_____________________________6377) en mi código de bytes.

  • No nombrar el archivo Math para evitar confusiones con el nombre de la biblioteca.
  • tener un pragma diferente
  • cambiar nombres de funciones y contratos
  • cambiar la versión del compilador

Entonces, por mi parte, todo funciona bien.

Así que prueba lo siguiente:

  • cierre su navegador y borre su caché e intente nuevamente: el navegador Solidity tiene algunos hábitos de no ser completamente estable
  • vaya al modo de consola y ejecute la compilación con solc directamente, para verificar que el problema no esté en su código en lugar de en la solidez
  • elimine progresivamente elementos del código (parte por parte) e intente volver a compilar + crear el contrato cada vez para identificar qué parte exacta del código está causando el problema.

Personalmente, ahora que he aprendido lo básico de la solidez, ya no uso el navegador (solo para pruebas rápidas), pero estoy usando XCode IDE de Mac os con custom solc builder.

Suerte y cuéntanos los resultados.

Lo logré. Puedo usar ese contrato con la solidez del navegador en la Web. No puedo usar ese contrato con la solidez del navegador en la PC. Cuando uso la solidez del navegador en la PC, aparece un mensaje de error "TypeError: undefined no es un objeto (evaluando 'address.toString')". Tal vez, esta es la causa, pero no puedo resolverlo ahora.