DEV Community

Lino Mattos
Lino Mattos

Posted on

Cómo comparar strings en Solidity.

Cuando estás iniciando en Solidity en algún momento puede ser que necesites comparar Strings. Tan acostumbrado que estoy a javaScript, quería aplicar una manera similar en Solidity, resultando que la manera difiere bastante.

Los operadores de comparación (== y !=) no son compatibles con strings.
La solución es comparar los hashes de keccak256, los strings no pueden ser pasados directamente a keccak256, por lo que nos valdremos de abi.encodePacked() para que tomen el string a comparar.
Aquí tenemos un ejemplo:

function comparison(string memory _nombre){
  require(keccak256(abi.encodePacked(_nombre) == keccak256(abi.encodePacked('Carla'), "El nombre debe ser Carla.")
}
Enter fullscreen mode Exit fullscreen mode

PD: Estoy aprendiendo Solidity y es muy probable que halle mejores maneras de hacer comparaciones luego, especialmente por el costo que puedan tener. Dejo por aquí el enlace original de donde aprendí este método: https://soliditytips.com/articles/compare-strings-solidity/

Top comments (0)