la función de aprobación del token web3.js muestra nulo / 0 en Metamask

EDITAR La asignación está establecida, el problema es que la metamáscara no detecta el nombre del token ni la cantidad permitida.

En mi HTML/JS

amount = parseInt(web3.toWei(amount, "ether" ));

tokeninstance.approve(mainadd,amount,function(error, transactionHash){
if (!error){
    $("#allowanceresult").html("TX hash: "+transactionHash+"<br>")
    toastr.success("Approval successfull!")
}else{
    $("#allowanceresult").html("Error: "+error+"<br>")
    toastr.error("Approval failed!");
}

En la interfaz de solidez

function approve(address guy, uint wad) public returns (bool);

Hacer que la función de aprobación en remix funcione manualmente, estoy en ropsten, pero usando metamask + la función HTML/JS dapp allí arriba, obteniendo la entrada del usuario (mostrar correctamente en wei) e ingresando la dirección predefinida (formato correcto), metamask muéstrame esto , todavía en ropsten:

ingrese la descripción de la imagen aquí

¿Me estoy perdiendo de algo? Siempre es así. Hice mis funciones send() web3.js, uso el mismo archivo web3.js que siempre uso.

Al verificar en ropsten ambos eventos uno al lado del otro (desde remix y metamask), claramente se ingresan los mismos datos, la misma dirección y la misma cantidad de wei. :(

¿Obtuviste alguna solución?

Respuestas (1)

Al llamar a una función de contrato inteligente desde javascript, envíe el uintargumento como BigNumber . ¿Supongo que puedes intentarlo?

amount = new BigNumber(web3.toWei(amount, "ether" ));

Sí, lo hice, el método de asignación está funcionando en la interfaz de usuario
Lo que no entiendo es que la metamáscara muestra un token/cantidad indefinida permitida
¿Puedes intentar hacer "Agregar token personalizado" en metamask?
Lo intenté, pero extrañamente desapareció cuando cerré y abrí la metamáscara. Lo volveré a intentar por la mañana, ¡tiene sentido que estos datos se usan al interactuar con el token y mostrar datos a metamask ui!