He implementado un contrato para testnet que parece funcionar.
Tengo una función llamada contribute
que obtiene el éter de msg.value . La función está debajo y no toma ningún argumento.
Llamo contribute
desde JavaScript así:
var res = contracts['CrowdFunder'].contract.contribute();
¿Cómo especifico que se envíe ether al llamar contribute
?
Aquí está contribute
lo que espera msg.value
function contribute() public
{
contributions.push(
Contribution({
amount: msg.value,
contributor: msg.sender
})
);
totalRaised += msg.value;
}
Pasas un objeto con una propiedad llamada value
y la cantidad de wei.
Usando tu ejemplo, como:
contracts['CrowdFunder'].contract.contribute({value: web3.toWei(12, 'ether')});
Tenga en cuenta que en su ejemplo res
habrá un hash de transacción.