簡體   English   中英

如何將以太幣從發件人帳戶轉移到具有特定值參數的給定帳戶 — 智能合約

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM