MetaMask muestra "FUNCIÓN DESCONOCIDA" al llamar a la función de envío del método

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.

ingrese la descripción de la imagen aquí

Respuestas (1)

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 registerfunción del contrato anterior, pasando:
someFunction(uint256)

¿Puedes elaborar un poco porque no lo entiendo? ¿Desde dónde debo llamar a la función de registro? ¿De qué cuenta? ¿Desde la interfaz web?
Puede llamar a la registerfunció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.