Solidity
在 Testrpc 上發送測試乙太幣
我正在使用 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,而發件人有那麼多錢,我認為是這樣。
希望能幫助到你。