我有一个不需要支付的函数来提出建议。它有一个名为isSubmitFeePaid的修饰符。修饰符调用应付款函数。我在写剧本来求婚。但问题是,当我尝试调用FundProject__NotEnoughPayment()时,它会使用我没有发送给eth的revert ()。但是我不能,因为它是不支付的。因为它有应付修饰符,所以我不得不寄出一些eth。我无法支付目的函数。它的OpenZeppelin(治理)功能它的压倒和不喜欢支付。我能解决这个问题吗?
modifier isSubmitFeePaid() {
paySubmitFee();
_;
}
function paySubmitFee() public payable {
if (msg.value < enteranceFee) {
revert FundProject__NotEnoughPayment();
}
projectOwners = payable(msg.sender);
}
function propose(
address[] memory targets,
uint256[] memory values,
bytes[] memory calldatas,
string memory description
) public override(Governor, IGovernor) isSubmitFeePaid returns (uint256) {
return super.propose(targets, values, calldatas, description);
}发布于 2022-11-08 15:19:48
简单的技巧是创建另一个调用提议方法的方法。您可以使这个包装器成为一个可支付的方法,并将isSubmitFeePaid修饰符附加到它上。
https://ethereum.stackexchange.com/questions/139023
复制相似问题