Tengo una función que no lee ni modifica el estado del contrato:
contract C {
function add(uint a, uint b) public returns (uint) {
uint res = a + b;
return res;
}
}
¿Tiene sentido usar el modificador pure/view? Quiero decir, ¿la función usará menos gasolina después de eso o cuál es la razón para usarla?
Si puedes hacer tu función pure
, siempre debes hacerla pure
. De lo contrario, si puede hacer su función view
, siempre debe hacerla view
.
ventajas:
Si realiza su función pure
o view
, puede llamarla por ejemplo a través de web3.js sin necesidad de una transacción, sin costo de gasolina y sin demora de confirmación.
Actualmente, no reducirá el costo del gas cuando se ejecuta en el EVM. Sin embargo, en el futuro puede ayudar al compilador de Solidity a optimizar su programa.
Evitará que lea o escriba accidentalmente el estado del contrato en funciones en las que no desea hacerlo.
Desventajas:
(ninguno)
Badr Bellaj