Ejercicio 4
En este ejercicio haremos una variante respecto al ejercicio 3 pues verificaremos si quien envía la transacción para asignar una valor a la variable storedInfo
es el dueño (owner) del contrato. Solo el dueño puede modificar el valor de storedInfo
.
Pasos a seguir:
Programe el contrato en Remix,
Despliéguelo en una red de prueba de Ethereum como Sepolia,
Publique y verifique el contrato utilizando un explorador de bloques
Interactúe con el contrato a través del explorador de bloques y verifique si puede modificar el valor de la variable
storedInfo
.Intente modificar el valor de
storedInfo
conectándose con otra wallet.
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.19;
/// @title Concepts: Type address, msg.sender, owner, if
/// @author Solange Gueiros
contract Owner {
string private storedInfo;
address public owner;
// El constructor define como dueño a quien despliega el contrato.
constructor() {
owner = msg.sender;
}
/**
* La función setInfo verifica si quien envía la transacción
* es el dueño del contrato.
* Si es así, modifica el valor de la variable. Sino no hace nada.
*/
function setInfo(string memory myInfo) external {
if (msg.sender == owner) {
storedInfo = myInfo;
}
}
function getInfo() external view returns (string memory) {
return storedInfo;
}
}
¿Cómo modificaría la función setInfo
en el contrato anterior para utilizar la estructura de control require
en lugar de if
?
Respuesta:
function setInfo(string memory myInfo) external {
require(msg.sender == owner, "Only owner");
storedInfo = myInfo;
}
Last updated
Was this helpful?