如何将eth从账户转移到合约?
How to transfer eth from an account to a contract?
我对 solidity 很陌生,当我使用 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;
}
}
如何将 ETH 从我的账户转移到智能合约?
如果你想实现一个 defi 合约(因为你的函数名称是 addStaker
),它接受来自 ERC20 代币的质押硬币,实现是不同的。但是如果你只是想从你的 metamask 账户发送钱给合约,你必须标记函数 payable
.
function pay() public payable {
// msg.value is the amount of wei sent with the message to the contract.
// with this you are setting a minimum amount
require(msg.value > .01 ether);
// add your logic
}
智能合约无法从地址提取 contract-specified 数量的 ETH。金额始终需要由发件人指定并签名。
合约只能验证发送的金额:
function addStaker() public payable {
require(msg.value == 1 ether);
}
如何选择金额取决于您使用的钱包软件。在 Remix 的情况下,“部署和 运行 交易”选项卡中有“价值”输入,您可以在其中指定随交易发送的 ETH 数量。
我对 solidity 很陌生,当我使用 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;
}
}
如何将 ETH 从我的账户转移到智能合约?
如果你想实现一个 defi 合约(因为你的函数名称是 addStaker
),它接受来自 ERC20 代币的质押硬币,实现是不同的。但是如果你只是想从你的 metamask 账户发送钱给合约,你必须标记函数 payable
.
function pay() public payable {
// msg.value is the amount of wei sent with the message to the contract.
// with this you are setting a minimum amount
require(msg.value > .01 ether);
// add your logic
}
智能合约无法从地址提取 contract-specified 数量的 ETH。金额始终需要由发件人指定并签名。
合约只能验证发送的金额:
function addStaker() public payable {
require(msg.value == 1 ether);
}
如何选择金额取决于您使用的钱包软件。在 Remix 的情况下,“部署和 运行 交易”选项卡中有“价值”输入,您可以在其中指定随交易发送的 ETH 数量。