diff --git a/.changeset/lazy-seals-cover.md b/.changeset/lazy-seals-cover.md new file mode 100644 index 000000000..872202d6a --- /dev/null +++ b/.changeset/lazy-seals-cover.md @@ -0,0 +1,10 @@ +--- +'@openzeppelin/wizard': minor +'@openzeppelin/wizard-common': patch +'@openzeppelin/contracts-mcp': minor +--- + +Update `@openzeppelin/contracts` and `@openzeppelin/contracts-upgradeable` dependencies to 5.5.0 +- **Breaking changes**: + - Solidity account signer: `ERC7702` option is renamed as `EIP7702`. Imported contract `SignerERC7702` is renamed as `SignerEIP7702`. + - Solidity upgradeable contracts: `Initializable` and `UUPSUpgradeable` are imported from `@openzeppelin/contracts` instead of `@openzeppelin/contracts-upgradeable`. \ No newline at end of file diff --git a/packages/common/src/ai/descriptions/solidity.ts b/packages/common/src/ai/descriptions/solidity.ts index 05f15b74f..8b8cdd15e 100644 --- a/packages/common/src/ai/descriptions/solidity.ts +++ b/packages/common/src/ai/descriptions/solidity.ts @@ -68,7 +68,7 @@ export const solidityAccountDescriptions = { 'Whether to implement the `onERC1155Received` function to allow the account to receive ERC1155 tokens.', signer: `Defines the signature verification algorithm used by the account to verify user operations. Options: - ECDSA: Standard Ethereum signature validation using secp256k1, validates signatures against a specified owner address - - ERC7702: Special ECDSA validation using account's own address as signer, enables EOAs to delegate execution rights + - EIP7702: Special ECDSA validation using account's own address as signer, enables EOAs to delegate execution rights - P256: NIST P-256 curve (secp256r1) validation for integration with Passkeys and HSMs - RSA: RSA PKCS#1 v1.5 signature validation (RFC8017) for PKI systems and HSMs - Multisig: ERC-7913 multisignature requiring minimum number of signatures from authorized signers diff --git a/packages/core/solidity/package.json b/packages/core/solidity/package.json index b9a71571d..82473dfd8 100644 --- a/packages/core/solidity/package.json +++ b/packages/core/solidity/package.json @@ -26,8 +26,8 @@ }, "devDependencies": { "@openzeppelin/community-contracts": "git+https://github.com/OpenZeppelin/openzeppelin-community-contracts.git#b0ddd27", - "@openzeppelin/contracts": "^5.4.0", - "@openzeppelin/contracts-upgradeable": "^5.4.0", + "@openzeppelin/contracts": "^5.5.0", + "@openzeppelin/contracts-upgradeable": "^5.5.0", "@types/node": "^20.0.0", "@types/semver": "^7.5.7", "ava": "^6.0.0", @@ -39,4 +39,4 @@ "ts-node": "^10.4.0", "typescript": "^5.0.0" } -} \ No newline at end of file +} diff --git a/packages/core/solidity/src/account.test.ts b/packages/core/solidity/src/account.test.ts index 97611cee9..6e1d66de8 100644 --- a/packages/core/solidity/src/account.test.ts +++ b/packages/core/solidity/src/account.test.ts @@ -61,9 +61,9 @@ function format(upgradeable: false | 'uups' | 'transparent') { } } -for (const signer of [false, 'ERC7702', 'ECDSA', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const) { +for (const signer of [false, 'ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const) { for (const upgradeable of [false, 'uups', 'transparent'] as const) { - if (signer === 'ERC7702' && !!upgradeable) continue; + if (signer === 'EIP7702' && !!upgradeable) continue; let title = 'Account'; if (signer) { diff --git a/packages/core/solidity/src/account.test.ts.md b/packages/core/solidity/src/account.test.ts.md index 1ea211d9d..226805c38 100644 --- a/packages/core/solidity/src/account.test.ts.md +++ b/packages/core/solidity/src/account.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -36,7 +36,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -69,7 +69,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -96,7 +96,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -124,7 +124,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -152,7 +152,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -181,7 +181,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -218,7 +218,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -249,12 +249,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -264,7 +264,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -280,12 +280,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -304,7 +304,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -335,12 +335,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -350,7 +350,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -382,12 +382,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -397,24 +397,20 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccount is Initializable, Account, EIP712, ERC7739, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccount", "1") {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ @@ -439,23 +435,19 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountERC1271 is Initializable, Account, IERC1271, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ @@ -489,24 +481,20 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountERC7739 is Initializable, Account, EIP712, ERC7739, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccountERC7739", "1") {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ @@ -531,25 +519,21 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountERC721Holder is Initializable, Account, EIP712, ERC7739, ERC721Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccountERC721Holder", "1") {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ @@ -574,25 +558,21 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountERC1155Holder is Initializable, Account, EIP712, ERC7739, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccountERC1155Holder", "1") {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ @@ -617,7 +597,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -625,18 +605,14 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccountERC721HolderERC1155Holder", "1") {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ @@ -661,25 +637,21 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, ERC7821, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("MyAccount", "1") {␊ _disableInitializers();␊ }␊ - ␊ - function initialize() public initializer {␊ - __UUPSUpgradeable_init();␊ - }␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ internal␊ @@ -713,16 +685,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -735,7 +707,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __AccountERC7579_init();␊ - __UUPSUpgradeable_init();␊ ␊ require(moduleTypeId == MODULE_TYPE_VALIDATOR || moduleTypeId == MODULE_TYPE_EXECUTOR);␊ _installModule(moduleTypeId, module, initData);␊ @@ -761,12 +732,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -776,15 +747,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -797,7 +768,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __AccountERC7579_init();␊ - __UUPSUpgradeable_init();␊ ␊ require(moduleTypeId == MODULE_TYPE_VALIDATOR || moduleTypeId == MODULE_TYPE_EXECUTOR);␊ _installModule(moduleTypeId, module, initData);␊ @@ -811,12 +781,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -835,16 +805,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -857,7 +827,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __AccountERC7579_init();␊ - __UUPSUpgradeable_init();␊ ␊ require(moduleTypeId == MODULE_TYPE_VALIDATOR || moduleTypeId == MODULE_TYPE_EXECUTOR);␊ _installModule(moduleTypeId, module, initData);␊ @@ -883,12 +852,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -898,7 +867,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -906,9 +875,9 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -921,7 +890,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __AccountERC7579Hooked_init();␊ - __UUPSUpgradeable_init();␊ ␊ require(moduleTypeId == MODULE_TYPE_VALIDATOR || moduleTypeId == MODULE_TYPE_EXECUTOR);␊ _installModule(moduleTypeId, module, initData);␊ @@ -947,12 +915,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -962,13 +930,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract CustomAccount is Initializable, Account, EIP712, ERC7739 {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -993,12 +961,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract CustomAccountERC1271 is Initializable, Account, IERC1271 {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1032,13 +1000,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract CustomAccountERC7739 is Initializable, Account, EIP712, ERC7739 {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1063,14 +1031,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract CustomAccountERC721Holder is Initializable, Account, EIP712, ERC7739, ERC721Holder {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1095,14 +1063,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract CustomAccountERC1155Holder is Initializable, Account, EIP712, ERC7739, ERC1155Holder {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1127,7 +1095,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1135,7 +1103,7 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract CustomAccountERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, ERC721Holder, ERC1155Holder {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1160,14 +1128,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, ERC7821 {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1201,14 +1169,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable {␊ @@ -1241,12 +1209,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -1256,13 +1224,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable {␊ @@ -1283,12 +1251,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -1307,14 +1275,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable {␊ @@ -1347,12 +1315,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` @@ -1362,7 +1330,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1370,7 +1338,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable {␊ @@ -1403,47 +1371,52 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ }␊ ` -## Account with SignerERC7702 named non-upgradeable +## Account with SignerECDSA named non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract CustomAccountWithSignerERC7702 is Account, EIP712, ERC7739, SignerERC7702 {␊ - constructor() EIP712("CustomAccount with SignerERC7702", "1") {}␊ + contract CustomAccountWithSignerECDSA is Account, EIP712, ERC7739, SignerECDSA {␊ + constructor(address signer)␊ + EIP712("CustomAccount with SignerECDSA", "1")␊ + SignerECDSA(signer)␊ + {}␊ }␊ ` -## Account with SignerERC7702 with ERC1271 non-upgradeable +## Account with SignerECDSA with ERC1271 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + ␊ + contract CustomAccountWithSignerECDSAERC1271 is Account, IERC1271, SignerECDSA {␊ + constructor(address signer) SignerECDSA(signer) {}␊ ␊ - contract CustomAccountWithSignerERC7702ERC1271 is Account, IERC1271, SignerERC7702 {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ @@ -1455,68 +1428,77 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerERC7702 with ERC7739 non-upgradeable +## Account with SignerECDSA with ERC7739 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract CustomAccountWithSignerERC7702ERC7739 is Account, EIP712, ERC7739, SignerERC7702 {␊ - constructor() EIP712("CustomAccount with SignerERC7702ERC7739", "1") {}␊ + contract CustomAccountWithSignerECDSAERC7739 is Account, EIP712, ERC7739, SignerECDSA {␊ + constructor(address signer)␊ + EIP712("CustomAccount with SignerECDSAERC7739", "1")␊ + SignerECDSA(signer)␊ + {}␊ }␊ ` -## Account with SignerERC7702 with ERC721Holder non-upgradeable +## Account with SignerECDSA with ERC721Holder non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract CustomAccountWithSignerERC7702ERC721Holder is Account, EIP712, ERC7739, SignerERC7702, ERC721Holder {␊ - constructor() EIP712("CustomAccount with SignerERC7702ERC721Holder", "1") {}␊ + contract CustomAccountWithSignerECDSAERC721Holder is Account, EIP712, ERC7739, SignerECDSA, ERC721Holder {␊ + constructor(address signer)␊ + EIP712("CustomAccount with SignerECDSAERC721Holder", "1")␊ + SignerECDSA(signer)␊ + {}␊ }␊ ` -## Account with SignerERC7702 with ERC1155Holder non-upgradeable +## Account with SignerECDSA with ERC1155Holder non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract CustomAccountWithSignerERC7702ERC1155Holder is Account, EIP712, ERC7739, SignerERC7702, ERC1155Holder {␊ - constructor() EIP712("CustomAccount with SignerERC7702ERC1155Holder", "1") {}␊ + contract CustomAccountWithSignerECDSAERC1155Holder is Account, EIP712, ERC7739, SignerECDSA, ERC1155Holder {␊ + constructor(address signer)␊ + EIP712("CustomAccount with SignerECDSAERC1155Holder", "1")␊ + SignerECDSA(signer)␊ + {}␊ }␊ ` -## Account with SignerERC7702 with ERC721Holder and ERC1155Holder non-upgradeable +## Account with SignerECDSA with ERC721Holder and ERC1155Holder non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1524,31 +1506,32 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract CustomAccountWithSignerERC7702ERC721HolderERC1155Holder is Account, EIP712, ERC7739, SignerERC7702, ERC721Holder, ERC1155Holder {␊ - constructor()␊ - EIP712("CustomAccount with SignerERC7702ERC721HolderERC1155Holder", "1")␊ + contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Account, EIP712, ERC7739, SignerECDSA, ERC721Holder, ERC1155Holder {␊ + constructor(address signer)␊ + EIP712("CustomAccount with SignerECDSAERC721HolderERC1155Holder", "1")␊ + SignerECDSA(signer)␊ {}␊ }␊ ` -## Account with SignerERC7702 with ERC7821 Execution non-upgradeable +## Account with SignerECDSA with ERC7821 Execution non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, SignerERC7702, ERC7821 {␊ - constructor() EIP712("MyAccount", "1") {}␊ + contract MyAccount is Account, EIP712, ERC7739, SignerECDSA, ERC7821 {␊ + constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ internal␊ @@ -1561,12 +1544,12 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerERC7702 with ERC7579 non-upgradeable +## Account with SignerECDSA with ERC7579 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1575,10 +1558,10 @@ Generated by [AVA](https://avajs.dev). import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerERC7702 {␊ - constructor() EIP712("MyAccount", "1") {}␊ + contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerECDSA {␊ + constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ @@ -1594,22 +1577,22 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerERC7702 is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerERC7702)␊ + // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ // to ensure the correct order of function resolution.␊ // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerERC7702, AbstractSigner, AccountERC7579)␊ + override(SignerECDSA, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -1617,12 +1600,12 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerERC7702 with ERC7579 with ERC1271 non-upgradeable +## Account with SignerECDSA with ERC7579 with ERC1271 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1630,17 +1613,19 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + ␊ + contract MyAccount is Account, IERC1271, AccountERC7579, SignerECDSA {␊ + constructor(address signer) SignerECDSA(signer) {}␊ ␊ - contract MyAccount is Account, IERC1271, AccountERC7579, SignerERC7702 {␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -1652,14 +1637,14 @@ Generated by [AVA](https://avajs.dev). return super.isValidSignature(hash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerERC7702 is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerERC7702)␊ + // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ // to ensure the correct order of function resolution.␊ // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerERC7702, AbstractSigner, AccountERC7579)␊ + override(SignerECDSA, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -1667,12 +1652,12 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerERC7702 with ERC7579 with ERC7739 non-upgradeable +## Account with SignerECDSA with ERC7579 with ERC7739 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1681,10 +1666,10 @@ Generated by [AVA](https://avajs.dev). import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerERC7702 {␊ - constructor() EIP712("MyAccount", "1") {}␊ + contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerECDSA {␊ + constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ @@ -1700,22 +1685,22 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerERC7702 is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerERC7702)␊ + // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ // to ensure the correct order of function resolution.␊ // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerERC7702, AbstractSigner, AccountERC7579)␊ + override(SignerECDSA, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -1723,12 +1708,12 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerERC7702 with ERC7579 hooks non-upgradeable +## Account with SignerECDSA with ERC7579 hooks non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1738,10 +1723,10 @@ Generated by [AVA](https://avajs.dev). import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol";␊ + import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, AccountERC7579Hooked, SignerERC7702 {␊ - constructor() EIP712("MyAccount", "1") {}␊ + contract MyAccount is Account, EIP712, ERC7739, AccountERC7579Hooked, SignerECDSA {␊ + constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ @@ -1757,22 +1742,22 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerERC7702 is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerERC7702)␊ + // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ // to ensure the correct order of function resolution.␊ // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerERC7702, AbstractSigner, AccountERC7579)␊ + override(SignerECDSA, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -1780,41 +1765,62 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA named non-upgradeable +## Account with SignerECDSA named upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSA is Account, EIP712, ERC7739, SignerECDSA {␊ - constructor(address signer)␊ - EIP712("CustomAccount with SignerECDSA", "1")␊ - SignerECDSA(signer)␊ + contract CustomAccountWithSignerECDSA is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("CustomAccount with SignerECDSA", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ {}␊ }␊ ` -## Account with SignerECDSA with ERC1271 non-upgradeable +## Account with SignerECDSA with ERC1271 upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC1271 is Account, IERC1271, SignerECDSA {␊ - constructor(address signer) SignerECDSA(signer) {}␊ + contract CustomAccountWithSignerECDSAERC1271 is Initializable, Account, IERC1271, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ @@ -1824,80 +1830,122 @@ Generated by [AVA](https://avajs.dev). {␊ return _rawSignatureValidation(hash, signature) ? IERC1271.isValidSignature.selector : bytes4(0xffffffff);␊ }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ + {}␊ }␊ ` -## Account with SignerECDSA with ERC7739 non-upgradeable +## Account with SignerECDSA with ERC7739 upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC7739 is Account, EIP712, ERC7739, SignerECDSA {␊ - constructor(address signer)␊ - EIP712("CustomAccount with SignerECDSAERC7739", "1")␊ - SignerECDSA(signer)␊ + contract CustomAccountWithSignerECDSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("CustomAccount with SignerECDSAERC7739", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ {}␊ }␊ ` -## Account with SignerECDSA with ERC721Holder non-upgradeable +## Account with SignerECDSA with ERC721Holder upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC721Holder is Account, EIP712, ERC7739, SignerECDSA, ERC721Holder {␊ - constructor(address signer)␊ - EIP712("CustomAccount with SignerECDSAERC721Holder", "1")␊ - SignerECDSA(signer)␊ + contract CustomAccountWithSignerECDSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("CustomAccount with SignerECDSAERC721Holder", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ {}␊ }␊ ` -## Account with SignerECDSA with ERC1155Holder non-upgradeable +## Account with SignerECDSA with ERC1155Holder upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC1155Holder is Account, EIP712, ERC7739, SignerECDSA, ERC1155Holder {␊ - constructor(address signer)␊ - EIP712("CustomAccount with SignerECDSAERC1155Holder", "1")␊ - SignerECDSA(signer)␊ + contract CustomAccountWithSignerECDSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC1155Holder, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("CustomAccount with SignerECDSAERC1155Holder", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ {}␊ }␊ ` -## Account with SignerECDSA with ERC721Holder and ERC1155Holder non-upgradeable +## Account with SignerECDSA with ERC721Holder and ERC1155Holder upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1905,32 +1953,55 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Account, EIP712, ERC7739, SignerECDSA, ERC721Holder, ERC1155Holder {␊ - constructor(address signer)␊ + contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor()␊ EIP712("CustomAccount with SignerECDSAERC721HolderERC1155Holder", "1")␊ - SignerECDSA(signer)␊ + {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ {}␊ }␊ ` -## Account with SignerECDSA with ERC7821 Execution non-upgradeable +## Account with SignerECDSA with ERC7821 Execution upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, SignerECDSA, ERC7821 {␊ - constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC7821, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("MyAccount", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __SignerECDSA_init(signer);␊ + }␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ internal␊ @@ -1940,58 +2011,80 @@ Generated by [AVA](https://avajs.dev). {␊ return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);␊ }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ + {}␊ }␊ ` -## Account with SignerECDSA with ERC7579 non-upgradeable +## Account with SignerECDSA with ERC7579 upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ + import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerECDSA {␊ - constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("MyAccount", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __AccountERC7579_init();␊ + __SignerECDSA_init(signer);␊ + }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(AccountERC7579, ERC7739)␊ + override(AccountERC7579Upgradeable, ERC7739)␊ returns (bytes4)␊ {␊ // ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).␊ // If the returned value is 0xffffffff, fallback to ERC-7579 validation.␊ bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ - return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;␊ + return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ + {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579)␊ + override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ + // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579 returns false for _rawSignatureValidation␊ + // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSA, AbstractSigner, AccountERC7579)␊ + override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -1999,51 +2092,67 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 with ERC1271 non-upgradeable +## Account with SignerECDSA with ERC7579 with ERC1271 upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ + import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Account, IERC1271, AccountERC7579, SignerECDSA {␊ - constructor(address signer) SignerECDSA(signer) {}␊ + contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __AccountERC7579_init();␊ + __SignerECDSA_init(signer);␊ + }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ + {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579)␊ + override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(IERC1271, AccountERC7579)␊ + override(IERC1271, AccountERC7579Upgradeable)␊ returns (bytes4)␊ {␊ return super.isValidSignature(hash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ + // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579 returns false for _rawSignatureValidation␊ + // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSA, AbstractSigner, AccountERC7579)␊ + override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -2051,55 +2160,71 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 with ERC7739 non-upgradeable +## Account with SignerECDSA with ERC7579 with ERC7739 upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ + import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerECDSA {␊ - constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("MyAccount", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __AccountERC7579_init();␊ + __SignerECDSA_init(signer);␊ + }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(AccountERC7579, ERC7739)␊ + override(AccountERC7579Upgradeable, ERC7739)␊ returns (bytes4)␊ {␊ // ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).␊ // If the returned value is 0xffffffff, fallback to ERC-7579 validation.␊ bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ - return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;␊ + return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ + {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579)␊ + override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ + // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579 returns false for _rawSignatureValidation␊ + // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSA, AbstractSigner, AccountERC7579)␊ + override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -2107,56 +2232,72 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 hooks non-upgradeable +## Account with SignerECDSA with ERC7579 hooks upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579Hooked.sol";␊ + import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ + import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol";␊ + import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Account, EIP712, ERC7739, AccountERC7579Hooked, SignerECDSA {␊ - constructor(address signer) EIP712("MyAccount", "1") SignerECDSA(signer) {}␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + constructor() EIP712("MyAccount", "1") {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address signer) public initializer {␊ + __AccountERC7579Hooked_init();␊ + __SignerECDSA_init(signer);␊ + }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(AccountERC7579, ERC7739)␊ + override(AccountERC7579Upgradeable, ERC7739)␊ returns (bytes4)␊ {␊ // ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).␊ // If the returned value is 0xffffffff, fallback to ERC-7579 validation.␊ bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ - return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;␊ + return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyEntryPointOrSelf␊ + {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579)␊ + override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSA is most derived than AccountERC7579␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerECDSA)␊ + // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579 returns false for _rawSignatureValidation␊ + // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSA, AbstractSigner, AccountERC7579)␊ + override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -2164,22 +2305,21 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA named upgradeable uups +## Account with SignerECDSA named upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSA is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract CustomAccountWithSignerECDSA is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccount with SignerECDSA", "1") {␊ _disableInitializers();␊ @@ -2187,32 +2327,24 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC1271 upgradeable uups +## Account with SignerECDSA with ERC1271 upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC1271 is Initializable, Account, IERC1271, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract CustomAccountWithSignerECDSAERC1271 is Initializable, Account, IERC1271, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() {␊ _disableInitializers();␊ @@ -2220,7 +2352,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2231,31 +2362,24 @@ Generated by [AVA](https://avajs.dev). {␊ return _rawSignatureValidation(hash, signature) ? IERC1271.isValidSignature.selector : bytes4(0xffffffff);␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC7739 upgradeable uups +## Account with SignerECDSA with ERC7739 upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract CustomAccountWithSignerECDSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccount with SignerECDSAERC7739", "1") {␊ _disableInitializers();␊ @@ -2263,34 +2387,26 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC721Holder upgradeable uups +## Account with SignerECDSA with ERC721Holder upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, UUPSUpgradeable {␊ + contract CustomAccountWithSignerECDSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccount with SignerECDSAERC721Holder", "1") {␊ _disableInitializers();␊ @@ -2298,34 +2414,26 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC1155Holder upgradeable uups +## Account with SignerECDSA with ERC1155Holder upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC1155Holder, UUPSUpgradeable {␊ + contract CustomAccountWithSignerECDSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC1155Holder {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("CustomAccount with SignerECDSAERC1155Holder", "1") {␊ _disableInitializers();␊ @@ -2333,23 +2441,16 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC721Holder and ERC1155Holder upgradeable uups +## Account with SignerECDSA with ERC721Holder and ERC1155Holder upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2357,11 +2458,10 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ + contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, ERC1155Holder {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor()␊ EIP712("CustomAccount with SignerECDSAERC721HolderERC1155Holder", "1")␊ @@ -2371,34 +2471,26 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC7821 Execution upgradeable uups +## Account with SignerECDSA with ERC7821 Execution upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC7821, UUPSUpgradeable {␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC7821 {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("MyAccount", "1") {␊ _disableInitializers();␊ @@ -2406,7 +2498,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ @@ -2417,21 +2508,15 @@ Generated by [AVA](https://avajs.dev). {␊ return caller == address(entryPoint()) || super._erc7821AuthorizedExecutor(caller, mode, executionData);␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ }␊ ` -## Account with SignerECDSA with ERC7579 upgradeable uups +## Account with SignerECDSA with ERC7579 upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2439,12 +2524,11 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("MyAccount", "1") {␊ _disableInitializers();␊ @@ -2453,7 +2537,6 @@ Generated by [AVA](https://avajs.dev). function initialize(address signer) public initializer {␊ __AccountERC7579_init();␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2467,21 +2550,15 @@ Generated by [AVA](https://avajs.dev). bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -2499,24 +2576,23 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 with ERC1271 upgradeable uups +## Account with SignerECDSA with ERC7579 with ERC1271 upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() {␊ _disableInitializers();␊ @@ -2525,23 +2601,16 @@ Generated by [AVA](https://avajs.dev). function initialize(address signer) public initializer {␊ __AccountERC7579_init();␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2568,12 +2637,12 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 with ERC7739 upgradeable uups +## Account with SignerECDSA with ERC7579 with ERC7739 upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2581,12 +2650,11 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("MyAccount", "1") {␊ _disableInitializers();␊ @@ -2595,7 +2663,6 @@ Generated by [AVA](https://avajs.dev). function initialize(address signer) public initializer {␊ __AccountERC7579_init();␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2609,21 +2676,15 @@ Generated by [AVA](https://avajs.dev). bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -2641,12 +2702,12 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 hooks upgradeable uups +## Account with SignerECDSA with ERC7579 hooks upgradeable transparent > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2655,12 +2716,11 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, SignerECDSAUpgradeable, UUPSUpgradeable {␊ + contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, SignerECDSAUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ constructor() EIP712("MyAccount", "1") {␊ _disableInitializers();␊ @@ -2669,7 +2729,6 @@ Generated by [AVA](https://avajs.dev). function initialize(address signer) public initializer {␊ __AccountERC7579Hooked_init();␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2683,21 +2742,15 @@ Generated by [AVA](https://avajs.dev). bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ }␊ - ␊ - function _authorizeUpgrade(address newImplementation)␊ - internal␊ - override␊ - onlyEntryPointOrSelf␊ - {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -2715,55 +2768,37 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA named upgradeable transparent +## Account with SignerEIP7702 named non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract CustomAccountWithSignerECDSA is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("CustomAccount with SignerECDSA", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + contract CustomAccountWithSignerEIP7702 is Account, EIP712, ERC7739, SignerEIP7702 {␊ + constructor() EIP712("CustomAccount with SignerEIP7702", "1") {}␊ }␊ ` -## Account with SignerECDSA with ERC1271 upgradeable transparent +## Account with SignerEIP7702 with ERC1271 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract CustomAccountWithSignerECDSAERC1271 is Initializable, Account, IERC1271, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() {␊ - _disableInitializers();␊ - }␊ - ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ + contract CustomAccountWithSignerEIP7702ERC1271 is Account, IERC1271, SignerEIP7702 {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ @@ -2775,92 +2810,68 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7739 upgradeable transparent +## Account with SignerEIP7702 with ERC7739 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract CustomAccountWithSignerECDSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("CustomAccount with SignerECDSAERC7739", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + contract CustomAccountWithSignerEIP7702ERC7739 is Account, EIP712, ERC7739, SignerEIP7702 {␊ + constructor() EIP712("CustomAccount with SignerEIP7702ERC7739", "1") {}␊ }␊ ` -## Account with SignerECDSA with ERC721Holder upgradeable transparent +## Account with SignerEIP7702 with ERC721Holder non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("CustomAccount with SignerECDSAERC721Holder", "1") {␊ - _disableInitializers();␊ - }␊ - ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + contract CustomAccountWithSignerEIP7702ERC721Holder is Account, EIP712, ERC7739, SignerEIP7702, ERC721Holder {␊ + constructor() EIP712("CustomAccount with SignerEIP7702ERC721Holder", "1") {}␊ }␊ ` -## Account with SignerECDSA with ERC1155Holder upgradeable transparent +## Account with SignerEIP7702 with ERC1155Holder non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract CustomAccountWithSignerECDSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC1155Holder {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("CustomAccount with SignerECDSAERC1155Holder", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + contract CustomAccountWithSignerEIP7702ERC1155Holder is Account, EIP712, ERC7739, SignerEIP7702, ERC1155Holder {␊ + constructor() EIP712("CustomAccount with SignerEIP7702ERC1155Holder", "1") {}␊ }␊ ` -## Account with SignerECDSA with ERC721Holder and ERC1155Holder upgradeable transparent +## Account with SignerEIP7702 with ERC721Holder and ERC1155Holder non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2868,47 +2879,31 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, ERC1155Holder {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ + contract CustomAccountWithSignerEIP7702ERC721HolderERC1155Holder is Account, EIP712, ERC7739, SignerEIP7702, ERC721Holder, ERC1155Holder {␊ constructor()␊ - EIP712("CustomAccount with SignerECDSAERC721HolderERC1155Holder", "1")␊ - {␊ - _disableInitializers();␊ - }␊ - ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + EIP712("CustomAccount with SignerEIP7702ERC721HolderERC1155Holder", "1")␊ + {}␊ }␊ ` -## Account with SignerECDSA with ERC7821 Execution upgradeable transparent +## Account with SignerEIP7702 with ERC7821 Execution non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC7821 {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("MyAccount", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __SignerECDSA_init(signer);␊ - }␊ + contract MyAccount is Account, EIP712, ERC7739, SignerEIP7702, ERC7821 {␊ + constructor() EIP712("MyAccount", "1") {}␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ internal␊ @@ -2921,64 +2916,55 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 upgradeable transparent +## Account with SignerEIP7702 with ERC7579 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ + import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("MyAccount", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __AccountERC7579_init();␊ - __SignerECDSA_init(signer);␊ - }␊ + contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerEIP7702 {␊ + constructor() EIP712("MyAccount", "1") {}␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(AccountERC7579Upgradeable, ERC7739)␊ + override(AccountERC7579, ERC7739)␊ returns (bytes4)␊ {␊ // ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).␊ // If the returned value is 0xffffffff, fallback to ERC-7579 validation.␊ bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ - return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ + return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579Upgradeable)␊ + override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ + // IMPORTANT: Make sure SignerEIP7702 is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerEIP7702)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ + // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ + override(SignerEIP7702, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -2986,60 +2972,49 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 with ERC1271 upgradeable transparent +## Account with SignerEIP7702 with ERC7579 with ERC1271 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ + import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() {␊ - _disableInitializers();␊ - }␊ - ␊ - function initialize(address signer) public initializer {␊ - __AccountERC7579_init();␊ - __SignerECDSA_init(signer);␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ + contract MyAccount is Account, IERC1271, AccountERC7579, SignerEIP7702 {␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579Upgradeable)␊ + override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(IERC1271, AccountERC7579Upgradeable)␊ + override(IERC1271, AccountERC7579)␊ returns (bytes4)␊ {␊ return super.isValidSignature(hash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ + // IMPORTANT: Make sure SignerEIP7702 is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerEIP7702)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ + // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ + override(SignerEIP7702, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -3047,64 +3022,55 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 with ERC7739 upgradeable transparent +## Account with SignerEIP7702 with ERC7579 with ERC7739 non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ + import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("MyAccount", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __AccountERC7579_init();␊ - __SignerECDSA_init(signer);␊ - }␊ + contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerEIP7702 {␊ + constructor() EIP712("MyAccount", "1") {}␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(AccountERC7579Upgradeable, ERC7739)␊ + override(AccountERC7579, ERC7739)␊ returns (bytes4)␊ {␊ // ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).␊ // If the returned value is 0xffffffff, fallback to ERC-7579 validation.␊ bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ - return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ + return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579Upgradeable)␊ + override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ + // IMPORTANT: Make sure SignerEIP7702 is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerEIP7702)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ + // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ + override(SignerEIP7702, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -3112,65 +3078,56 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## Account with SignerECDSA with ERC7579 hooks upgradeable transparent +## Account with SignerEIP7702 with ERC7579 hooks non-upgradeable > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ - import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ - import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ + import {AccountERC7579} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/contracts/account/extensions/draft-AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - ␊ - contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, SignerECDSAUpgradeable {␊ - /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ - constructor() EIP712("MyAccount", "1") {␊ - _disableInitializers();␊ - }␊ + import {SignerEIP7702} from "@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol";␊ ␊ - function initialize(address signer) public initializer {␊ - __AccountERC7579Hooked_init();␊ - __SignerECDSA_init(signer);␊ - }␊ + contract MyAccount is Account, EIP712, ERC7739, AccountERC7579Hooked, SignerEIP7702 {␊ + constructor() EIP712("MyAccount", "1") {}␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ public␊ view␊ - override(AccountERC7579Upgradeable, ERC7739)␊ + override(AccountERC7579, ERC7739)␊ returns (bytes4)␊ {␊ // ERC-7739 can return the ERC-1271 magic value, 0xffffffff (invalid) or 0x77390001 (detection).␊ // If the returned value is 0xffffffff, fallback to ERC-7579 validation.␊ bytes4 erc7739magic = ERC7739.isValidSignature(hash, signature);␊ - return erc7739magic == bytes4(0xffffffff) ? AccountERC7579Upgradeable.isValidSignature(hash, signature) : erc7739magic;␊ + return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;␊ }␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ - override(Account, AccountERC7579Upgradeable)␊ + override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ - // IMPORTANT: Make sure SignerECDSAUpgradeable is most derived than AccountERC7579Upgradeable␊ - // in the inheritance chain (i.e. contract ... is AccountERC7579Upgradeable, ..., SignerECDSAUpgradeable)␊ + // IMPORTANT: Make sure SignerEIP7702 is most derived than AccountERC7579␊ + // in the inheritance chain (i.e. contract ... is AccountERC7579, ..., SignerEIP7702)␊ // to ensure the correct order of function resolution.␊ - // AccountERC7579Upgradeable returns false for _rawSignatureValidation␊ + // AccountERC7579 returns false for _rawSignatureValidation␊ function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(SignerECDSAUpgradeable, AbstractSigner, AccountERC7579Upgradeable)␊ + override(SignerEIP7702, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -3183,7 +3140,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3204,7 +3161,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3230,7 +3187,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3251,7 +3208,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3273,7 +3230,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3295,7 +3252,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3318,7 +3275,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3349,7 +3306,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3380,12 +3337,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256 is most derived than AccountERC7579␊ @@ -3408,7 +3365,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3423,12 +3380,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -3460,7 +3417,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3491,12 +3448,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256 is most derived than AccountERC7579␊ @@ -3519,7 +3476,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3551,12 +3508,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256 is most derived than AccountERC7579␊ @@ -3579,15 +3536,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256 is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3597,7 +3554,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -3613,14 +3569,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC1271 is Initializable, Account, IERC1271, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3630,7 +3586,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -3655,15 +3610,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC7739 is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3673,7 +3628,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -3689,16 +3643,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC721Holder is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC721Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3708,7 +3662,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -3724,16 +3677,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3743,7 +3696,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -3759,7 +3711,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3767,9 +3719,9 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3781,7 +3733,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -3797,16 +3748,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC7821, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3816,7 +3767,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ @@ -3841,7 +3791,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3849,10 +3799,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3863,7 +3813,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __AccountERC7579_init();␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -3886,12 +3835,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256Upgradeable is most derived than AccountERC7579Upgradeable␊ @@ -3914,17 +3863,17 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -3935,7 +3884,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __AccountERC7579_init();␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -3946,12 +3894,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -3983,7 +3931,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3991,10 +3939,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -4005,7 +3953,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __AccountERC7579_init();␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -4028,12 +3975,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256Upgradeable is most derived than AccountERC7579Upgradeable␊ @@ -4056,7 +4003,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4065,10 +4012,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, SignerP256Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -4079,7 +4026,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes32 qx, bytes32 qy) public initializer {␊ __AccountERC7579Hooked_init();␊ __SignerP256_init(qx, qy);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -4102,12 +4048,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256Upgradeable is most derived than AccountERC7579Upgradeable␊ @@ -4130,13 +4076,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256 is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable {␊ @@ -4156,12 +4102,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC1271 is Initializable, Account, IERC1271, SignerP256Upgradeable {␊ @@ -4190,13 +4136,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC7739 is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable {␊ @@ -4216,14 +4162,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC721Holder is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC721Holder {␊ @@ -4243,14 +4189,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC1155Holder {␊ @@ -4270,7 +4216,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4278,7 +4224,7 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerP256ERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC721Holder, ERC1155Holder {␊ @@ -4300,14 +4246,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerP256Upgradeable, ERC7821 {␊ @@ -4336,7 +4282,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4344,7 +4290,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ @@ -4373,12 +4319,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256Upgradeable is most derived than AccountERC7579Upgradeable␊ @@ -4401,14 +4347,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ @@ -4425,12 +4371,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -4462,7 +4408,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4470,7 +4416,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ @@ -4499,12 +4445,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256Upgradeable is most derived than AccountERC7579Upgradeable␊ @@ -4527,7 +4473,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4536,7 +4482,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerP256Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerP256Upgradeable.sol";␊ ␊ @@ -4565,12 +4511,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerP256Upgradeable is most derived than AccountERC7579Upgradeable␊ @@ -4593,7 +4539,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4614,7 +4560,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4640,7 +4586,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4661,7 +4607,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4683,7 +4629,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4705,7 +4651,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4728,7 +4674,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4759,7 +4705,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4790,12 +4736,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSA is most derived than AccountERC7579␊ @@ -4818,7 +4764,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4833,12 +4779,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -4870,7 +4816,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4901,12 +4847,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSA is most derived than AccountERC7579␊ @@ -4929,7 +4875,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4961,12 +4907,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSA is most derived than AccountERC7579␊ @@ -4989,15 +4935,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSA is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5007,7 +4953,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -5023,14 +4968,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC1271 is Initializable, Account, IERC1271, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5040,7 +4985,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -5065,15 +5009,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5083,7 +5027,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -5099,16 +5042,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC721Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5118,7 +5061,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -5134,16 +5076,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5153,7 +5095,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -5169,7 +5110,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5177,9 +5118,9 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5191,7 +5132,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -5207,16 +5147,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC7821, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5226,7 +5166,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(bytes memory e, bytes memory n) public initializer {␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _erc7821AuthorizedExecutor(address caller, bytes32 mode, bytes calldata executionData)␊ @@ -5251,7 +5190,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5259,10 +5198,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5273,7 +5212,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes memory e, bytes memory n) public initializer {␊ __AccountERC7579_init();␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -5296,12 +5234,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -5324,17 +5262,17 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5345,7 +5283,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes memory e, bytes memory n) public initializer {␊ __AccountERC7579_init();␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -5356,12 +5293,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -5393,7 +5330,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5401,10 +5338,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5415,7 +5352,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes memory e, bytes memory n) public initializer {␊ __AccountERC7579_init();␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -5438,12 +5374,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -5466,7 +5402,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5475,10 +5411,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, SignerRSAUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -5489,7 +5425,6 @@ Generated by [AVA](https://avajs.dev). function initialize(bytes memory e, bytes memory n) public initializer {␊ __AccountERC7579Hooked_init();␊ __SignerRSA_init(e, n);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -5512,12 +5447,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -5540,13 +5475,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSA is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable {␊ @@ -5566,12 +5501,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC1271 is Initializable, Account, IERC1271, SignerRSAUpgradeable {␊ @@ -5600,13 +5535,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable {␊ @@ -5626,14 +5561,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC721Holder {␊ @@ -5653,14 +5588,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC1155Holder {␊ @@ -5680,7 +5615,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5688,7 +5623,7 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerRSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC721Holder, ERC1155Holder {␊ @@ -5710,14 +5645,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerRSAUpgradeable, ERC7821 {␊ @@ -5746,7 +5681,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5754,7 +5689,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ @@ -5783,12 +5718,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -5811,14 +5746,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ @@ -5835,12 +5770,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -5872,7 +5807,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5880,7 +5815,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ @@ -5909,12 +5844,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -5937,7 +5872,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5946,7 +5881,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ import {SignerRSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerRSAUpgradeable.sol";␊ ␊ @@ -5975,12 +5910,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerRSAUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -6003,7 +5938,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6036,7 +5971,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6076,7 +6011,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6109,7 +6044,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6143,7 +6078,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6177,7 +6112,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6212,7 +6147,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6255,7 +6190,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6298,12 +6233,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisig is most derived than AccountERC7579␊ @@ -6326,7 +6261,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6355,12 +6290,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -6392,7 +6327,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6435,12 +6370,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisig is most derived than AccountERC7579␊ @@ -6463,7 +6398,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6507,12 +6442,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisig is most derived than AccountERC7579␊ @@ -6535,15 +6470,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisig is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6556,7 +6491,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -6584,14 +6518,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC1271 is Initializable, Account, IERC1271, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6604,7 +6538,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -6641,15 +6574,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC7739 is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6662,7 +6595,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -6690,16 +6622,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC721Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC721Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6712,7 +6644,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -6740,16 +6671,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6762,7 +6693,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -6790,7 +6720,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6798,9 +6728,9 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6815,7 +6745,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -6843,16 +6772,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC7821, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6865,7 +6794,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -6902,7 +6830,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6910,10 +6838,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -6927,7 +6855,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579_init();␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -6962,12 +6889,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -6990,17 +6917,17 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -7014,7 +6941,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579_init();␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function addSigners(bytes[] memory signers) public onlyEntryPointOrSelf {␊ @@ -7037,12 +6963,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -7074,7 +7000,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7082,10 +7008,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -7099,7 +7025,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579_init();␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -7134,12 +7059,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -7162,7 +7087,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7171,10 +7096,10 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, MultiSignerERC7913Upgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -7188,7 +7113,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579Hooked_init();␊ __MultiSignerERC7913_init(signers, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -7223,12 +7147,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -7251,13 +7175,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisig is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable {␊ @@ -7292,12 +7216,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC1271 is Initializable, Account, IERC1271, MultiSignerERC7913Upgradeable {␊ @@ -7341,13 +7265,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC7739 is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable {␊ @@ -7382,14 +7306,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC721Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC721Holder {␊ @@ -7424,14 +7348,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC1155Holder {␊ @@ -7466,7 +7390,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7474,7 +7398,7 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC721Holder, ERC1155Holder {␊ @@ -7511,14 +7435,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Upgradeable, ERC7821 {␊ @@ -7562,7 +7486,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7570,7 +7494,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ @@ -7614,12 +7538,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -7642,14 +7566,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ @@ -7681,12 +7605,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -7718,7 +7642,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7726,7 +7650,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ @@ -7770,12 +7694,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -7798,7 +7722,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7807,7 +7731,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ @@ -7851,12 +7775,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -7879,7 +7803,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7919,7 +7843,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7966,7 +7890,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8006,7 +7930,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8047,7 +7971,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8088,7 +8012,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8130,7 +8054,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8180,7 +8104,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8231,12 +8155,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeighted is most derived than AccountERC7579␊ @@ -8259,7 +8183,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8296,12 +8220,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -8333,7 +8257,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8384,12 +8308,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeighted is most derived than AccountERC7579␊ @@ -8412,7 +8336,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8464,12 +8388,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeighted is most derived than AccountERC7579␊ @@ -8492,15 +8416,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeighted is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8513,7 +8437,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -8548,14 +8471,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC1271 is Initializable, Account, IERC1271, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8568,7 +8491,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -8612,15 +8534,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC7739 is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8635,7 +8557,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -8670,16 +8591,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC721Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC721Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8694,7 +8615,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -8729,16 +8649,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8753,7 +8673,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -8788,7 +8707,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8796,9 +8715,9 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8813,7 +8732,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -8848,16 +8766,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC7821, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8870,7 +8788,6 @@ Generated by [AVA](https://avajs.dev). initializer␊ {␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -8914,7 +8831,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8922,11 +8839,11 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -8940,7 +8857,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579_init();␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -8982,12 +8898,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeightedUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -9010,18 +8926,18 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579Upgradeable, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -9035,7 +8951,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579_init();␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setSignerWeights(bytes[] memory signers, uint64[] memory weights)␊ @@ -9065,12 +8980,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -9102,7 +9017,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9110,11 +9025,11 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Upgradeable, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -9128,7 +9043,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579_init();␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -9170,12 +9084,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeightedUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -9198,7 +9112,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9207,11 +9121,11 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579HookedUpgradeable, MultiSignerERC7913WeightedUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -9225,7 +9139,6 @@ Generated by [AVA](https://avajs.dev). {␊ __AccountERC7579Hooked_init();␊ __MultiSignerERC7913Weighted_init(signers, weights, threshold);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -9267,12 +9180,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeightedUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -9295,13 +9208,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeighted is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable {␊ @@ -9343,12 +9256,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC1271 is Initializable, Account, IERC1271, MultiSignerERC7913WeightedUpgradeable {␊ @@ -9399,13 +9312,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC7739 is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable {␊ @@ -9449,14 +9362,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC721Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC721Holder {␊ @@ -9500,14 +9413,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC1155Holder {␊ @@ -9551,7 +9464,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9559,7 +9472,7 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC721Holder, ERC1155Holder {␊ @@ -9603,14 +9516,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ import {ERC7821} from "@openzeppelin/contracts/account/extensions/draft-ERC7821.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913WeightedUpgradeable, ERC7821 {␊ @@ -9661,7 +9574,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9669,7 +9582,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ @@ -9721,12 +9634,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeightedUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -9749,14 +9662,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ @@ -9796,12 +9709,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -9833,7 +9746,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9841,7 +9754,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579Upgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579Upgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ @@ -9893,12 +9806,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeightedUpgradeable is most derived than AccountERC7579Upgradeable␊ @@ -9921,7 +9834,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9930,7 +9843,7 @@ Generated by [AVA](https://avajs.dev). import {AccountERC7579HookedUpgradeable} from "@openzeppelin/contracts-upgradeable/account/extensions/draft-AccountERC7579HookedUpgradeable.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {MultiSignerERC7913Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913Upgradeable.sol";␊ import {MultiSignerERC7913WeightedUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/MultiSignerERC7913WeightedUpgradeable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ @@ -9982,12 +9895,12 @@ Generated by [AVA](https://avajs.dev). ␊ // The following functions are overrides required by Solidity.␊ ␊ - function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash)␊ + function _validateUserOp(PackedUserOperation calldata userOp, bytes32 userOpHash, bytes calldata signature)␊ internal␊ override(Account, AccountERC7579Upgradeable)␊ returns (uint256)␊ {␊ - return super._validateUserOp(userOp, userOpHash);␊ + return super._validateUserOp(userOp, userOpHash, signature);␊ }␊ ␊ // IMPORTANT: Make sure SignerMultisigWeightedUpgradeable is most derived than AccountERC7579Upgradeable␊ diff --git a/packages/core/solidity/src/account.test.ts.snap b/packages/core/solidity/src/account.test.ts.snap index 8f9f873c2..be2118450 100644 Binary files a/packages/core/solidity/src/account.test.ts.snap and b/packages/core/solidity/src/account.test.ts.snap differ diff --git a/packages/core/solidity/src/account.ts b/packages/core/solidity/src/account.ts index 919fe86fc..9d6071fb8 100644 --- a/packages/core/solidity/src/account.ts +++ b/packages/core/solidity/src/account.ts @@ -286,6 +286,7 @@ const functions = { args: [ { name: 'userOp', type: 'PackedUserOperation calldata' }, { name: 'userOpHash', type: 'bytes32' }, + { name: 'signature', type: 'bytes calldata' }, ], returns: ['uint256'], }, diff --git a/packages/core/solidity/src/contract.test.ts.md b/packages/core/solidity/src/contract.test.ts.md index b3080a284..c921db7ec 100644 --- a/packages/core/solidity/src/contract.test.ts.md +++ b/packages/core/solidity/src/contract.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -21,7 +21,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Footec {␊ @@ -33,7 +33,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -47,7 +47,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -62,7 +62,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -77,7 +77,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -93,7 +93,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -105,7 +105,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -125,7 +125,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -149,7 +149,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -162,7 +162,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -177,7 +177,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -192,7 +192,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -209,7 +209,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -224,7 +224,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -240,7 +240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -253,7 +253,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -267,7 +267,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -280,7 +280,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -294,7 +294,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract FooBarBaz {␊ @@ -306,7 +306,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ /// @custom:security-contact security@example.com␊ diff --git a/packages/core/solidity/src/contract.test.ts.snap b/packages/core/solidity/src/contract.test.ts.snap index 80d963c79..5e0a7b9c3 100644 Binary files a/packages/core/solidity/src/contract.test.ts.snap and b/packages/core/solidity/src/contract.test.ts.snap differ diff --git a/packages/core/solidity/src/custom.test.ts.md b/packages/core/solidity/src/custom.test.ts.md index 7906d5648..4480540af 100644 --- a/packages/core/solidity/src/custom.test.ts.md +++ b/packages/core/solidity/src/custom.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -21,7 +21,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Contract {␊ @@ -33,7 +33,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -57,10 +57,10 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyContract is Initializable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -75,12 +75,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyContract is Initializable, OwnableUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -90,7 +90,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address initialOwner) public initializer {␊ __Ownable_init(initialOwner);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -106,7 +105,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -118,7 +117,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -133,7 +132,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -150,7 +149,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -165,12 +164,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyContract is Initializable, OwnableUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -180,7 +179,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address initialOwner) public initializer {␊ __Ownable_init(initialOwner);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ diff --git a/packages/core/solidity/src/custom.test.ts.snap b/packages/core/solidity/src/custom.test.ts.snap index 6e45868eb..ce0c71468 100644 Binary files a/packages/core/solidity/src/custom.test.ts.snap and b/packages/core/solidity/src/custom.test.ts.snap differ diff --git a/packages/core/solidity/src/environments/hardhat/package-lock.json b/packages/core/solidity/src/environments/hardhat/package-lock.json index 8fea47d86..1d1a067fa 100644 --- a/packages/core/solidity/src/environments/hardhat/package-lock.json +++ b/packages/core/solidity/src/environments/hardhat/package-lock.json @@ -10,8 +10,8 @@ "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "@openzeppelin/contracts": "^5.4.0", - "hardhat": "^2.16.1" + "@openzeppelin/contracts": "^5.5.0", + "hardhat": "^2.22.0" } }, "node_modules/@adraffy/ens-normalize": { @@ -1219,9 +1219,9 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.4.0.tgz", - "integrity": "sha512-eCYgWnLg6WO+X52I16TZt8uEjbtdkgLC0SUX/xnAksjjrQI4Xfn4iBRoI5j55dmlOhDv1Y7BoR3cU7e3WWhC6A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz", + "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==", "dev": true, "license": "MIT" }, @@ -2339,19 +2339,28 @@ } }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/ci-info": { @@ -3841,9 +3850,9 @@ } }, "node_modules/hardhat": { - "version": "2.26.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.26.3.tgz", - "integrity": "sha512-gBfjbxCCEaRgMCRgTpjo1CEoJwqNPhyGMMVHYZJxoQ3LLftp2erSVf8ZF6hTQC0r2wst4NcqNmLWqMnHg1quTw==", + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.26.5.tgz", + "integrity": "sha512-TvFKUPGRaoemeVpnKsXt5I+kVCNrzP2cLwyNUveu0JKf2Q0lzh6LTgVBsWyYPlXAwBzyUQ6fsL98UgyF/QdOfA==", "dev": true, "license": "MIT", "dependencies": { @@ -4073,6 +4082,22 @@ "@scure/base": "~1.1.0" } }, + "node_modules/hardhat/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/hardhat/node_modules/ethereum-cryptography": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", @@ -4111,6 +4136,20 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/hardhat/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/hardhat/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -5092,31 +5131,6 @@ "node": ">= 14.0.0" } }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -5151,19 +5165,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -5777,17 +5778,16 @@ } }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 14.18.0" + "dependencies": { + "picomatch": "^2.2.1" }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=8.10.0" } }, "node_modules/rechoir": { @@ -6898,14 +6898,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" diff --git a/packages/core/solidity/src/environments/hardhat/package.json b/packages/core/solidity/src/environments/hardhat/package.json index 625705c98..e8f6a2706 100644 --- a/packages/core/solidity/src/environments/hardhat/package.json +++ b/packages/core/solidity/src/environments/hardhat/package.json @@ -9,8 +9,8 @@ "author": "", "license": "ISC", "devDependencies": { - "@openzeppelin/contracts": "^5.4.0", "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "hardhat": "^2.16.1" + "@openzeppelin/contracts": "^5.5.0", + "hardhat": "^2.22.0" } -} +} \ No newline at end of file diff --git a/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json b/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json index aeeddb705..61aebc4c2 100644 --- a/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json +++ b/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json @@ -10,10 +10,10 @@ "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "@openzeppelin/contracts": "^5.4.0", - "@openzeppelin/contracts-upgradeable": "^5.4.0", + "@openzeppelin/contracts": "^5.5.0", + "@openzeppelin/contracts-upgradeable": "^5.5.0", "@openzeppelin/hardhat-upgrades": "^3.0.0", - "hardhat": "^2.16.1" + "hardhat": "^2.22.0" } }, "node_modules/@adraffy/ens-normalize": { @@ -1924,20 +1924,20 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.4.0.tgz", - "integrity": "sha512-eCYgWnLg6WO+X52I16TZt8uEjbtdkgLC0SUX/xnAksjjrQI4Xfn4iBRoI5j55dmlOhDv1Y7BoR3cU7e3WWhC6A==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz", + "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==", "dev": true, "license": "MIT" }, "node_modules/@openzeppelin/contracts-upgradeable": { - "version": "5.4.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.4.0.tgz", - "integrity": "sha512-STJKyDzUcYuB35Zub1JpWW58JxvrFFVgQ+Ykdr8A9PGXgtq/obF5uoh07k2XmFyPxfnZdPdBdhkJ/n2YxJ87HQ==", + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.5.0.tgz", + "integrity": "sha512-Va5hKG5oaK0EE5bXTVWugcGimMHazxL+SL523dH6WVbGiuLXwuWr9oxtLyPHQSVGtgmlIgtKNR5V+OUpCIUwFQ==", "dev": true, "license": "MIT", "peerDependencies": { - "@openzeppelin/contracts": "5.4.0" + "@openzeppelin/contracts": "5.5.0" } }, "node_modules/@openzeppelin/defender-sdk-base-client": { @@ -3963,19 +3963,28 @@ } }, "node_modules/chokidar": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", - "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", + "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", "dependencies": { - "readdirp": "^4.0.1" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" }, "engines": { - "node": ">= 14.16.0" + "node": ">= 8.10.0" }, "funding": { "url": "https://paulmillr.com/funding/" + }, + "optionalDependencies": { + "fsevents": "~2.3.2" } }, "node_modules/ci-info": { @@ -5486,9 +5495,9 @@ } }, "node_modules/hardhat": { - "version": "2.26.3", - "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.26.3.tgz", - "integrity": "sha512-gBfjbxCCEaRgMCRgTpjo1CEoJwqNPhyGMMVHYZJxoQ3LLftp2erSVf8ZF6hTQC0r2wst4NcqNmLWqMnHg1quTw==", + "version": "2.26.5", + "resolved": "https://registry.npmjs.org/hardhat/-/hardhat-2.26.5.tgz", + "integrity": "sha512-TvFKUPGRaoemeVpnKsXt5I+kVCNrzP2cLwyNUveu0JKf2Q0lzh6LTgVBsWyYPlXAwBzyUQ6fsL98UgyF/QdOfA==", "dev": true, "license": "MIT", "dependencies": { @@ -5718,6 +5727,22 @@ "@scure/base": "~1.1.0" } }, + "node_modules/hardhat/node_modules/chokidar": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-4.0.3.tgz", + "integrity": "sha512-Qgzu8kfBvo+cA4962jnP1KkS6Dop5NS6g7R5LFYJr4b8Ub94PPQXUksCw9PvXoeXPRRddRNC5C1JQUR2SMGtnA==", + "dev": true, + "license": "MIT", + "dependencies": { + "readdirp": "^4.0.1" + }, + "engines": { + "node": ">= 14.16.0" + }, + "funding": { + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/hardhat/node_modules/ethereum-cryptography": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/ethereum-cryptography/-/ethereum-cryptography-1.2.0.tgz", @@ -5756,6 +5781,20 @@ "graceful-fs": "^4.1.6" } }, + "node_modules/hardhat/node_modules/readdirp": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", + "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "dev": true, + "license": "MIT", + "engines": { + "node": ">= 14.18.0" + }, + "funding": { + "type": "individual", + "url": "https://paulmillr.com/funding/" + } + }, "node_modules/hardhat/node_modules/universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", @@ -6772,31 +6811,6 @@ "node": ">= 14.0.0" } }, - "node_modules/mocha/node_modules/chokidar": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.6.0.tgz", - "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", - "dev": true, - "license": "MIT", - "dependencies": { - "anymatch": "~3.1.2", - "braces": "~3.0.2", - "glob-parent": "~5.1.2", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.6.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "funding": { - "url": "https://paulmillr.com/funding/" - }, - "optionalDependencies": { - "fsevents": "~2.3.2" - } - }, "node_modules/mocha/node_modules/glob": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/glob/-/glob-8.1.0.tgz", @@ -6831,19 +6845,6 @@ "node": ">=10" } }, - "node_modules/mocha/node_modules/readdirp": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", - "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", - "dev": true, - "license": "MIT", - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, "node_modules/mocha/node_modules/supports-color": { "version": "8.1.1", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", @@ -7500,17 +7501,16 @@ } }, "node_modules/readdirp": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-4.1.2.tgz", - "integrity": "sha512-GDhwkLfywWL2s6vEjyhri+eXmfH6j1L7JE27WhqLeYzoh/A3DBaYGEj2H/HFZCn/kMfim73FXxEJTw06WtxQwg==", + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", - "engines": { - "node": ">= 14.18.0" + "dependencies": { + "picomatch": "^2.2.1" }, - "funding": { - "type": "individual", - "url": "https://paulmillr.com/funding/" + "engines": { + "node": ">=8.10.0" } }, "node_modules/rechoir": { @@ -8643,14 +8643,14 @@ } }, "node_modules/tinyglobby": { - "version": "0.2.14", - "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.14.tgz", - "integrity": "sha512-tX5e7OM1HnYr2+a2C/4V0htOcSQcoSTH9KgJnVvNm5zm/cyEWKJ7j7YutsH9CxMdtOkkLFy2AHrMci9IM8IPZQ==", + "version": "0.2.15", + "resolved": "https://registry.npmjs.org/tinyglobby/-/tinyglobby-0.2.15.tgz", + "integrity": "sha512-j2Zq4NyQYG5XMST4cbs02Ak8iJUdxRM0XI5QyxXuZOzKOINmWurp3smXu3y5wDcJrptwpSjgXHzIQxR0omXljQ==", "dev": true, "license": "MIT", "dependencies": { - "fdir": "^6.4.4", - "picomatch": "^4.0.2" + "fdir": "^6.5.0", + "picomatch": "^4.0.3" }, "engines": { "node": ">=12.0.0" diff --git a/packages/core/solidity/src/environments/hardhat/upgradeable/package.json b/packages/core/solidity/src/environments/hardhat/upgradeable/package.json index 4da184ef9..da79327fe 100644 --- a/packages/core/solidity/src/environments/hardhat/upgradeable/package.json +++ b/packages/core/solidity/src/environments/hardhat/upgradeable/package.json @@ -9,10 +9,10 @@ "author": "", "license": "ISC", "devDependencies": { - "@openzeppelin/contracts": "^5.4.0", - "@openzeppelin/contracts-upgradeable": "^5.4.0", - "@openzeppelin/hardhat-upgrades": "^3.0.0", "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "hardhat": "^2.16.1" + "@openzeppelin/contracts": "^5.5.0", + "@openzeppelin/contracts-upgradeable": "^5.5.0", + "@openzeppelin/hardhat-upgrades": "^3.0.0", + "hardhat": "^2.22.0" } -} +} \ No newline at end of file diff --git a/packages/core/solidity/src/erc1155.test.ts.md b/packages/core/solidity/src/erc1155.test.ts.md index 470826aa4..b2a6a9e62 100644 --- a/packages/core/solidity/src/erc1155.test.ts.md +++ b/packages/core/solidity/src/erc1155.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -32,7 +32,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -55,7 +55,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -92,7 +92,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -115,7 +115,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -132,7 +132,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -156,7 +156,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -197,7 +197,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -234,7 +234,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -287,7 +287,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -324,7 +324,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -357,14 +357,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ import {ERC1155BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol";␊ import {ERC1155PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, ERC1155PausableUpgradeable, ERC1155BurnableUpgradeable {␊ bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");␊ @@ -441,15 +441,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ import {ERC1155BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol";␊ import {ERC1155PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, AccessControlUpgradeable, ERC1155PausableUpgradeable, ERC1155BurnableUpgradeable, UUPSUpgradeable {␊ bytes32 public constant URI_SETTER_ROLE = keccak256("URI_SETTER_ROLE");␊ @@ -470,7 +470,6 @@ Generated by [AVA](https://avajs.dev). __AccessControl_init();␊ __ERC1155Pausable_init();␊ __ERC1155Burnable_init();␊ - __UUPSUpgradeable_init();␊ ␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(PAUSER_ROLE, pauser);␊ @@ -535,15 +534,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ import {ERC1155BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155BurnableUpgradeable.sol";␊ import {ERC1155PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/extensions/ERC1155PausableUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, AccessManagedUpgradeable, ERC1155PausableUpgradeable, ERC1155BurnableUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -556,7 +555,6 @@ Generated by [AVA](https://avajs.dev). __AccessManaged_init(initialAuthority);␊ __ERC1155Pausable_init();␊ __ERC1155Burnable_init();␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function setURI(string memory newuri) public restricted {␊ diff --git a/packages/core/solidity/src/erc1155.test.ts.snap b/packages/core/solidity/src/erc1155.test.ts.snap index a7faff1b1..b3d7d8ad0 100644 Binary files a/packages/core/solidity/src/erc1155.test.ts.snap and b/packages/core/solidity/src/erc1155.test.ts.snap differ diff --git a/packages/core/solidity/src/erc20.test.ts.md b/packages/core/solidity/src/erc20.test.ts.md index f7e305dbe..b383936ca 100644 --- a/packages/core/solidity/src/erc20.test.ts.md +++ b/packages/core/solidity/src/erc20.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -25,7 +25,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -41,7 +41,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -58,7 +58,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -97,7 +97,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -140,7 +140,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -179,7 +179,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -219,7 +219,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -240,7 +240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -256,7 +256,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -277,7 +277,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -298,7 +298,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -319,7 +319,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -344,7 +344,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -373,7 +373,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ @@ -390,7 +390,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -406,7 +406,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -442,7 +442,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -478,7 +478,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -523,7 +523,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -540,7 +540,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -570,7 +570,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -602,7 +602,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -639,7 +639,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -681,7 +681,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -711,7 +711,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -740,7 +740,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -774,7 +774,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -820,7 +820,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -854,13 +854,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ import {ERC20BridgeableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20PermitUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ @@ -904,13 +904,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ import {ERC20BridgeableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20PermitUpgradeable {␊ address internal constant SUPERCHAIN_TOKEN_BRIDGE = 0x4200000000000000000000000000000000000028;␊ @@ -943,7 +943,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -964,7 +964,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -997,7 +997,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -1033,7 +1033,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1045,9 +1045,9 @@ Generated by [AVA](https://avajs.dev). import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, AccessControlUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, ERC1363Upgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ bytes32 public constant TOKEN_BRIDGE_ROLE = keccak256("TOKEN_BRIDGE_ROLE");␊ @@ -1074,7 +1074,6 @@ Generated by [AVA](https://avajs.dev). __ERC20Permit_init("MyToken");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ - __UUPSUpgradeable_init();␊ ␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(TOKEN_BRIDGE_ROLE, tokenBridge);␊ @@ -1142,7 +1141,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1153,7 +1152,7 @@ Generated by [AVA](https://avajs.dev). import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, AccessControlUpgradeable, ERC1363Upgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable {␊ @@ -1230,7 +1229,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1241,9 +1240,9 @@ Generated by [AVA](https://avajs.dev). import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, AccessControlUpgradeable, ERC1363Upgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");␊ @@ -1267,7 +1266,6 @@ Generated by [AVA](https://avajs.dev). __ERC20Permit_init("MyToken");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ - __UUPSUpgradeable_init();␊ ␊ _mint(recipient, 2000 * 10 ** decimals());␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ @@ -1328,7 +1326,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ @@ -1339,9 +1337,9 @@ Generated by [AVA](https://avajs.dev). import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, AccessManagedUpgradeable, ERC1363Upgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -1361,7 +1359,6 @@ Generated by [AVA](https://avajs.dev). __ERC20Permit_init("MyToken");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ - __UUPSUpgradeable_init();␊ ␊ _mint(recipient, 2000 * 10 ** decimals());␊ }␊ diff --git a/packages/core/solidity/src/erc20.test.ts.snap b/packages/core/solidity/src/erc20.test.ts.snap index c912c7289..a99c9f791 100644 Binary files a/packages/core/solidity/src/erc20.test.ts.snap and b/packages/core/solidity/src/erc20.test.ts.snap differ diff --git a/packages/core/solidity/src/erc721.test.ts.md b/packages/core/solidity/src/erc721.test.ts.md index 30fbf1faf..6d590c069 100644 --- a/packages/core/solidity/src/erc721.test.ts.md +++ b/packages/core/solidity/src/erc721.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -24,7 +24,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -39,7 +39,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -58,7 +58,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -100,7 +100,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -136,7 +136,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -184,7 +184,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -237,7 +237,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -253,7 +253,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -290,7 +290,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -328,7 +328,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -351,7 +351,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -387,7 +387,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -410,7 +410,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -437,7 +437,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ @@ -471,7 +471,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ @@ -505,7 +505,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ @@ -548,15 +548,15 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyNFTToken is Initializable, ERC721Upgradeable, OwnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyNFTToken␊ @@ -577,7 +577,6 @@ Generated by [AVA](https://avajs.dev). __Ownable_init(initialOwner);␊ __EIP712_init("My NFT Token", "1");␊ __ERC721Votes_init();␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function safeMint(address to) public onlyOwner returns (uint256) {␊ @@ -625,13 +624,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ ␊ contract MyNFTToken is Initializable, ERC721Upgradeable, OwnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable {␊ @@ -694,13 +693,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, OwnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable {␊ @@ -759,7 +758,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -768,7 +767,7 @@ Generated by [AVA](https://avajs.dev). import {ERC721EnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊ import {ERC721PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721PausableUpgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, ERC721PausableUpgradeable, OwnableUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable {␊ @@ -832,7 +831,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -841,9 +840,9 @@ Generated by [AVA](https://avajs.dev). import {ERC721EnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊ import {ERC721PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721PausableUpgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, ERC721PausableUpgradeable, OwnableUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -859,7 +858,6 @@ Generated by [AVA](https://avajs.dev). __ERC721Burnable_init();␊ __EIP712_init("MyToken", "1");␊ __ERC721Votes_init();␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function pause() public onlyOwner {␊ @@ -913,7 +911,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ @@ -923,8 +921,8 @@ Generated by [AVA](https://avajs.dev). import {ERC721EnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊ import {ERC721PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721PausableUpgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, ERC721PausableUpgradeable, AccessManagedUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -940,7 +938,6 @@ Generated by [AVA](https://avajs.dev). __ERC721Burnable_init();␊ __EIP712_init("MyToken", "1");␊ __ERC721Votes_init();␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function pause() public restricted {␊ @@ -994,7 +991,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ @@ -1004,8 +1001,8 @@ Generated by [AVA](https://avajs.dev). import {ERC721EnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊ import {ERC721PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721PausableUpgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, ERC721PausableUpgradeable, AccessManagedUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ @@ -1029,7 +1026,6 @@ Generated by [AVA](https://avajs.dev). __ERC721Burnable_init();␊ __EIP712_init("MyToken", "1");␊ __ERC721Votes_init();␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function pause() public restricted {␊ @@ -1090,7 +1086,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ @@ -1100,8 +1096,8 @@ Generated by [AVA](https://avajs.dev). import {ERC721EnumerableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721EnumerableUpgradeable.sol";␊ import {ERC721PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721PausableUpgradeable.sol";␊ import {ERC721VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/extensions/ERC721VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, ERC721EnumerableUpgradeable, ERC721PausableUpgradeable, AccessManagedUpgradeable, ERC721BurnableUpgradeable, EIP712Upgradeable, ERC721VotesUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:MyToken␊ @@ -1125,7 +1121,6 @@ Generated by [AVA](https://avajs.dev). __ERC721Burnable_init();␊ __EIP712_init("MyToken", "1");␊ __ERC721Votes_init();␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function pause() public restricted {␊ diff --git a/packages/core/solidity/src/erc721.test.ts.snap b/packages/core/solidity/src/erc721.test.ts.snap index a2991d867..87b359e83 100644 Binary files a/packages/core/solidity/src/erc721.test.ts.snap and b/packages/core/solidity/src/erc721.test.ts.snap differ diff --git a/packages/core/solidity/src/generate/account.ts b/packages/core/solidity/src/generate/account.ts index 685e23bb8..b1d082543 100644 --- a/packages/core/solidity/src/generate/account.ts +++ b/packages/core/solidity/src/generate/account.ts @@ -8,7 +8,7 @@ const account = { signatureValidation: [false, 'ERC1271', 'ERC7739'] as const, ERC721Holder: [false, true] as const, ERC1155Holder: [false, true] as const, - signer: ['ERC7702', 'ECDSA', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const, + signer: ['ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const, batchedExecution: [false, true] as const, ERC7579Modules: [false, 'AccountERC7579', 'AccountERC7579Hooked'] as const, access: [false] as const, diff --git a/packages/core/solidity/src/get-imports.test.ts b/packages/core/solidity/src/get-imports.test.ts index d6f1509bb..53a694e91 100644 --- a/packages/core/solidity/src/get-imports.test.ts +++ b/packages/core/solidity/src/get-imports.test.ts @@ -38,6 +38,7 @@ test('erc721 auto increment', t => { '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol', '@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol', '@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol', + '@openzeppelin/contracts/utils/Bytes.sol', '@openzeppelin/contracts/utils/Context.sol', '@openzeppelin/contracts/utils/Panic.sol', '@openzeppelin/contracts/utils/Strings.sol', @@ -62,8 +63,6 @@ test('erc721 auto increment uups', t => { t.deepEqual(files, [ '@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol', - '@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol', - '@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol', '@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol', '@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol', '@openzeppelin/contracts-upgradeable/utils/introspection/ERC165Upgradeable.sol', @@ -72,12 +71,16 @@ test('erc721 auto increment uups', t => { '@openzeppelin/contracts/interfaces/draft-IERC6093.sol', '@openzeppelin/contracts/proxy/ERC1967/ERC1967Utils.sol', '@openzeppelin/contracts/proxy/beacon/IBeacon.sol', + '@openzeppelin/contracts/proxy/utils/Initializable.sol', + '@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol', '@openzeppelin/contracts/token/ERC721/IERC721.sol', '@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol', '@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol', '@openzeppelin/contracts/token/ERC721/utils/ERC721Utils.sol', '@openzeppelin/contracts/utils/Address.sol', + '@openzeppelin/contracts/utils/Bytes.sol', '@openzeppelin/contracts/utils/Errors.sol', + '@openzeppelin/contracts/utils/LowLevelCall.sol', '@openzeppelin/contracts/utils/Panic.sol', '@openzeppelin/contracts/utils/StorageSlot.sol', '@openzeppelin/contracts/utils/Strings.sol', diff --git a/packages/core/solidity/src/governor.test.ts.md b/packages/core/solidity/src/governor.test.ts.md index 8ab51e516..8d95bb17e 100644 --- a/packages/core/solidity/src/governor.test.ts.md +++ b/packages/core/solidity/src/governor.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -99,7 +99,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -185,7 +185,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -277,7 +277,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -369,7 +369,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -458,7 +458,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -553,7 +553,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -639,7 +639,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -725,7 +725,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -817,7 +817,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -906,7 +906,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -992,7 +992,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1082,7 +1082,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1168,7 +1168,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1254,7 +1254,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1343,7 +1343,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1429,7 +1429,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1518,7 +1518,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1604,7 +1604,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {GovernorUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol";␊ @@ -1613,9 +1613,9 @@ Generated by [AVA](https://avajs.dev). import {GovernorVotesUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorVotesUpgradeable.sol";␊ import {GovernorVotesQuorumFractionUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/extensions/GovernorVotesQuorumFractionUpgradeable.sol";␊ import {IVotes} from "@openzeppelin/contracts/governance/utils/IVotes.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {TimelockControllerUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/TimelockControllerUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyGovernor is Initializable, GovernorUpgradeable, GovernorCountingSimpleUpgradeable, GovernorVotesUpgradeable, GovernorVotesQuorumFractionUpgradeable, GovernorTimelockControlUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -1632,7 +1632,6 @@ Generated by [AVA](https://avajs.dev). __GovernorVotes_init(_token);␊ __GovernorVotesQuorumFraction_init(4);␊ __GovernorTimelockControl_init(_timelock);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function votingDelay() public pure override returns (uint256) {␊ diff --git a/packages/core/solidity/src/governor.test.ts.snap b/packages/core/solidity/src/governor.test.ts.snap index 6eca252ca..3bf56f6d2 100644 Binary files a/packages/core/solidity/src/governor.test.ts.snap and b/packages/core/solidity/src/governor.test.ts.snap differ diff --git a/packages/core/solidity/src/print.ts b/packages/core/solidity/src/print.ts index 36dbdab20..4ce73c4b7 100644 --- a/packages/core/solidity/src/print.ts +++ b/packages/core/solidity/src/print.ts @@ -101,16 +101,20 @@ function printConstructor(contract: Contract, helpers: Helpers): Lines[] { if (hasParentParams || hasConstructorCode || (helpers.upgradeable && parentsWithInitializers.length > 0)) { if (helpers.upgradeable) { const upgradeableParents = parentsWithInitializers.filter(p => inferTranspiled(p.contract)); - const nonUpgradeableParents = contract.parents.filter(p => !inferTranspiled(p.contract)); + // Omit Initializable and UUPSUpgradeable since they don't have explicit constructors + const nonUpgradeableParentsWithConstructors = contract.parents.filter( + p => + !inferTranspiled(p.contract) && p.contract.name !== 'Initializable' && p.contract.name !== 'UUPSUpgradeable', + ); const constructor = printFunction2( [ - nonUpgradeableParents.length > 0 + nonUpgradeableParentsWithConstructors.length > 0 ? '/// @custom:oz-upgrades-unsafe-allow-reachable constructor' : '/// @custom:oz-upgrades-unsafe-allow constructor', ], 'constructor', [], - nonUpgradeableParents.flatMap(p => printParentConstructor(p, helpers)), + nonUpgradeableParentsWithConstructors.flatMap(p => printParentConstructor(p, helpers)), ['_disableInitializers();'], ); const initializer = printFunction2( diff --git a/packages/core/solidity/src/set-namespaced-storage.test.ts.md b/packages/core/solidity/src/set-namespaced-storage.test.ts.md index 4637cbe94..1f72045df 100644 --- a/packages/core/solidity/src/set-namespaced-storage.test.ts.md +++ b/packages/core/solidity/src/set-namespaced-storage.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -33,7 +33,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Token {␊ @@ -56,7 +56,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract Token {␊ diff --git a/packages/core/solidity/src/set-namespaced-storage.test.ts.snap b/packages/core/solidity/src/set-namespaced-storage.test.ts.snap index 864de84b3..93c82288b 100644 Binary files a/packages/core/solidity/src/set-namespaced-storage.test.ts.snap and b/packages/core/solidity/src/set-namespaced-storage.test.ts.snap differ diff --git a/packages/core/solidity/src/set-upgradeable.ts b/packages/core/solidity/src/set-upgradeable.ts index 723dbe77f..b95fd6111 100644 --- a/packages/core/solidity/src/set-upgradeable.ts +++ b/packages/core/solidity/src/set-upgradeable.ts @@ -21,6 +21,7 @@ function setUpgradeableBase( c.addParent({ name: 'Initializable', path: '@openzeppelin/contracts/proxy/utils/Initializable.sol', + transpiled: false, }); switch (upgradeable) { @@ -32,6 +33,7 @@ function setUpgradeableBase( const UUPSUpgradeable = { name: 'UUPSUpgradeable', path: '@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol', + transpiled: false, }; c.addParent(UUPSUpgradeable); c.addOverride(UUPSUpgradeable, functions._authorizeUpgrade); diff --git a/packages/core/solidity/src/signer.ts b/packages/core/solidity/src/signer.ts index a9a156930..7d91f60cf 100644 --- a/packages/core/solidity/src/signer.ts +++ b/packages/core/solidity/src/signer.ts @@ -3,7 +3,7 @@ import { OptionsError } from './error'; import type { Upgradeable } from './set-upgradeable'; import { defineFunctions } from './utils/define-functions'; -export const SignerOptions = [false, 'ERC7702', 'ECDSA', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const; +export const SignerOptions = [false, 'ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] as const; export type SignerOptions = (typeof SignerOptions)[number]; export function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable: Upgradeable): void { @@ -13,11 +13,11 @@ export function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable c.addOverride({ name: signerName }, signerFunctions._rawSignatureValidation); switch (signer) { - case 'ERC7702': + case 'EIP7702': c.addParent(signers[signer]); if (upgradeable) { throw new OptionsError({ - erc7702: 'EOAs can upgrade by redelegating to a new account', + eip7702: 'EOAs can upgrade by redelegating to a new account', upgradeable: 'EOAs can upgrade by redelegating to a new account', }); } @@ -38,14 +38,14 @@ export function addSigner(c: ContractBuilder, signer: SignerOptions, upgradeable } export const signers = { - ERC7702: { - name: 'SignerERC7702', - path: '@openzeppelin/contracts/utils/cryptography/signers/SignerERC7702.sol', - }, ECDSA: { name: 'SignerECDSA', path: '@openzeppelin/contracts/utils/cryptography/signers/SignerECDSA.sol', }, + EIP7702: { + name: 'SignerEIP7702', + path: '@openzeppelin/contracts/utils/cryptography/signers/SignerEIP7702.sol', + }, P256: { name: 'SignerP256', path: '@openzeppelin/contracts/utils/cryptography/signers/SignerP256.sol', @@ -64,7 +64,7 @@ export const signers = { }, }; -export const signerArgs: Record, { name: string; type: string }[]> = { +export const signerArgs: Record, { name: string; type: string }[]> = { ECDSA: [{ name: 'signer', type: 'address' }], P256: [ { name: 'qx', type: 'bytes32' }, diff --git a/packages/core/solidity/src/stablecoin.test.ts.md b/packages/core/solidity/src/stablecoin.test.ts.md index c432050dc..4ffedbc4d 100644 --- a/packages/core/solidity/src/stablecoin.test.ts.md +++ b/packages/core/solidity/src/stablecoin.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -25,7 +25,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -42,7 +42,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -81,7 +81,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -124,7 +124,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -163,7 +163,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -203,7 +203,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -224,7 +224,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -240,7 +240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -265,7 +265,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -294,7 +294,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ @@ -311,7 +311,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -327,7 +327,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -362,7 +362,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -408,7 +408,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -454,7 +454,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -490,7 +490,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -526,7 +526,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -571,7 +571,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -588,7 +588,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ diff --git a/packages/core/solidity/src/stablecoin.test.ts.snap b/packages/core/solidity/src/stablecoin.test.ts.snap index 8f0fafda0..2ad619c14 100644 Binary files a/packages/core/solidity/src/stablecoin.test.ts.snap and b/packages/core/solidity/src/stablecoin.test.ts.snap differ diff --git a/packages/core/solidity/src/utils/version.ts b/packages/core/solidity/src/utils/version.ts index 10ab4ab89..6af24cfd6 100644 --- a/packages/core/solidity/src/utils/version.ts +++ b/packages/core/solidity/src/utils/version.ts @@ -1,4 +1,4 @@ /** * Semantic version string representing of the minimum compatible version of Contracts to display in output. */ -export const compatibleContractsSemver = '^5.4.0'; +export const compatibleContractsSemver = '^5.5.0'; diff --git a/packages/core/solidity/src/zip-foundry.test.ts.md b/packages/core/solidity/src/zip-foundry.test.ts.md index ba30a61d0..cdde1e7f6 100644 --- a/packages/core/solidity/src/zip-foundry.test.ts.md +++ b/packages/core/solidity/src/zip-foundry.test.ts.md @@ -120,7 +120,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -330,7 +330,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ @@ -340,10 +340,10 @@ Generated by [AVA](https://avajs.dev). import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, OwnableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ @@ -373,7 +373,6 @@ Generated by [AVA](https://avajs.dev). __ERC20Permit_init("My Token");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ - __UUPSUpgradeable_init();␊ ␊ require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ MyTokenStorage storage $ = _getMyTokenStorage();␊ @@ -585,14 +584,14 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20PermitUpgradeable, AccessControlUpgradeable, UUPSUpgradeable {␊ bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");␊ @@ -606,7 +605,6 @@ Generated by [AVA](https://avajs.dev). __ERC20_init("My Token", "MTK");␊ __ERC20Permit_init("My Token");␊ __AccessControl_init();␊ - __UUPSUpgradeable_init();␊ ␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(UPGRADER_ROLE, upgrader);␊ @@ -773,13 +771,13 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, OwnableUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -790,7 +788,6 @@ Generated by [AVA](https://avajs.dev). function initialize(address initialOwner) public initializer {␊ __ERC721_init("My Token", "MTK");␊ __Ownable_init(initialOwner);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -939,7 +936,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -1105,11 +1102,11 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC1155Upgradeable, OwnableUpgradeable {␊ @@ -1268,7 +1265,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1433,7 +1430,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1441,9 +1438,9 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -1453,7 +1450,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -1601,7 +1597,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -1756,11 +1752,11 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyContract is Initializable, AccessManagedUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ diff --git a/packages/core/solidity/src/zip-foundry.test.ts.snap b/packages/core/solidity/src/zip-foundry.test.ts.snap index bbf47b6ab..8d5db9d6d 100644 Binary files a/packages/core/solidity/src/zip-foundry.test.ts.snap and b/packages/core/solidity/src/zip-foundry.test.ts.snap differ diff --git a/packages/core/solidity/src/zip-hardhat.test.ts.md b/packages/core/solidity/src/zip-hardhat.test.ts.md index bf05873a7..a5f2ec219 100644 --- a/packages/core/solidity/src/zip-hardhat.test.ts.md +++ b/packages/core/solidity/src/zip-hardhat.test.ts.md @@ -10,7 +10,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -75,6 +75,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -95,9 +96,9 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";␊ @@ -137,7 +138,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ @@ -147,10 +148,10 @@ Generated by [AVA](https://avajs.dev). import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, OwnableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ @@ -180,7 +181,6 @@ Generated by [AVA](https://avajs.dev). __ERC20Permit_init("My Token");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ - __UUPSUpgradeable_init();␊ ␊ require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ MyTokenStorage storage $ = _getMyTokenStorage();␊ @@ -244,6 +244,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -264,11 +265,11 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.4.0",␊ - "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { ethers, upgrades } from "hardhat";␊ @@ -316,13 +317,13 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyToken is Initializable, ERC721Upgradeable, OwnableUpgradeable, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -333,7 +334,6 @@ Generated by [AVA](https://avajs.dev). function initialize(address initialOwner) public initializer {␊ __ERC721_init("My Token", "MTK");␊ __Ownable_init(initialOwner);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -351,6 +351,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -371,11 +372,11 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.4.0",␊ - "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { ethers, upgrades } from "hardhat";␊ @@ -421,7 +422,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -446,6 +447,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -466,9 +468,9 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";␊ @@ -505,7 +507,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -527,6 +529,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -547,9 +550,9 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";␊ @@ -584,7 +587,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -592,9 +595,9 @@ Generated by [AVA](https://avajs.dev). import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ import {ERC7739} from "@openzeppelin/contracts/utils/cryptography/signers/draft-ERC7739.sol";␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {SignerECDSAUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/signers/SignerECDSAUpgradeable.sol";␊ - import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSAUpgradeable, ERC721Holder, ERC1155Holder, UUPSUpgradeable {␊ /// @custom:oz-upgrades-unsafe-allow-reachable constructor␊ @@ -604,7 +607,6 @@ Generated by [AVA](https://avajs.dev). ␊ function initialize(address signer) public initializer {␊ __SignerECDSA_init(signer);␊ - __UUPSUpgradeable_init();␊ }␊ ␊ function _authorizeUpgrade(address newImplementation)␊ @@ -622,6 +624,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -642,11 +645,11 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.4.0",␊ - "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { ethers, upgrades } from "hardhat";␊ @@ -690,7 +693,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -704,6 +707,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -724,9 +728,9 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { buildModule } from "@nomicfoundation/hardhat-ignition/modules";␊ @@ -759,10 +763,10 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.4.0␊ + // Compatible with OpenZeppelin Contracts ^5.5.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ ␊ contract MyContract is Initializable {␊ /// @custom:oz-upgrades-unsafe-allow constructor␊ @@ -779,6 +783,7 @@ Generated by [AVA](https://avajs.dev). solidity: {␊ version: "0.8.27",␊ settings: {␊ + evmVersion: 'cancun',␊ optimizer: {␊ enabled: true,␊ },␊ @@ -799,11 +804,11 @@ Generated by [AVA](https://avajs.dev). "author": "",␊ "license": "MIT",␊ "devDependencies": {␊ - "@openzeppelin/contracts": "^5.4.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.4.0",␊ - "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "hardhat": "^2.16.1"␊ + "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ + "hardhat": "^2.22.0"␊ }␊ }`, `import { ethers, upgrades } from "hardhat";␊ diff --git a/packages/core/solidity/src/zip-hardhat.test.ts.snap b/packages/core/solidity/src/zip-hardhat.test.ts.snap index e447f879e..8bd5528bc 100644 Binary files a/packages/core/solidity/src/zip-hardhat.test.ts.snap and b/packages/core/solidity/src/zip-hardhat.test.ts.snap differ diff --git a/packages/core/solidity/src/zip-hardhat.ts b/packages/core/solidity/src/zip-hardhat.ts index b85d36663..2a122c8b1 100644 --- a/packages/core/solidity/src/zip-hardhat.ts +++ b/packages/core/solidity/src/zip-hardhat.ts @@ -15,6 +15,7 @@ const config: HardhatUserConfig = { solidity: { version: "${SOLIDITY_VERSION}", settings: { + evmVersion: 'cancun', optimizer: { enabled: true, }, diff --git a/packages/mcp/src/solidity/schemas.ts b/packages/mcp/src/solidity/schemas.ts index cc97280d6..72ee798e7 100644 --- a/packages/mcp/src/solidity/schemas.ts +++ b/packages/mcp/src/solidity/schemas.ts @@ -125,8 +125,8 @@ export const accountSchema = { ERC1155Holder: z.boolean().optional().describe(solidityAccountDescriptions.ERC1155Holder), signer: z .literal(false) - .or(z.literal('ERC7702')) .or(z.literal('ECDSA')) + .or(z.literal('EIP7702')) .or(z.literal('P256')) .or(z.literal('RSA')) .or(z.literal('Multisig')) diff --git a/packages/ui/api/ai-assistant/function-definitions/solidity.ts b/packages/ui/api/ai-assistant/function-definitions/solidity.ts index ce1a63c8d..5f50dc32d 100644 --- a/packages/ui/api/ai-assistant/function-definitions/solidity.ts +++ b/packages/ui/api/ai-assistant/function-definitions/solidity.ts @@ -211,7 +211,7 @@ export const solidityAccountAIFunctionDefinition = { signer: { anyOf: [ { type: 'boolean', enum: [false] }, - { type: 'string', enum: ['ECDSA', 'ERC7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] }, + { type: 'string', enum: ['ECDSA', 'EIP7702', 'P256', 'RSA', 'Multisig', 'MultisigWeighted'] }, ], description: solidityAccountDescriptions.signer, }, diff --git a/packages/ui/src/solidity/AccountControls.svelte b/packages/ui/src/solidity/AccountControls.svelte index cdd084c06..74c262542 100644 --- a/packages/ui/src/solidity/AccountControls.svelte +++ b/packages/ui/src/solidity/AccountControls.svelte @@ -25,7 +25,7 @@ let upgradeNotSupported = false; let upgradeNotSupportedReason = ''; $: { - if (opts.signer === 'ERC7702') { + if (opts.signer === 'EIP7702') { upgradeNotSupported = true; upgradeNotSupportedReason = 'EOAs can upgrade by redelegating to a new account'; } else { @@ -175,8 +175,8 @@ making it suitable for accounts controlled by EOAs. -