Envío de éter de prueba en Testrpc

Estoy usando la versión 2.1 de Truffle y estoy tratando de enviar éter de prueba a mi contrato usando Testrpc. Ejecuto testrpc -u 0 -u 1
Y las cuentas muestran un saldo de 99351632199997083360 wei Estoy tratando de enviar Ether a una función que contiene el modificador pagadero y devuelve verdadero (sin código interno), y regresa con un salto de VM.

    function fund() payable returns (bool) {

    return true; 
}

Y este es el javascript de trufa llamando a la función

var projectBeingFunded = Project.at(projectToFund);
return projectBeingFunded.fund({from: account, amount:amountToGive}); 
}).then(function(txHash) { 
    waitForTransaction(); 
    return web3.eth.getTransactionReceipt(txHash); 
  }).then(function(receipt) { 
        console.log("transaction receipt");
        console.log(receipt.valueOf());
        setStatus("Project successfully funded");
      }).catch(function(e) { 
        console.log(e);
        setStatus("Project funding didn't work");

Respuestas (1)

Está enviando un argumento llamado monto, no un pago en Ether.

return projectBeingFunded.fund({from: account, amount:amountToGive});

Eso sería casi apropiado si la función del contrato leyera:

function fund(uint amount) returns(bool) {}

en realidad sería:

return projectBeingFunded.fund(amountToGive, {from: account});

Pero en realidad dice que no se esperan argumentos, y se espera ETH:

function fund() payable returns (bool) { ...

El argumento inesperado es un SALTO. Entonces, prueba esto:

return projectBeingFunded.fund({from: account, value: amountToGive});

Donde cantidad para dar es un uint en Wei y el remitente tiene esa cantidad de dinero, como supongo que es el caso.

Espero eso ayude.

Al mirar más de cerca, me di cuenta de que efectivamente hay un problema con la sintaxis original que causa el SALTO, pero no lo describí muy bien. Corregido para evitar que usted y otros se engañen.
¿Qué pasa si quiero llamar a esta función function fund() payable returns (bool)desde dentro de otro contrato en solidez?