4. Parámetros de estado (view, pure)
Usando funciones podemos almacenar, leer o modificar datos en la cadena de bloques. Cada tipo de función requerirá un tipo de llamada diferente y en consecuencia un costo diferente.
# Por Defecto
Si no se pasa ninguna palabra-clave de definición de estado, esa función tendrá todos los accesos, podrá devolver, escribir, o alterar datos existentes.
function verEdad() external returns(uint){
edad = 100;
return edad;
}
El minero ejecutará esta función en modo transacción, por lo que incluso aunque solo lea datos, será cobrada una tarifa de minería.
# View
El parámetro view se usa para funciones que no cambian los datos o el estado del contrato en la cadena de bloques. Todo sigue igual y solo leerá los datos.
uint edad = 24;
function verEdad() external view returns(uint){
return edad;
}
Esta función es ejecutada por el minero en modo call, lo que implica en no tener costos de transacción.
# Pure
Es uno de los parámetros más restrictivos ya que no podrá cambiar los datos, el estado del contrato o incluso leer datos de variables.
function calculaEdad(uint numero) external pure returns(uint){
return numero + numero;
}
Es muy utilizado para realizar cálculos que dependen de la entrada de parámetros en la función y también se ejecuta en modo call, haciendo así su ejecución sin costo de gas.