Solidity.

Publicación

Comparte tu conocimiento.

0x914b...756b.
Feb 16, 2024
Discusión

Aclaración sobre los reembolsos de gas y comparación entre «requerir» y «revertir» en los contratos inteligentes

Hola a todos,

Estoy intentando profundizar mi comprensión de ciertas condiciones en el desarrollo de contratos inteligentes y tengo una pregunta sobre un escenario específico.

Supongamos que hay una condición «obligatoria» en un contrato inteligente que debe cumplirse. Si esta condición no se cumple, el contrato debe anular todos los cambios realizados y reembolsar el gas utilizado en la transacción. Mi pregunta es, ¿cómo funciona el proceso de reembolso de gas teniendo en cuenta que siempre se consume gas durante el cálculo?

Además, he oído hablar de la condición de «revertir», pero agradecería que me aclararan en qué se diferencia de la de «exigir» en el desarrollo de contratos inteligentes.

  • Smart Contract
  • Solidity
2
1
Cuota
Comentarios
.

Respuestas

1
Sergey Ilin.
Feb 16 2024, 15:27

requireHay 3 funciones para la validación en Solidity:revert,assert, y.

Requerido

  • Se usa al principio de una función
  • Valida contra entradas ilegales
  • Verifica las condiciones del estado antes de la ejecución
  • Reembolsa el gas sobrante

Ejemplo:

require(msg.sender == owner, "Only. owner can execute this action");

Revertir

  • Idéntico al requerido
  • Útil para compuertas de flujo lógicas más complejas (es decir, bloques complicados de tipo «si es entonces»)
  • Reembolsa el gas sobrante

Ejemplo:

revert("Something funky has occured");

Afirmar

  • Se usa al final de una función
  • Valida algo que es imposible
  • Es fundamental para las herramientas de análisis de código estático
  • No reembolsa la gasolina sobrante

Ejemplo:

assert(num >= 0);

Tenga en cuenta esto requirey revertreembolse solo la gasolina restante. Se consumirá cualquier gas usado antes de esa declaración. Ambas funciones utilizan el mismo código de operación REVERT desde el principio.

assertes diferente porque no reembolsa el gas y utiliza todo el gas disponible para la transacción. Se espera que se utilice con menos frecuencia y se debe utilizar para comprobar las condiciones que son anormales y que no se espera que se produzcan.

1
Comentarios
.

Sabes la respuesta?

Inicie sesión y compártalo.

Usamos cookies para asegurarnos de que obtenga la mejor experiencia en nuestro sitio web.
Más información