如何将eth从账户转移到合约?

Ala*_*n K 5 blockchain ethereum solidity smartcontracts

我对可靠性很陌生,当我使用 remix 来测试我的合约时,我想将一些 eth 从我的帐户转移到智能合约。我已经尝试过这段代码,但它似乎从合约中转移了 eth,但没有从我的帐户中转移。

    function addStaker (uint _stakeAmount) public membership(master, msg.sender) returns(bool) {
    if(!members[msg.sender].alreadyExist) {
        Member memory newMember = Member(msg.sender, true);
        members[msg.sender] = newMember;
        bool sent = payable(address(this)).send(_stakeAmount);
        require(sent, "invalid balance");
        return true;
    } else {
        return false;
    }
}
Run Code Online (Sandbox Code Playgroud)

如何将 eth 从我的账户转移到智能合约?

Pet*_*jda 2

智能合约无法从地址中提取合约指定数量的 ETH。金额始终需要由发件人指定并签名。

合约只能验证发送的金额:

function addStaker() public payable {
    require(msg.value == 1 ether);
}
Run Code Online (Sandbox Code Playgroud)

如何选择金额取决于您使用的钱包软件。对于 Remix,“部署和运行交易”选项卡中有“值”输入,您可以在其中指定随交易发送的 ETH 数量。