我如何调用具有多个帐户的功能?
How I call a function with multi accounts?
我创建了一个智能合约,它应该在被两个所有者调用后执行一个函数,当且仅当两个所有者都调用函数 X 时,该函数才会执行。这就像一个多重签名类型。我的代码在下面,但它仍然无法运行。合约应在两个所有者调用后向钱包帐户发送 1 个以太币。拜托,任何人都可以帮助我。提前致谢。
`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;
}
}
`
在下面的这段代码中,首先您需要从您的帐户中存入一些以太币以实现存款功能。然后就可以调用sign and reward函数了
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;
}
}
我创建了一个智能合约,它应该在被两个所有者调用后执行一个函数,当且仅当两个所有者都调用函数 X 时,该函数才会执行。这就像一个多重签名类型。我的代码在下面,但它仍然无法运行。合约应在两个所有者调用后向钱包帐户发送 1 个以太币。拜托,任何人都可以帮助我。提前致谢。
`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;
}
}
`
在下面的这段代码中,首先您需要从您的帐户中存入一些以太币以实现存款功能。然后就可以调用sign and reward函数了
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;
}
}