如何解决使用同一合约中的另一个函数在 Solidity 中调用一个公共函数
在一个合约中设置一个自动调用同一个合约的发布函数的函数,最简单的解决方案是什么?
基本结构是:
function send(uint256 value) public {
address sender = _msgSender();
}
我想在同一个合约中设置一个函数,当特定的钱包调用者有一定的金额值时,自动触发上述公共函数的调用。
解决方法
您可以使用 balance
类型的 address
属性检查发件人的余额。
function send(uint256 value) public {
address sender = _msgSender();
// this checks the sender's balance
if (sender.balance >= 1 ether) {
publish();
}
}
function publish() public {
}
如果您想检查他们在执行您的函数的交易中发送了多少,您可以使用全局变量 msg.value
。
此外,为了接受非零值,您需要使函数payable
。
function send(uint256 value) public payable { // mind the `payable` keyword
address sender = _msgSender();
// this checks the value of this transaction
if (msg.value >= 1 ether) {
publish();
}
}
function publish() public {
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。