Ethereum 如何调用具有多个帐户的函数?
我创建了一个智能合约,该合约应该在两个所有者调用函数后执行函数,如果且仅当两个所有者都调用函数X,则执行该函数。它就像多重签名类型。我的代码如下所示,但仍然无法运行。合同应在两位所有者呼叫后向钱包账户发送1个以太。求求你,任何人都可以帮我。提前谢谢Ethereum 如何调用具有多个帐户的函数?,ethereum,solidity,smartcontracts,Ethereum,Solidity,Smartcontracts,我创建了一个智能合约,该合约应该在两个所有者调用函数后执行函数,如果且仅当两个所有者都调用函数X,则执行该函数。它就像多重签名类型。我的代码如下所示,但仍然无法运行。合同应在两位所有者呼叫后向钱包账户发送1个以太。求求你,任何人都可以帮我。提前谢谢 `pragma solidity ^0.4.25; contract MyContract { address Owner1; address Owner2; address Wallet; mapping(address
`pragma solidity ^0.4.25;
contract MyContract {
address Owner1;
address Owner2;
address Wallet;
mapping(address => bool) signed;
mapping(address => uint) balances;
constructor() public payable {
Owner1 = 0xC20201d915458EF540aDe6068dFe2777E8fa733c;
Owner2 = 0x54201A09ACff6D2A60DcdF8896AFf308FDDC160C;
Wallet = 0x30E09Fa68430Def6978ED1a3E8f5ed473A04024c;
}
function Sign() public {
require (msg.sender == Owner1 || msg.sender == Owner2);
require (signed[msg.sender] == false);
signed[msg.sender] = true;
}
function Reward() public payable returns (string) {
require (signed[Owner1] == true && signed[Owner2] == true);
Wallet.transfer(1 ether);
signed[Owner1] = false;
signed[Oener2] = false;
}
}
`在下面的代码中,首先您需要从您的帐户向存款功能存入一些乙醚。然后你可以调用签名和奖励功能
pragma solidity ^0.4.25;
contract MyContract {
address Owner1;
address Owner2;
address Wallet;
mapping(address => bool) signed;
mapping(address => uint) balances;
constructor() public payable {
Owner1 = 0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB;
Owner2 = 0x583031D1113aD414F02576BD6afaBfb302140225;
Wallet = 0xdD870fA1b7C4700F2BD7f44238821C26f7392148;
}
function deposit() payable returns(bool success) {
balances[msg.sender] +=msg.value;
return true;
}
function Sign() public {
require (msg.sender == Owner1 || msg.sender == Owner2);
require (signed[msg.sender] == false);
signed[msg.sender] = true;
}
function Reward() public payable returns (string) {
require (signed[Owner1] == true && signed[Owner2] == true);
Wallet.transfer(1 ether);
signed[Owner1] = false;
signed[Owner2] = false;
}
}
你的逻辑不正确。如果我理解正确,您希望发送1以太到您的钱包帐户。这意味着您必须定义应从哪个帐户中扣除此1乙醚?是所有者1还是所有者2?例如,第一个所有者1来签署交易,然后所有者2来签署交易,第二个交易是由所有者2签署的,因此应从所有者2帐户中扣除此1以太,您应使用所有者2帐户将1以太转账到钱包帐户。我希望这有助于Shi Hsn,1乙醚将从合同余额中扣除。因此,合同中有一个以太余额,在两个所有者调用功能奖励后,这些以太余额将被发送到钱包地址。如果只有一个所有者调用此函数,则该函数不应执行。请给出答案,我发布了一个尝试。对我来说很好。两个所有者调用函数然后执行它对你来说很有效?是的,没错。。。。