Solidity 错误:标识符未找到或不唯一(UserOperation)

问题描述 投票:0回答:1

我在与 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;
    }
}

提前谢谢您。

blockchain solidity cloud-foundry forge openzeppelin
1个回答
0
投票

您正在使用来自继承类之一的变量

UserOperation
。检查这些类,很可能您使用了
UserOperation
错误,或者它甚至不存在。

© www.soinside.com 2019 - 2024. All rights reserved.