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/

AWS Security LIVE!

Join us for AWS Security LIVE!

Discover the future of cloud security. Tune in live for trends, tips, and solutions from AWS and AWS Partners.

Learn More

Top comments (0)

Billboard image

The Next Generation Developer Platform

Coherence is the first Platform-as-a-Service you can control. Unlike "black-box" platforms that are opinionated about the infra you can deploy, Coherence is powered by CNC, the open-source IaC framework, which offers limitless customization.

Learn more