Solidity
使用 web3.js 將乙太坊發送到智能聯繫人我是一個sk___米和噸一種米一種sķmetamask
這個功能:
web3.eth.sendTransaction({from:myaddress,to:toaddress, value:web3.toWei(1, "ether")}, function(err, transactionHash) { if (!err) console.log(transactionHash); });
當我為元遮罩返回設置智能合約地址時,完全可以將 ETH 從發送**
ethereum-acount-address
到ethereum-acount-address
**BUTtoaddress
Transaction Error. Exception thrown in contract code.
我的穩固契約是
pragma solidity ^0.4.17; contract mysmartContract{ function whitdrawETH() payable public { } function getContactEthBalance() constant returns(uint) { return this.balance; } }
為了使乙太坊可以接受智能合約,您需要實現回退功能:
function() public payable { }
直接接收 Ether(沒有函式呼叫,即使用 send 或 transfer)但沒有定義回退函式的合約會拋出異常,將 Ether 發回(這在 Solidity v0.4.0 之前是不同的)。所以如果你想讓你的合約接收乙太幣,你必須實現一個備份功能。
如果您想通過函式將乙太幣發送到您的智能合約
mysmartContract
,whitdrawETH()
您需要將此函式的 methodSignature 發送到數據欄位,如下所示:web3.eth.sendTransaction({ from: myaddress, to: toaddress, data: web3.eth.abi.encodeFunctionSignature('whitdrawETH()') value: web3.toWei(1, "ether") }