Estoy tratando de configurar la comunicación entre un front-end web y un contrato Ethereum implementado (en Rinkeby). Estoy tratando de llamar a un método simple que actualiza un valor, que se parece a esto:
uint public value;
function someFunction(uint newValue) public {
value = newValue;
}
Y estoy llamando a la función así desde el cliente:
myContract.methods.someFunction(newValue).send({
from: myAccount,
});
Cuando aparece MetaMask, dice "FUNCIÓN DESCONOCIDA" sobre el valor que se enviará al cliente (también está haciendo esto cuando intento llamar a métodos que realmente requieren valor de éter). ¿Hay alguna manera de abordar el problema? Parece que esto probablemente sería angustiante para los usuarios si el éter real estuviera involucrado.
Para que MetaMask reconozca la firma de su función, debe registrarse en:
https://etherscan.io/address/0x44691B39d1a75dC4E0A0346CBB15E310e6ED1E86#writeContract
Aquí es donde MetaMask extrae datos para determinar la función correspondiente a un hash de función.
es decir, en su ejemplo, llame a la register
función del contrato anterior, pasando:
someFunction(uint256)
arisalexis
adam dossa
register
función desde cualquier lugar (por ejemplo, MEW, Mist) que le permita interactuar con contratos inteligentes. etherscan.io ahora también admite la escritura de contratos (consulte el enlace anterior) utilizando MetaMask. La cuenta no debería importar al registrar una función: todo lo que está haciendo es asociar el nombre de la función con su firma y registrar esta asociación en el contrato inteligente. Tendrías que pagar gasolina por la llamada pero nada más.TenNoX