El caso de prueba de token de transferencia de solidez no funciona bien.

Estoy probando el contrato inteligente cuando intento transferir el token usando https://remix.ethereum.org . Eso estaba funcionando bien. Pero ahora quiero escribir su caso de prueba, pero eso no funciona bien y no transfiere los tokens. Código:

 it('should properly [transfer] token', async function() {
    let recipient = "0xe0f5206bbd039e7b0592d8918820024e2a7437b9";
    let tokenWei = 1000000;
    let status = await contract.methods.transfer(recipient, tokenWei).call();
    console.log(status);

    let ownerBalance = await contract.methods.balanceOf(owner).call();
    let recipientBalance = await contract.methods.balanceOf("0xe0f5206bbd039e7b0592d8918820024e2a7437b9").call();
    console.log("Balance:"+ownerBalance +'----'+recipientBalance);
  });

La salida es así.

status = true
Balance:1705243055----100000000

Estos saldos son exactamente los mismos que antes, lo que significa que no se deducen de la cuenta del propietario ni se agregan a la cuenta del destinatario.

Cualquier orientación/ayuda será apreciada.

Gracias

Wie sentet man mit terminal? No instalar senden wie?
Hola y bienvenido a Ethereum StackExchange. Habla inglés para que los usuarios puedan entenderte.

Respuestas (1)

Debe usar enviar en lugar de llamar, ya que está cambiando el estado.

contract.methods.transfer(destinatario, tokenWei).send({from: '0x123...'})
Gracias, los saldos se muestran correctamente como 1704243055-101000000 Pero cuando probé otro caso de prueba a continuación del caso de prueba que mostrará nuevamente el saldo inicial asignado en la cuenta del propietario Codifique ('Saldo del propietario', función asíncrona() { dejar Saldo = esperar contract.methods.balanceOf(propietario).call(); Balance = Balance.toString(); console.log(Balance); }) La salida debería ser: 1704243055 Pero mostrando: 1705243055 Así que mi pregunta es si hay algún problema de alcance por qué balance ¿Se muestra nuevamente como se asignó antes en un nuevo caso de prueba o necesito escribir un caso de prueba como mencioné en la pregunta?
suena extraño. No tengo una respuesta sobre esto, debería funcionar correctamente. estas usando ganache-cli?
Sí, estoy usando ganache-cli
¿Tienes un ejemplo de casos de prueba con código? Por favor proporcione.