Solidity

在 Testrpc 上發送測試乙太幣

  • February 21, 2017

我正在使用 Truffle 2.1 版,我正在嘗試使用 Testrpc 將測試乙太發送到我的契約。我執行testrpc -u 0 -u 1

並且帳戶顯示余額為 99351632199997083360 wei 我正在嘗試將 Ether 發送到包含應付修飾符並返回 true(無內部程式碼)的函式,並且它正在返回 VM 跳轉。

   function fund() payable returns (bool) {

   return true; 
}

這是呼叫函式的松露javascript

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");

您正在送出一個名為金額的參數,而不是乙太坊付款。

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

如果合約功能如下:

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

實際上會是:

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

但它實際上說沒有參數是預期的,而 ETH預期的:

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

出乎意料的論點是 JUMP。所以,試試這個:

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

在 Wei 中,amountToGive 是一個 uint,而發件人有那麼多錢,我認為是這樣。

希望能幫助到你。

引用自:https://ethereum.stackexchange.com/questions/12333