diff --git a/packages/core/solidity/hardhat.config.js b/packages/core/solidity/hardhat.config.js index ce44531d6..2ef5c7125 100644 --- a/packages/core/solidity/hardhat.config.js +++ b/packages/core/solidity/hardhat.config.js @@ -1,3 +1,4 @@ +const fs = require('fs'); const { task } = require('hardhat/config'); const { HardhatError } = require('hardhat/internal/core/errors'); const { ERRORS } = require('hardhat/internal/core/errors-list'); @@ -5,6 +6,7 @@ const { TASK_COMPILE_SOLIDITY_CHECK_ERRORS, TASK_COMPILE_SOLIDITY_LOG_COMPILATION_ERRORS, TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS, + TASK_COMPILE_GET_REMAPPINGS, } = require('hardhat/builtin-tasks/task-names'); const SOLIDITY_VERSION = require('./src/solidity-version.json'); @@ -37,6 +39,21 @@ task(TASK_COMPILE_SOLIDITY_MERGE_COMPILATION_JOBS, async ({ compilationJobs }, _ return mergedChunks.flat(); }); +task(TASK_COMPILE_GET_REMAPPINGS).setAction((_, __, runSuper) => + runSuper().then(remappings => + Object.assign( + remappings, + Object.fromEntries( + fs + .readFileSync('remappings.txt', 'utf-8') + .split('\n') + .filter(Boolean) + .map(line => line.trim().split('=')), + ), + ), + ), +); + /** * @type import('hardhat/config').HardhatUserConfig */ diff --git a/packages/core/solidity/remappings.txt b/packages/core/solidity/remappings.txt new file mode 100644 index 000000000..7f8667df0 --- /dev/null +++ b/packages/core/solidity/remappings.txt @@ -0,0 +1,2 @@ +@openzeppelin/community-contracts/=node_modules/@openzeppelin/community-contracts/contracts/ +@openzeppelin/contracts-upgradeable/=node_modules/@openzeppelin/contracts-upgradeable/ diff --git a/packages/core/solidity/src/account.test.ts.md b/packages/core/solidity/src/account.test.ts.md index ac61723b9..d3abce6cb 100644 --- a/packages/core/solidity/src/account.test.ts.md +++ b/packages/core/solidity/src/account.test.ts.md @@ -12,9 +12,9 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ ␊ contract CustomAccount is Account, EIP712, ERC7739 {␊ constructor() EIP712("CustomAccount", "1") {}␊ @@ -39,7 +39,7 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ ␊ contract CustomAccountERC1271 is Account, IERC1271 {␊ @@ -72,9 +72,9 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ ␊ contract CustomAccountERC7739 is Account, EIP712, ERC7739 {␊ constructor() EIP712("CustomAccountERC7739", "1") {}␊ @@ -99,10 +99,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ ␊ contract CustomAccountERC721Holder is Account, EIP712, ERC7739, ERC721Holder {␊ constructor() EIP712("CustomAccountERC721Holder", "1") {}␊ @@ -127,10 +127,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ ␊ contract CustomAccountERC1155Holder is Account, EIP712, ERC7739, ERC1155Holder {␊ constructor() EIP712("CustomAccountERC1155Holder", "1") {}␊ @@ -155,11 +155,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ ␊ contract CustomAccountERC721HolderERC1155Holder is Account, EIP712, ERC7739, ERC721Holder, ERC1155Holder {␊ constructor() EIP712("CustomAccountERC721HolderERC1155Holder", "1") {}␊ @@ -184,10 +184,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -221,10 +221,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, AccountERC7579 {␊ @@ -262,8 +262,8 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ @@ -297,10 +297,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, AccountERC7579 {␊ @@ -338,11 +338,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, AccountERC7579Hooked {␊ @@ -380,10 +380,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract CustomAccountWithSignerERC7702 is Account, EIP712, ERC7739, SignerERC7702 {␊ constructor() EIP712("CustomAccount with SignerERC7702", "1") {}␊ @@ -398,9 +398,9 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract CustomAccountWithSignerERC7702ERC1271 is Account, IERC1271, SignerERC7702 {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -422,10 +422,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract CustomAccountWithSignerERC7702ERC7739 is Account, EIP712, ERC7739, SignerERC7702 {␊ constructor() EIP712("CustomAccount with SignerERC7702ERC7739", "1") {}␊ @@ -440,11 +440,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract CustomAccountWithSignerERC7702ERC721Holder is Account, EIP712, ERC7739, SignerERC7702, ERC721Holder {␊ constructor() EIP712("CustomAccount with SignerERC7702ERC721Holder", "1") {}␊ @@ -459,11 +459,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract CustomAccountWithSignerERC7702ERC1155Holder is Account, EIP712, ERC7739, SignerERC7702, ERC1155Holder {␊ constructor() EIP712("CustomAccount with SignerERC7702ERC1155Holder", "1") {}␊ @@ -478,12 +478,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract CustomAccountWithSignerERC7702ERC721HolderERC1155Holder is Account, EIP712, ERC7739, SignerERC7702, ERC721Holder, ERC1155Holder {␊ constructor()␊ @@ -500,11 +500,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, SignerERC7702, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -528,13 +528,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerERC7702 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -584,12 +584,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract MyAccount is Account, IERC1271, AccountERC7579, SignerERC7702 {␊ // The following functions are overrides required by Solidity.␊ @@ -634,13 +634,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, AccountERC7579, SignerERC7702 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -690,14 +690,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerERC7702} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol";␊ + import {SignerERC7702} from "@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol";␊ ␊ contract MyAccount is Account, EIP712, ERC7739, AccountERC7579Hooked, SignerERC7702 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -747,11 +747,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract CustomAccountWithSignerECDSA is Initializable, Account, EIP712, ERC7739, SignerECDSA {␊ constructor() EIP712("CustomAccount with SignerECDSA", "1") {}␊ @@ -770,10 +770,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract CustomAccountWithSignerECDSAERC1271 is Initializable, Account, IERC1271, SignerECDSA {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -799,11 +799,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract CustomAccountWithSignerECDSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerECDSA {␊ constructor() EIP712("CustomAccount with SignerECDSAERC7739", "1") {}␊ @@ -822,12 +822,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract CustomAccountWithSignerECDSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerECDSA, ERC721Holder {␊ constructor() EIP712("CustomAccount with SignerECDSAERC721Holder", "1") {}␊ @@ -846,12 +846,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract CustomAccountWithSignerECDSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSA, ERC1155Holder {␊ constructor() EIP712("CustomAccount with SignerECDSAERC1155Holder", "1") {}␊ @@ -870,13 +870,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract CustomAccountWithSignerECDSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerECDSA, ERC721Holder, ERC1155Holder {␊ constructor()␊ @@ -897,12 +897,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerECDSA, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -930,14 +930,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, SignerECDSA {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -991,13 +991,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.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/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579, SignerECDSA {␊ function initializeECDSA(address signer) public initializer {␊ @@ -1046,14 +1046,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, SignerECDSA {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1107,15 +1107,15 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerECDSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol";␊ + import {SignerECDSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Hooked, SignerECDSA {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1169,11 +1169,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract CustomAccountWithSignerP256 is Initializable, Account, EIP712, ERC7739, SignerP256 {␊ constructor() EIP712("CustomAccount with SignerP256", "1") {}␊ @@ -1192,10 +1192,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract CustomAccountWithSignerP256ERC1271 is Initializable, Account, IERC1271, SignerP256 {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -1221,11 +1221,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract CustomAccountWithSignerP256ERC7739 is Initializable, Account, EIP712, ERC7739, SignerP256 {␊ constructor() EIP712("CustomAccount with SignerP256ERC7739", "1") {}␊ @@ -1244,12 +1244,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract CustomAccountWithSignerP256ERC721Holder is Initializable, Account, EIP712, ERC7739, SignerP256, ERC721Holder {␊ constructor() EIP712("CustomAccount with SignerP256ERC721Holder", "1") {}␊ @@ -1268,12 +1268,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract CustomAccountWithSignerP256ERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerP256, ERC1155Holder {␊ constructor() EIP712("CustomAccount with SignerP256ERC1155Holder", "1") {}␊ @@ -1292,13 +1292,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract CustomAccountWithSignerP256ERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerP256, ERC721Holder, ERC1155Holder {␊ constructor()␊ @@ -1319,12 +1319,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerP256, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1352,14 +1352,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, SignerP256 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1413,13 +1413,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.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 {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579, SignerP256 {␊ function initializeP256(bytes32 qx, bytes32 qy) public initializer {␊ @@ -1468,14 +1468,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, SignerP256 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1529,15 +1529,15 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerP256} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol";␊ + import {SignerP256} from "@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Hooked, SignerP256 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1591,11 +1591,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract CustomAccountWithSignerRSA is Initializable, Account, EIP712, ERC7739, SignerRSA {␊ constructor() EIP712("CustomAccount with SignerRSA", "1") {}␊ @@ -1614,10 +1614,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract CustomAccountWithSignerRSAERC1271 is Initializable, Account, IERC1271, SignerRSA {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -1643,11 +1643,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract CustomAccountWithSignerRSAERC7739 is Initializable, Account, EIP712, ERC7739, SignerRSA {␊ constructor() EIP712("CustomAccount with SignerRSAERC7739", "1") {}␊ @@ -1666,12 +1666,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract CustomAccountWithSignerRSAERC721Holder is Initializable, Account, EIP712, ERC7739, SignerRSA, ERC721Holder {␊ constructor() EIP712("CustomAccount with SignerRSAERC721Holder", "1") {}␊ @@ -1690,12 +1690,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract CustomAccountWithSignerRSAERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerRSA, ERC1155Holder {␊ constructor() EIP712("CustomAccount with SignerRSAERC1155Holder", "1") {}␊ @@ -1714,13 +1714,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract CustomAccountWithSignerRSAERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, SignerRSA, ERC721Holder, ERC1155Holder {␊ constructor()␊ @@ -1741,12 +1741,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, SignerRSA, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1774,14 +1774,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, SignerRSA {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1835,13 +1835,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.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 {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579, SignerRSA {␊ function initializeRSA(bytes memory e, bytes memory n) public initializer {␊ @@ -1890,14 +1890,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, SignerRSA {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -1951,15 +1951,15 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ - import {SignerRSA} from "@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol";␊ + import {SignerRSA} from "@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Hooked, SignerRSA {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -2013,11 +2013,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract CustomAccountWithSignerMultisig is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913 {␊ constructor() EIP712("CustomAccount with SignerMultisig", "1") {}␊ @@ -2052,10 +2052,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC1271 is Initializable, Account, IERC1271, MultiSignerERC7913 {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2097,11 +2097,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC7739 is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913 {␊ constructor() EIP712("CustomAccount with SignerMultisigERC7739", "1") {}␊ @@ -2136,12 +2136,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC721Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913, ERC721Holder {␊ constructor() EIP712("CustomAccount with SignerMultisigERC721Holder", "1") {}␊ @@ -2176,12 +2176,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913, ERC1155Holder {␊ constructor() EIP712("CustomAccount with SignerMultisigERC1155Holder", "1") {}␊ @@ -2216,13 +2216,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract CustomAccountWithSignerMultisigERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913, ERC721Holder, ERC1155Holder {␊ constructor()␊ @@ -2259,12 +2259,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -2308,13 +2308,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, MultiSignerERC7913 {␊ @@ -2385,12 +2385,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579, MultiSignerERC7913 {␊ @@ -2456,13 +2456,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, MultiSignerERC7913 {␊ @@ -2533,14 +2533,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Hooked, MultiSignerERC7913 {␊ @@ -2611,11 +2611,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeighted is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Weighted {␊ constructor() EIP712("CustomAccount with SignerMultisigWeighted", "1") {}␊ @@ -2657,10 +2657,10 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC1271 is Initializable, Account, IERC1271, MultiSignerERC7913Weighted {␊ function isValidSignature(bytes32 hash, bytes calldata signature)␊ @@ -2709,11 +2709,11 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC7739 is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Weighted {␊ constructor()␊ @@ -2757,12 +2757,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC721Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Weighted, ERC721Holder {␊ constructor()␊ @@ -2806,12 +2806,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-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/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Weighted, ERC1155Holder {␊ constructor()␊ @@ -2855,13 +2855,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ import {ERC1155Holder} from "@openzeppelin/contracts/token/ERC1155/utils/ERC1155Holder.sol";␊ import {ERC721Holder} from "@openzeppelin/contracts/token/ERC721/utils/ERC721Holder.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract CustomAccountWithSignerMultisigWeightedERC721HolderERC1155Holder is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Weighted, ERC721Holder, ERC1155Holder {␊ constructor()␊ @@ -2905,12 +2905,12 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ - import {ERC7821} from "@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7821} from "@openzeppelin/community-contracts/account/extensions/ERC7821.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, MultiSignerERC7913Weighted, ERC7821 {␊ constructor() EIP712("MyAccount", "1") {}␊ @@ -2961,13 +2961,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, MultiSignerERC7913Weighted {␊ @@ -3029,7 +3030,7 @@ Generated by [AVA](https://avajs.dev). function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(MultiSignerERC7913Weighted, AbstractSigner, AccountERC7579)␊ + override(MultiSignerERC7913, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -3045,12 +3046,13 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {IERC1271} from "@openzeppelin/contracts/interfaces/IERC1271.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, IERC1271, AccountERC7579, MultiSignerERC7913Weighted {␊ @@ -3107,7 +3109,7 @@ Generated by [AVA](https://avajs.dev). function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(MultiSignerERC7913Weighted, AbstractSigner, AccountERC7579)␊ + override(MultiSignerERC7913, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -3123,13 +3125,14 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579, MultiSignerERC7913Weighted {␊ @@ -3191,7 +3194,7 @@ Generated by [AVA](https://avajs.dev). function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(MultiSignerERC7913Weighted, AbstractSigner, AccountERC7579)␊ + override(MultiSignerERC7913, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ @@ -3207,14 +3210,15 @@ Generated by [AVA](https://avajs.dev). // Compatible with OpenZeppelin Contracts ^5.0.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AbstractSigner} from "@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol";␊ - import {Account} from "@openzeppelin/community-contracts/contracts/account/Account.sol";␊ - import {AccountERC7579} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol";␊ - import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579Hooked.sol";␊ + import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ + import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ + import {AccountERC7579} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol";␊ + import {AccountERC7579Hooked} from "@openzeppelin/community-contracts/account/extensions/AccountERC7579Hooked.sol";␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ - import {ERC7739} from "@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol";␊ + import {ERC7739} from "@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ - import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ + import {MultiSignerERC7913} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol";␊ + import {MultiSignerERC7913Weighted} from "@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol";␊ import {PackedUserOperation} from "@openzeppelin/contracts/interfaces/draft-IERC4337.sol";␊ ␊ contract MyAccount is Initializable, Account, EIP712, ERC7739, AccountERC7579Hooked, MultiSignerERC7913Weighted {␊ @@ -3276,7 +3280,7 @@ Generated by [AVA](https://avajs.dev). function _rawSignatureValidation(bytes32 hash, bytes calldata signature)␊ internal␊ view␊ - override(MultiSignerERC7913Weighted, AbstractSigner, AccountERC7579)␊ + override(MultiSignerERC7913, AbstractSigner, AccountERC7579)␊ returns (bool)␊ {␊ return super._rawSignatureValidation(hash, signature);␊ diff --git a/packages/core/solidity/src/account.test.ts.snap b/packages/core/solidity/src/account.test.ts.snap index 7ed550bc2..4c410468d 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 be2164661..4001a19f1 100644 --- a/packages/core/solidity/src/account.ts +++ b/packages/core/solidity/src/account.ts @@ -4,7 +4,7 @@ import { defineFunctions } from './utils/define-functions'; import { printContract } from './print'; import { defaults as commonDefaults, withCommonDefaults, type CommonOptions } from './common-options'; import { setInfo } from './set-info'; -import { addSigner, signerFunctions, type SignerOptions } from './signer'; +import { addSigner, signerFunctions, signers, type SignerOptions } from './signer'; export const defaults: Required = { ...commonDefaults, @@ -76,7 +76,7 @@ function addParents(c: ContractBuilder, opts: AccountOptions): void { // Base c.addParent({ name: 'Account', - path: `@openzeppelin/community-contracts/contracts/account/Account.sol`, + path: `@openzeppelin/community-contracts/account/Account.sol`, }); c.addOverride({ name: 'Account' }, functions._validateUserOp); @@ -97,7 +97,7 @@ function addSignatureValidation(c: ContractBuilder, opts: AccountOptions) { case 'ERC7739': c.addParent({ name: 'ERC7739', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/ERC7739.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/ERC7739.sol', }); break; case 'ERC1271': @@ -139,7 +139,7 @@ function addBatchedExecution(c: ContractBuilder, opts: AccountOptions): void { if (!opts.batchedExecution || !!opts.ERC7579Modules) return; c.addParent({ name: 'ERC7821', - path: '@openzeppelin/community-contracts/contracts/account/extensions/ERC7821.sol', + path: '@openzeppelin/community-contracts/account/extensions/ERC7821.sol', }); c.addOverride({ name: 'ERC7821' }, functions._erc7821AuthorizedExecutor); c.setFunctionBody( @@ -152,12 +152,12 @@ function addERC7579Modules(c: ContractBuilder, opts: AccountOptions): void { if (!opts.ERC7579Modules) return; c.addParent({ name: opts.ERC7579Modules, - path: `@openzeppelin/community-contracts/contracts/account/extensions/${opts.ERC7579Modules}.sol`, + path: `@openzeppelin/community-contracts/account/extensions/${opts.ERC7579Modules}.sol`, }); if (opts.ERC7579Modules !== 'AccountERC7579') { c.addImportOnly({ name: 'AccountERC7579', - path: `@openzeppelin/community-contracts/contracts/account/extensions/AccountERC7579.sol`, + path: `@openzeppelin/community-contracts/account/extensions/AccountERC7579.sol`, }); } c.addOverride({ name: 'AccountERC7579' }, functions.isValidSignature); @@ -220,7 +220,7 @@ function overrideRawSignatureValidation(c: ContractBuilder, opts: AccountOptions if (opts.signer && opts.ERC7579Modules) { c.addImportOnly({ name: 'AbstractSigner', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/AbstractSigner.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol', }); c.addOverride({ name: 'AbstractSigner' }, signerFunctions._rawSignatureValidation); c.addOverride({ name: 'AccountERC7579' }, signerFunctions._rawSignatureValidation); @@ -233,6 +233,10 @@ function overrideRawSignatureValidation(c: ContractBuilder, opts: AccountOptions ], signerFunctions._rawSignatureValidation, ); + // Base override for `_rawSignatureValidation` given MultiSignerERC7913Weighted is MultiSignerERC7913 + if (opts.signer === 'MultisigWeighted') { + c.addImportOnly(signers.Multisig); + } } } diff --git a/packages/core/solidity/src/erc20.test.ts.md b/packages/core/solidity/src/erc20.test.ts.md index 2442176c0..41aa2e47e 100644 --- a/packages/core/solidity/src/erc20.test.ts.md +++ b/packages/core/solidity/src/erc20.test.ts.md @@ -528,7 +528,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -558,7 +558,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ @@ -590,7 +590,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -628,7 +628,7 @@ Generated by [AVA](https://avajs.dev). ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, AccessControl, ERC20Permit {␊ @@ -671,7 +671,7 @@ Generated by [AVA](https://avajs.dev). import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, AccessManaged, ERC20Permit {␊ @@ -699,7 +699,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -728,7 +728,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ @@ -763,7 +763,7 @@ Generated by [AVA](https://avajs.dev). ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit, AccessControl {␊ @@ -809,7 +809,7 @@ Generated by [AVA](https://avajs.dev). ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit, AccessManaged {␊ @@ -863,7 +863,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -896,7 +896,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -934,7 +934,7 @@ Generated by [AVA](https://avajs.dev). import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ import {ERC20FlashMint} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol";␊ import {ERC20Pausable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";␊ diff --git a/packages/core/solidity/src/erc20.test.ts.snap b/packages/core/solidity/src/erc20.test.ts.snap index 0c9d126cc..d99b1bc7b 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/erc20.ts b/packages/core/solidity/src/erc20.ts index 481a29a7b..e9abf7525 100644 --- a/packages/core/solidity/src/erc20.ts +++ b/packages/core/solidity/src/erc20.ts @@ -313,7 +313,7 @@ function addCrossChainBridging( ) { const ERC20Bridgeable = { name: 'ERC20Bridgeable', - path: `@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol`, + path: `@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol`, }; c.addParent(ERC20Bridgeable); diff --git a/packages/core/solidity/src/signer.ts b/packages/core/solidity/src/signer.ts index 362465442..b5441e6f0 100644 --- a/packages/core/solidity/src/signer.ts +++ b/packages/core/solidity/src/signer.ts @@ -6,9 +6,13 @@ export type SignerOptions = (typeof SignerOptions)[number]; export function addSigner(c: ContractBuilder, signer: SignerOptions): void { if (!signer) return; - const parent = parents[signer]; + const parent = signers[signer]; + const name = parent.name; c.addParent(parent); - c.addOverride({ name: parent.name }, signerFunctions._rawSignatureValidation); + c.addOverride( + { name: name === signers.MultisigWeighted.name ? signers.Multisig.name : name }, + signerFunctions._rawSignatureValidation, + ); // ERC-7702 doesn't require initialization if (signer === 'ERC7702') return; @@ -45,30 +49,30 @@ export function addSigner(c: ContractBuilder, signer: SignerOptions): void { } } -const parents = { +export const signers = { ERC7702: { name: 'SignerERC7702', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/SignerERC7702.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/SignerERC7702.sol', }, ECDSA: { name: 'SignerECDSA', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/SignerECDSA.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/SignerECDSA.sol', }, P256: { name: 'SignerP256', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/SignerP256.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/SignerP256.sol', }, RSA: { name: 'SignerRSA', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/SignerRSA.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/SignerRSA.sol', }, Multisig: { name: 'MultiSignerERC7913', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913.sol', }, MultisigWeighted: { name: 'MultiSignerERC7913Weighted', - path: '@openzeppelin/community-contracts/contracts/utils/cryptography/MultiSignerERC7913Weighted.sol', + path: '@openzeppelin/community-contracts/utils/cryptography/MultiSignerERC7913Weighted.sol', }, }; diff --git a/packages/core/solidity/src/stablecoin.test.ts.md b/packages/core/solidity/src/stablecoin.test.ts.md index 8bc197ccb..d0b292ea5 100644 --- a/packages/core/solidity/src/stablecoin.test.ts.md +++ b/packages/core/solidity/src/stablecoin.test.ts.md @@ -331,7 +331,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Custodian} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Custodian.sol";␊ + import {ERC20Custodian} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Custodian.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ @@ -366,7 +366,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Allowlist} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Allowlist.sol";␊ + import {ERC20Allowlist} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Allowlist.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ @@ -412,7 +412,7 @@ Generated by [AVA](https://avajs.dev). pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Blocklist} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Blocklist.sol";␊ + import {ERC20Blocklist} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Blocklist.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ @@ -594,10 +594,10 @@ Generated by [AVA](https://avajs.dev). import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Allowlist} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Allowlist.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Allowlist} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Allowlist.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ - import {ERC20Custodian} from "@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Custodian.sol";␊ + import {ERC20Custodian} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Custodian.sol";␊ import {ERC20FlashMint} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol";␊ import {ERC20Pausable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ diff --git a/packages/core/solidity/src/stablecoin.test.ts.snap b/packages/core/solidity/src/stablecoin.test.ts.snap index d32ab6d78..02308f8db 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/stablecoin.ts b/packages/core/solidity/src/stablecoin.ts index 7510d6755..8d1134989 100644 --- a/packages/core/solidity/src/stablecoin.ts +++ b/packages/core/solidity/src/stablecoin.ts @@ -65,7 +65,7 @@ function addLimitations(c: ContractBuilder, access: Access, mode: boolean | 'all const type = mode === 'allowlist'; const ERC20Limitation = { name: type ? 'ERC20Allowlist' : 'ERC20Blocklist', - path: `@openzeppelin/community-contracts/contracts/token/ERC20/extensions/${type ? 'ERC20Allowlist' : 'ERC20Blocklist'}.sol`, + path: `@openzeppelin/community-contracts/token/ERC20/extensions/${type ? 'ERC20Allowlist' : 'ERC20Blocklist'}.sol`, }; c.addParent(ERC20Limitation); @@ -86,7 +86,7 @@ function addLimitations(c: ContractBuilder, access: Access, mode: boolean | 'all function addCustodian(c: ContractBuilder, access: Access) { const ERC20Custodian = { name: 'ERC20Custodian', - path: '@openzeppelin/community-contracts/contracts/token/ERC20/extensions/ERC20Custodian.sol', + path: '@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Custodian.sol', }; c.addParent(ERC20Custodian); diff --git a/packages/core/solidity/src/test.ts b/packages/core/solidity/src/test.ts index 6b3e06be8..34370cfd8 100644 --- a/packages/core/solidity/src/test.ts +++ b/packages/core/solidity/src/test.ts @@ -30,6 +30,10 @@ test.serial('stablecoin result compiles', async t => { await testCompile(t, 'Stablecoin'); }); +test.serial('account result compiles', async t => { + await testCompile(t, 'Account'); +}); + test.serial('governor result compiles', async t => { await testCompile(t, 'Governor'); }); diff --git a/packages/ui/src/solidity/inject-hyperlinks.ts b/packages/ui/src/solidity/inject-hyperlinks.ts index d8ae1ef13..906b4a6ea 100644 --- a/packages/ui/src/solidity/inject-hyperlinks.ts +++ b/packages/ui/src/solidity/inject-hyperlinks.ts @@ -4,8 +4,7 @@ export function injectHyperlinks(code: string) { // We are modifying HTML, so use HTML escaped chars. The pattern excludes paths that include /../ in the URL. const contractsRegex = /"(@openzeppelin\/)(contracts-upgradeable\/|contracts\/)((?:(?!\.\.)[^/]+\/)*?[^/]*?)"/g; - const communityContractsRegex = - /"(@openzeppelin\/)(community-contracts\/contracts\/)((?:(?!\.\.)[^/]+\/)*?[^/]*?)"/g; + const communityContractsRegex = /"(@openzeppelin\/)(community-contracts\/)((?:(?!\.\.)[^/]+\/)*?[^/]*?)"/g; return code .replace(