【发布时间】:2021-03-06 04:58:31
【问题描述】:
我对编程完全陌生,我正在尝试编写一个可以接收资金并通过函数将资金转移到其他地址的智能合约。 在我的代码中,我有一个修饰符,它定义了一个可以调用提取/转移函数的所有者。我已经定义了 3 个地址变量,函数将 ETH 转移到其中。幸运的是,它可以按我的意愿工作。
pragma solidity ^0.7.0;
contract SubscriptionPayment {
// address variable defining the owner
address public owner = msg.sender
;
// modifier that restricts access to the owner of contract
modifier onlyOwner{
require(msg.sender == owner);
_;
}
// contract is able to handle ETH
receive() external payable{
}
// function to withdraw restricted to owner
function withdraw(uint _value) external onlyOwner {
msg.sender.transfer(_value)
;
}
// define address variables
address payable public account1Address = 0xF6D461F87BBce30C9D03Ff7a8602156f006E2367 ;
address payable public account2Address = 0xb6a76127EDf7E0B7dfcEd9aDE73Fa8780eC26592 ;
address payable public account3Address = 0x722b95CA56b1C884f574BAE4832f053197Ca3F58 ;
// function to pay all subscriptions
function paySubscriptions() external onlyOwner {
account1Address.transfer(1000000000000000000);
account2Address.transfer(1000000000000000000);
account3Address.transfer(2000000000000000000);
}
我的问题与 paySubscriptions 功能有关。有什么方法可以单独并按顺序执行到这 3 个地址的转移?当然,我可以只创建 3 个单独的函数来将 ETH 转移到每个地址,但这会给我 3 个单独的函数来调用。 是否可以编写代码,当调用一个函数时,从合约中调用另一个函数,当调用此函数时,从合约中调用另一个函数?如果是这样,我可以编写一个可以在外部调用的函数 1,并在调用/执行函数 1 后从合约中调用其他 2 个函数。
【问题讨论】:
标签: function ethereum solidity contract