[英]How to transfer ether from sender account to a given account with specific value parameter — Smart Contract
我正在編寫一份合同,我想將資金轉移到傳遞給合同中函數的帳戶地址。 我采用三個參數 from、to 和 value。 另外,我添加了一個屏幕截圖以更好地理解。 錯誤截圖
contract Transaction{
using SafeMath for uint256;
mapping(address => uint256) balances;
event Transfer(address buyer, address seller,uint value);
function _transfer(address _from, address payable _to, uint256 _value) internal {
require(balances[_from] >= _value, "Insufficient balance");
balances[_from] = balances[_from].sub(_value);
balances[_to] = balances[_to].add(_value);
emit Transfer(_from, _to, _value);
_to.transfer(_value);
}
function transfer(address _from,address payable _to, uint256 _value) external payable returns (bool) {
_transfer(_from, _to, _value);
return true;
}
}
錯誤:
交易到交易。 傳輸錯誤:VM 錯誤:還原。
revert 事務已恢復到初始狀態。 合同規定的原因:“余額不足”。 調試事務以獲取更多信息。
請幫助我哪里錯了?
對於轉賬,您只需要接收地址,發件人地址是 msg.sender,值是 msg.value 應該在 Gas Limit 字段下的 value 字段中提及,正確的功能如下:
function transfer(address payable _to) external payable returns (bool) {
_to.transfer( msg.value);
return true;
}
PS:如果想要創建 Token ,你應該啟動合約的總供應量,最好遵循 ERC20 標准
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.