我在与 UserOperation 类型相关的 Solidity 代码中遇到编译错误。我正在使用帐户抽象库中的 BaseAccount 合约并尝试实现 _validateSignature 函数。但是,编译器会抛出错误,指出“标识符未找到或不唯一(UserOperation)”。
Error (7920): Identifier not found or not unique.
--> src/email-account/EmailAccount.sol:230:9:
|
230 | UserOperation calldata userOp,
| ^^^^^^^^^^^^^
以下是相关代码片段:
import "@openzeppelin/contracts/utils/cryptography/ECDSA.sol";
import "@openzeppelin/contracts/proxy/utils/Initializable.sol";
import "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";
import "account-abstraction/core/BaseAccount.sol";
import "account-abstraction/core/Helpers.sol";
import "../callback/TokenCallbackHandler.sol";
import {Verifier} from "./Verifier.sol";
import "../utils/StringUtils.sol";
contract EmailAccount is
BaseAccount,
TokenCallbackHandler,
UUPSUpgradeable,
Initializable
{
/// implement template method of BaseAccount
function _validateSignature(
UserOperation calldata userOp,
bytes32 userOpHash
) internal virtual override returns (uint256 validationData) {
bytes32 hash = userOpHash.toEthSignedMessageHash();
if (owner != hash.recover(userOp.signature))
return SIG_VALIDATION_FAILED;
return 0;
}
}
提前谢谢您。
您正在使用来自继承类之一的变量
UserOperation
。检查这些类,很可能您使用了 UserOperation
错误,或者它甚至不存在。