首页 > 解决方案 > 将以太币从一个账户发送到另一个账户

问题描述

我正在使用以下代码将以太币从一个帐户转移到另一个帐户。

我是从所有者的帐户中调用的。

但是我的以太币会从所有者那里扣除,然后转到合约地址而不是收款人/收款人账户。

 function PayCredit(address payable payee, uint money, uint invoiceNum) public payable{
        require(msg.sender==owner, "only owner can invoke it");
        payee.transfer(address(this).balance);
        claims[payee][invoiceNum].isPayed = true;
    }


标签: blockchainethereumsolidity

解决方案


您正在将您的以太币发送到合约地址,更改address(this)address.

我建议您将以太币发送到其他帐户的良好做法。Solidity 交易支持值作为参数,这是发送以太(WEI)到其他账户的好地方。下面的代码片段会将 12 WEI 发送到其他帐户。

pragma solidity >=0.4.22 <0.6.0;

contract AB {
uint256 num1;
address owner;
constructor() public{
    owner = msg.sender;
}

function sendBal(address payable receiver) payable external onlyOwner {
    uint256 amount = msg.value;
    receiver.transfer(amount);  
}

说明如何调用 sendBal 函数


推荐阅读