Esta función de solidez:
function findSupplierByName(string supplierName) public view returns (address id, string name) {
for (uint idx = 0; idx < supplierAddresses.length; idx++) {
address supplierAddress = supplierAddresses[idx];
var supplier = suppliers[supplierAddress];
if (keccak256(supplier.name) == keccak256(supplierName)) {
return (
supplier.id,
supplier.name
);
}
}
revert();
}
Es esto correcto ? ¿O debería simplemente eliminar el revert(); declaración, para que esta función devuelva un 0 para la dirección y un "" para el nombre?
Creo que querías revertir() si la función NO encuentra los datos. Para mantener la coherencia con lo que hace la función, haría que regresara (address(0), "")
y que la función de llamada eligiera qué hacer cuando obtiene un valor de dirección nulo.
Si se supone que la función SIEMPRE debe encontrar un resultado, es posible que desee cambiar revert()
a assert(supplier.id != address(0))
.
Stef Heyenrath