如果您发送价值,构造函数应该是可支付的
The constructor should be payable if you send value
我是这个智能合约世界的新手。在从不同来源阅读后,我了解到 solidity 还不成熟并且仍在发展中。
我正在 运行 将这段代码混音 IDE。除 function transfertocontracts(uint amount) public
外,一切正常。我想在这里做的是,我正在尝试将一些以太币转移到我的合同中,例如:10,然后使用此功能 function Transfer_Contract_Amount() public
我会将合同的所有金额转移到特定地址。
现在是什么问题?
问题是,当我 运行 这个 function transfertocontracts(uint amount) public
我得到这个错误:Note: The constructor should be payable if you send value. debug the transaction to get more information.
所以请任何人帮助我!!!
并提示我的做法是否正确?
谢谢!!
contract SLA{
address seller;
event DepositFunds(address from, uint amount);
constructor() payable public {
seller = msg.sender;
}
function transfertocontracts(uint amount) public{
address(this).transfer(amount);
}
function seePerson_Amount() public view returns(uint){
return seller.balance;
}
function seeContract_Amount() public view returns(uint){
return address(this).balance;
}
function Transfer_Contract_Amount() public{
seller.transfer(address(this).balance);
}
}
您只能使用您在与智能合约交互时设置的值属性来发送以太币。下面是工作代码
pragma solidity >=0.4.22 <0.6.0;
contract SLA{
address payable seller;
event DepositFunds(address from, uint amount);
constructor() payable public {
seller = msg.sender;
}
function transfertocontracts(uint amount) payable public{
}
function seePerson_Amount() public view returns(uint){
return seller.balance;
}
function seeContract_Amount() public view returns(uint){
return address(this).balance;
}
function Transfer_Contract_Amount() payable public{
seller.transfer(address(this).balance);
}
}
要检查,你可以 运行 在 remix 上,在左侧的 运行 选项卡上,你可以输入要发送的以太币的价值, 运行 transfertocontracts 函数进一步存储值,使用 msg.value.
是个好主意
我是这个智能合约世界的新手。在从不同来源阅读后,我了解到 solidity 还不成熟并且仍在发展中。
我正在 运行 将这段代码混音 IDE。除 function transfertocontracts(uint amount) public
外,一切正常。我想在这里做的是,我正在尝试将一些以太币转移到我的合同中,例如:10,然后使用此功能 function Transfer_Contract_Amount() public
我会将合同的所有金额转移到特定地址。
现在是什么问题?
问题是,当我 运行 这个 function transfertocontracts(uint amount) public
我得到这个错误:Note: The constructor should be payable if you send value. debug the transaction to get more information.
所以请任何人帮助我!!!
并提示我的做法是否正确?
谢谢!!
contract SLA{
address seller;
event DepositFunds(address from, uint amount);
constructor() payable public {
seller = msg.sender;
}
function transfertocontracts(uint amount) public{
address(this).transfer(amount);
}
function seePerson_Amount() public view returns(uint){
return seller.balance;
}
function seeContract_Amount() public view returns(uint){
return address(this).balance;
}
function Transfer_Contract_Amount() public{
seller.transfer(address(this).balance);
}
}
您只能使用您在与智能合约交互时设置的值属性来发送以太币。下面是工作代码
pragma solidity >=0.4.22 <0.6.0;
contract SLA{
address payable seller;
event DepositFunds(address from, uint amount);
constructor() payable public {
seller = msg.sender;
}
function transfertocontracts(uint amount) payable public{
}
function seePerson_Amount() public view returns(uint){
return seller.balance;
}
function seeContract_Amount() public view returns(uint){
return address(this).balance;
}
function Transfer_Contract_Amount() payable public{
seller.transfer(address(this).balance);
}
}
要检查,你可以 运行 在 remix 上,在左侧的 运行 选项卡上,你可以输入要发送的以太币的价值, 运行 transfertocontracts 函数进一步存储值,使用 msg.value.
是个好主意