¿Hay alguna forma de desactivar una advertencia en el código de solidez? [duplicar]

Estoy escribiendo pruebas unitarias para algunos contratos y en algunas de las pruebas estoy generando una advertencia a propósito y solcmostraré esta advertencia al compilar.

¿Hay alguna manera de deshabilitar las advertencias solccon el propósito de una prueba?

Algo equivalente a MSVC++

#pragma warning(push)
#pragma warning(disable : 44444)
// CODE
#pragma warning(pop)
Creo que puede seleccionar la versión de actualización del compilador pragma ... eliminar la constante y poner view.0.4.18
Solc, que yo sepa, solo compila el código. No se ocupa de la suma de comprobación de direcciones.
Parece que la dirección provista no coincide con la suma de verificación. El error te lo dice todo.
dirección constante a = "0x0123456789abcDEF0123456789abCDef01234568"; prueba esto..
De acuerdo con la ayuda de la línea de comandos de solc, no. Tal vez pueda "suprimirlo" reemplazando el addresscon un uint256, y luego reemplazando cualquier otra aparición de acon address(a).
@goodvibration Sí, lo sé, es malo a propósito y sé cómo solucionarlo en particular. Pero la pregunta es cómo deshabilitar una advertencia arbitraria para ejecutar pruebas automatizadas.
No recomendaría deshabilitar la advertencia para el código de solidez. Existen por una razón que debe tener en cuenta.
Abrir un problema en su repositorio y solicitar esta función podría ser un buen comienzo, son bastante abiertos y en realidad buscan mucho los comentarios de los usuarios.
Nunca lo he informado porque, en mi opinión, es una característica mala para la mayoría de los usuarios y es probable que los implementadores de bibliotecas malos la utilicen de manera incorrecta.

Respuestas (2)

A partir del 24/05/2018, no hay forma de desactivar de forma nativa las advertencias que solcemite el compilador. Sin embargo , existe una manera de eludir esas advertencias mediante la creación de un contenedor.

Simplemente cree una aplicación Node.JS que use internamente el solcjscomplemento, que es un puerto de solcNode, para compilar sus .solcontratos inteligentes locales y filtrar la salida del complemento.

Este es, de hecho, un enfoque muy poco ortodoxo y , en general, se deben evitar las advertencias de silenciamiento .

Es una prueba unitaria, falla y detecto esa situación y reporto como tal. Me gustaría deshabilitarlo solo para ese caso por razones estéticas. Nunca lo informé porque creo que es una mala función para la mayoría de los usuarios.

También puede usar solidity-cli, que deshabilita las advertencias de forma predeterminada.

Quiero deshabilitar una sola advertencia, no todas las advertencias.