我有以下功能
enum OptionType {Invalid, Put, Call}
function create(
uint256 period,
uint256 amount,
uint256 strike,
OptionType optionType
) {
....
}
Run Code Online (Sandbox Code Playgroud)
当我尝试使用此函数从另一个合约委托调用此函数时
address(contractAddress).delegatecall(abi.encodeWithSignature("create(uint256,uint256,uint256,uint8)",1,1,1,1));
Run Code Online (Sandbox Code Playgroud)
我收到错误
无法识别功能选择器并且没有后备功能
确保您的contractAddress内容有效并且使用正确的 Solidity 版本
当外部调用带有枚举的函数时,这似乎工作正常
pragma solidity ^0.8.0;
contract Test {
enum OptionType {Invalid, Put, Call}
function create(
uint256 period,
uint256 amount,
uint256 strike,
OptionType optionType
) public returns(bool) {
return true;
}
function delegatCallTest() public view returns(bytes memory) {
(bool success, bytes memory data) = address(this).staticcall(abi.encodeWithSignature("create(uint256,uint256,uint256,uint8)",1,1,1,1));
require(success);
return data;
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3414 次 |
| 最近记录: |