diff --git a/.changeset/ninety-ears-slide.md b/.changeset/ninety-ears-slide.md new file mode 100644 index 000000000..7a1e673ef --- /dev/null +++ b/.changeset/ninety-ears-slide.md @@ -0,0 +1,5 @@ +--- +'@openzeppelin/wizard-common': patch +--- + +Solidity `erc20`, `stablecoin`, `realWorldAsset`: Support 'erc7786native' option for `crossChainBridging`. \ No newline at end of file diff --git a/.changeset/sad-cases-yawn.md b/.changeset/sad-cases-yawn.md new file mode 100644 index 000000000..2ce193e67 --- /dev/null +++ b/.changeset/sad-cases-yawn.md @@ -0,0 +1,8 @@ +--- +'@openzeppelin/wizard': patch +'@openzeppelin/contracts-mcp': patch +--- + +Solidity `erc20`, `stablecoin`, `realWorldAsset`: Support 'erc7786native' option for `crossChainBridging`. +- Uses OpenZeppelin Contracts 5.6.0-rc.0 +- **Breaking changes**: Solidity `erc20`, `stablecoin`, `realWorldAsset`: 'custom' option for `crossChainBridging` now requires access control, and adds a function to allow updating the token bridge address after deployment. Constructor/initializer parameter order changed due to access control requirement. \ No newline at end of file diff --git a/packages/common/src/ai/descriptions/solidity.ts b/packages/common/src/ai/descriptions/solidity.ts index ab9b5c5ae..3940b6b67 100644 --- a/packages/common/src/ai/descriptions/solidity.ts +++ b/packages/common/src/ai/descriptions/solidity.ts @@ -31,7 +31,9 @@ export const solidityERC20Descriptions = { flashmint: "Whether to include built-in flash loans to allow lending tokens without requiring collateral as long as they're returned in the same transaction.", crossChainBridging: - 'Whether to allow authorized bridge contracts to mint and burn tokens for cross-chain transfers. Options are to use custom bridges on any chain, or the SuperchainERC20 standard with the predeployed SuperchainTokenBridge. The SuperchainERC20 feature is only available on chains in the Superchain, and requires deploying your contract to the same address on every chain in the Superchain.', + 'Whether to allow authorized bridge contracts to mint and burn tokens for cross-chain transfers. Options are to use custom bridges on any chain, to embed an ERC-7786 based bridge directly in the token contract, or to use the SuperchainERC20 standard with the predeployed SuperchainTokenBridge. The SuperchainERC20 feature is only available on chains in the Superchain, and requires deploying your contract to the same address on every chain in the Superchain.', + crossChainLinkAllowOverride: + 'Whether to allow replacing a crosschain link that has already been registered. Only used if crossChainBridging is set to "erc7786native".', premintChainId: 'The chain ID of the network on which to premint tokens.', callback: 'Whether to include support for code execution after transfers and approvals on recipient contracts in a single transaction.', diff --git a/packages/core/solidity/hardhat.config.js b/packages/core/solidity/hardhat.config.js index 2ef5c7125..5c320d9b3 100644 --- a/packages/core/solidity/hardhat.config.js +++ b/packages/core/solidity/hardhat.config.js @@ -66,6 +66,7 @@ module.exports = { enabled: true, runs: 200, }, + viaIR: true, }, }, }; diff --git a/packages/core/solidity/package.json b/packages/core/solidity/package.json index b127f5647..ce09093b0 100644 --- a/packages/core/solidity/package.json +++ b/packages/core/solidity/package.json @@ -16,20 +16,20 @@ "!**/*.test.*" ], "scripts": { - "prepare": "tsc && node dist/scripts/prepare.js", "prepublish": "rimraf dist *.tsbuildinfo && hardhat clean", "test": "ava", "test:update-snapshots": "ava --update-snapshots", "test:watch": "ava --watch", - "update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable" + "update-env": "rm ./src/environments/hardhat/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat && rm ./src/environments/hardhat/upgradeable/package-lock.json && npm install --package-lock-only --prefix ./src/environments/hardhat/upgradeable", + "prepare": "tsc && node dist/scripts/prepare.js" }, "dependencies": { "ethereum-cryptography": "^3.2.0" }, "devDependencies": { "@openzeppelin/community-contracts": "git+https://github.com/OpenZeppelin/openzeppelin-community-contracts.git#b0ddd27", - "@openzeppelin/contracts": "^5.5.0", - "@openzeppelin/contracts-upgradeable": "^5.5.0", + "@openzeppelin/contracts": "^5.6.0-rc.0", + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0", "@types/node": "^20.0.0", "@types/semver": "^7.5.7", "ava": "^6.0.0", @@ -41,4 +41,4 @@ "ts-node": "^10.4.0", "typescript": "^5.0.0" } -} +} \ No newline at end of file diff --git a/packages/core/solidity/src/account.test.ts.md b/packages/core/solidity/src/account.test.ts.md index 3c33b3548..4fac30ba4 100644 --- a/packages/core/solidity/src/account.test.ts.md +++ b/packages/core/solidity/src/account.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -36,7 +36,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -69,7 +69,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -96,7 +96,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -124,7 +124,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -152,7 +152,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -181,7 +181,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -218,7 +218,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -264,7 +264,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -304,7 +304,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -350,7 +350,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -397,7 +397,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -435,7 +435,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -481,7 +481,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -519,7 +519,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -558,7 +558,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -597,7 +597,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -637,7 +637,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -685,7 +685,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -747,7 +747,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -805,7 +805,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -867,7 +867,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -930,7 +930,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -961,7 +961,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1000,7 +1000,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1031,7 +1031,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1063,7 +1063,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1095,7 +1095,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1128,7 +1128,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1169,7 +1169,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1224,7 +1224,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1275,7 +1275,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1330,7 +1330,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1386,7 +1386,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1407,7 +1407,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1433,7 +1433,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1454,7 +1454,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1476,7 +1476,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1498,7 +1498,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1521,7 +1521,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1549,7 +1549,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1605,7 +1605,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1657,7 +1657,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1713,7 +1713,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -1770,7 +1770,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1803,7 +1803,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1844,7 +1844,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1877,7 +1877,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1911,7 +1911,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1945,7 +1945,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1982,7 +1982,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2025,7 +2025,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2097,7 +2097,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2165,7 +2165,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2237,7 +2237,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2310,7 +2310,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2336,7 +2336,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2370,7 +2370,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2396,7 +2396,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2423,7 +2423,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2450,7 +2450,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2480,7 +2480,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2516,7 +2516,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2581,7 +2581,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2642,7 +2642,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2707,7 +2707,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2773,7 +2773,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2791,7 +2791,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2815,7 +2815,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2833,7 +2833,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2852,7 +2852,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2871,7 +2871,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2893,7 +2893,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -2921,7 +2921,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -2977,7 +2977,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3027,7 +3027,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3083,7 +3083,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3140,7 +3140,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3173,7 +3173,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3213,7 +3213,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3246,7 +3246,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3280,7 +3280,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3314,7 +3314,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3349,7 +3349,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3392,7 +3392,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3463,7 +3463,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3529,7 +3529,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3600,7 +3600,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -3672,7 +3672,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3720,7 +3720,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3776,7 +3776,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3824,7 +3824,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3873,7 +3873,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3922,7 +3922,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -3974,7 +3974,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4032,7 +4032,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4119,7 +4119,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4202,7 +4202,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4289,7 +4289,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4377,7 +4377,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4418,7 +4418,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4467,7 +4467,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4508,7 +4508,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4550,7 +4550,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4592,7 +4592,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4637,7 +4637,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -4688,7 +4688,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4768,7 +4768,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4844,7 +4844,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -4924,7 +4924,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5005,7 +5005,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5045,7 +5045,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5092,7 +5092,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5132,7 +5132,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5173,7 +5173,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5214,7 +5214,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5256,7 +5256,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5306,7 +5306,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5385,7 +5385,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5459,7 +5459,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5538,7 +5538,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -5618,7 +5618,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5673,7 +5673,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5736,7 +5736,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5793,7 +5793,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5851,7 +5851,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5909,7 +5909,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -5968,7 +5968,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6033,7 +6033,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6128,7 +6128,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6219,7 +6219,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6314,7 +6314,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6410,7 +6410,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6458,7 +6458,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6514,7 +6514,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6564,7 +6564,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6615,7 +6615,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6666,7 +6666,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6718,7 +6718,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -6776,7 +6776,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6864,7 +6864,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -6948,7 +6948,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7036,7 +7036,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7125,7 +7125,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7146,7 +7146,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7172,7 +7172,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7193,7 +7193,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7215,7 +7215,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7237,7 +7237,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7260,7 +7260,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7291,7 +7291,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7350,7 +7350,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7402,7 +7402,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7461,7 +7461,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7521,7 +7521,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7554,7 +7554,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7595,7 +7595,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7628,7 +7628,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7662,7 +7662,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7696,7 +7696,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7733,7 +7733,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -7776,7 +7776,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7848,7 +7848,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7916,7 +7916,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -7988,7 +7988,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8061,7 +8061,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8087,7 +8087,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8121,7 +8121,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8147,7 +8147,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8174,7 +8174,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8201,7 +8201,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8231,7 +8231,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8267,7 +8267,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8332,7 +8332,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8393,7 +8393,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8458,7 +8458,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8524,7 +8524,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8545,7 +8545,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8571,7 +8571,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8592,7 +8592,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8614,7 +8614,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8636,7 +8636,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8659,7 +8659,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8690,7 +8690,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8749,7 +8749,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8801,7 +8801,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8860,7 +8860,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -8920,7 +8920,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8953,7 +8953,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -8994,7 +8994,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9027,7 +9027,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9061,7 +9061,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9095,7 +9095,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9132,7 +9132,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9175,7 +9175,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9247,7 +9247,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9315,7 +9315,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9387,7 +9387,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9460,7 +9460,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9486,7 +9486,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9520,7 +9520,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9546,7 +9546,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9573,7 +9573,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9600,7 +9600,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9630,7 +9630,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -9666,7 +9666,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9731,7 +9731,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9792,7 +9792,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9857,7 +9857,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9923,7 +9923,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9957,7 +9957,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -9996,7 +9996,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10030,7 +10030,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10065,7 +10065,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10100,7 +10100,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10136,7 +10136,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10180,7 +10180,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10240,7 +10240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10293,7 +10293,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10353,7 +10353,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10414,7 +10414,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10461,7 +10461,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10516,7 +10516,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10563,7 +10563,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10611,7 +10611,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10659,7 +10659,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10710,7 +10710,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10767,7 +10767,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10841,7 +10841,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10911,7 +10911,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -10985,7 +10985,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11060,7 +11060,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11100,7 +11100,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11148,7 +11148,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11188,7 +11188,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11229,7 +11229,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11270,7 +11270,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11314,7 +11314,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11364,7 +11364,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11431,7 +11431,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11494,7 +11494,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ @@ -11561,7 +11561,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/contracts/utils/cryptography/signers/AbstractSigner.sol";␊ diff --git a/packages/core/solidity/src/account.test.ts.snap b/packages/core/solidity/src/account.test.ts.snap index c3a0f6d55..7e05a48ba 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/custom.test.ts.md b/packages/core/solidity/src/custom.test.ts.md index 2b1cbfabd..3358d1799 100644 --- a/packages/core/solidity/src/custom.test.ts.md +++ b/packages/core/solidity/src/custom.test.ts.md @@ -33,7 +33,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -57,7 +57,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ @@ -75,7 +75,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ @@ -117,7 +117,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -132,7 +132,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -149,7 +149,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -164,7 +164,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ diff --git a/packages/core/solidity/src/custom.test.ts.snap b/packages/core/solidity/src/custom.test.ts.snap index 49ad9558e..8551c2fe3 100644 Binary files a/packages/core/solidity/src/custom.test.ts.snap and b/packages/core/solidity/src/custom.test.ts.snap differ diff --git a/packages/core/solidity/src/environments/hardhat/package-lock.json b/packages/core/solidity/src/environments/hardhat/package-lock.json index 1d1a067fa..af992c51d 100644 --- a/packages/core/solidity/src/environments/hardhat/package-lock.json +++ b/packages/core/solidity/src/environments/hardhat/package-lock.json @@ -10,7 +10,7 @@ "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "@openzeppelin/contracts": "^5.5.0", + "@openzeppelin/contracts": "^5.6.0-rc.0", "hardhat": "^2.22.0" } }, @@ -1219,9 +1219,9 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz", - "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==", + "version": "5.6.0-rc.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.6.0-rc.0.tgz", + "integrity": "sha512-BHah0nkj+WBnLQulvcTkDSM+LJYBUuK4vwGRXGiNvivILb+FNPQJKeNyuw0OkY0AyYwKHycZprNsgC4ci5BDTg==", "dev": true, "license": "MIT" }, diff --git a/packages/core/solidity/src/environments/hardhat/package.json b/packages/core/solidity/src/environments/hardhat/package.json index e8f6a2706..15e34d24b 100644 --- a/packages/core/solidity/src/environments/hardhat/package.json +++ b/packages/core/solidity/src/environments/hardhat/package.json @@ -10,7 +10,7 @@ "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "@openzeppelin/contracts": "^5.5.0", + "@openzeppelin/contracts": "^5.6.0-rc.0", "hardhat": "^2.22.0" } } \ No newline at end of file diff --git a/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json b/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json index 61aebc4c2..4b81b7215 100644 --- a/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json +++ b/packages/core/solidity/src/environments/hardhat/upgradeable/package-lock.json @@ -10,8 +10,8 @@ "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "@openzeppelin/contracts": "^5.5.0", - "@openzeppelin/contracts-upgradeable": "^5.5.0", + "@openzeppelin/contracts": "^5.6.0-rc.0", + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0", "@openzeppelin/hardhat-upgrades": "^3.0.0", "hardhat": "^2.22.0" } @@ -1924,20 +1924,20 @@ } }, "node_modules/@openzeppelin/contracts": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.5.0.tgz", - "integrity": "sha512-R8hq4zmKKWP2c7OxeRgAcjZwvF5W0Qq2OIX7degrtdM52Q9xYr4MLJdUAVPKGUewNJ1qo+M6YiZLLnNUnjP/gg==", + "version": "5.6.0-rc.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts/-/contracts-5.6.0-rc.0.tgz", + "integrity": "sha512-BHah0nkj+WBnLQulvcTkDSM+LJYBUuK4vwGRXGiNvivILb+FNPQJKeNyuw0OkY0AyYwKHycZprNsgC4ci5BDTg==", "dev": true, "license": "MIT" }, "node_modules/@openzeppelin/contracts-upgradeable": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.5.0.tgz", - "integrity": "sha512-Va5hKG5oaK0EE5bXTVWugcGimMHazxL+SL523dH6WVbGiuLXwuWr9oxtLyPHQSVGtgmlIgtKNR5V+OUpCIUwFQ==", + "version": "5.6.0-rc.0", + "resolved": "https://registry.npmjs.org/@openzeppelin/contracts-upgradeable/-/contracts-upgradeable-5.6.0-rc.0.tgz", + "integrity": "sha512-vY8myFBM8dhZeujvBG7FyRT6kK5SztyrqIdqQbSZpo+gvQyG4i03NMsb//Cvdkxs5lJQcJ1f58HrswGqIa6XHg==", "dev": true, "license": "MIT", "peerDependencies": { - "@openzeppelin/contracts": "5.5.0" + "@openzeppelin/contracts": "5.6.0-rc.0" } }, "node_modules/@openzeppelin/defender-sdk-base-client": { diff --git a/packages/core/solidity/src/environments/hardhat/upgradeable/package.json b/packages/core/solidity/src/environments/hardhat/upgradeable/package.json index da79327fe..7402f6669 100644 --- a/packages/core/solidity/src/environments/hardhat/upgradeable/package.json +++ b/packages/core/solidity/src/environments/hardhat/upgradeable/package.json @@ -10,8 +10,8 @@ "license": "ISC", "devDependencies": { "@nomicfoundation/hardhat-toolbox": "^6.1.0", - "@openzeppelin/contracts": "^5.5.0", - "@openzeppelin/contracts-upgradeable": "^5.5.0", + "@openzeppelin/contracts": "^5.6.0-rc.0", + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0", "@openzeppelin/hardhat-upgrades": "^3.0.0", "hardhat": "^2.22.0" } diff --git a/packages/core/solidity/src/erc1155.test.ts.md b/packages/core/solidity/src/erc1155.test.ts.md index b2a6a9e62..a3cec2268 100644 --- a/packages/core/solidity/src/erc1155.test.ts.md +++ b/packages/core/solidity/src/erc1155.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -32,7 +32,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -55,7 +55,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -92,7 +92,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -115,7 +115,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -132,7 +132,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -156,7 +156,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -197,7 +197,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -234,7 +234,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -287,7 +287,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -324,7 +324,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -357,7 +357,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -441,7 +441,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -534,7 +534,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ diff --git a/packages/core/solidity/src/erc1155.test.ts.snap b/packages/core/solidity/src/erc1155.test.ts.snap index b3d7d8ad0..33514cc3f 100644 Binary files a/packages/core/solidity/src/erc1155.test.ts.snap and b/packages/core/solidity/src/erc1155.test.ts.snap differ diff --git a/packages/core/solidity/src/erc20.test.ts b/packages/core/solidity/src/erc20.test.ts index 41b3d0763..07cfb219e 100644 --- a/packages/core/solidity/src/erc20.test.ts +++ b/packages/core/solidity/src/erc20.test.ts @@ -168,6 +168,42 @@ testERC20('erc20 crossChainBridging custom managed', { access: 'managed', }); +testERC20('erc20 crossChainBridging erc7786native', { + crossChainBridging: 'erc7786native', +}); + +testERC20('erc20 crossChainBridging erc7786native allowOverride', { + crossChainBridging: 'erc7786native', + crossChainLinkAllowOverride: true, +}); + +testERC20('erc20 crossChainBridging erc7786native ownable', { + crossChainBridging: 'erc7786native', + access: 'ownable', +}); + +testERC20('erc20 crossChainBridging erc7786native ownable mintable burnable', { + crossChainBridging: 'erc7786native', + access: 'ownable', + mintable: true, + burnable: true, +}); + +testERC20('erc20 crossChainBridging erc7786native roles', { + crossChainBridging: 'erc7786native', + access: 'roles', +}); + +testERC20('erc20 crossChainBridging erc7786native managed', { + crossChainBridging: 'erc7786native', + access: 'managed', +}); + +testERC20('erc20 crossChainBridging erc7786native upgradeable', { + crossChainBridging: 'erc7786native', + upgradeable: 'transparent', +}); + testERC20('erc20 crossChainBridging superchain', { crossChainBridging: 'superchain', }); diff --git a/packages/core/solidity/src/erc20.test.ts.md b/packages/core/solidity/src/erc20.test.ts.md index b383936ca..80dcef1fe 100644 --- a/packages/core/solidity/src/erc20.test.ts.md +++ b/packages/core/solidity/src/erc20.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -25,7 +25,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -41,7 +41,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -58,7 +58,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -97,7 +97,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -140,7 +140,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -179,7 +179,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -219,7 +219,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -240,7 +240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -256,7 +256,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -277,7 +277,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -298,7 +298,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -319,7 +319,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -344,7 +344,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -373,7 +373,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ @@ -390,7 +390,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -406,7 +406,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -442,7 +442,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -478,7 +478,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -523,7 +523,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -540,19 +540,21 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ - contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ + contract MyToken is ERC20, ERC20Bridgeable, Ownable, ERC20Permit {␊ address public tokenBridge;␊ error Unauthorized();␊ ␊ - constructor(address tokenBridge_)␊ + constructor(address tokenBridge_, address initialOwner)␊ ERC20("MyToken", "MTK")␊ + Ownable(initialOwner)␊ ERC20Permit("MyToken")␊ {␊ require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ @@ -562,6 +564,11 @@ Generated by [AVA](https://avajs.dev). function _checkTokenBridge(address caller) internal view override {␊ if (caller != tokenBridge) revert Unauthorized();␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + tokenBridge = tokenBridge_;␊ + }␊ }␊ ` @@ -570,7 +577,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -578,14 +585,14 @@ Generated by [AVA](https://avajs.dev). import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ - contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit, Ownable {␊ + contract MyToken is ERC20, ERC20Bridgeable, Ownable, ERC20Permit {␊ address public tokenBridge;␊ error Unauthorized();␊ ␊ constructor(address tokenBridge_, address initialOwner)␊ ERC20("MyToken", "MTK")␊ - ERC20Permit("MyToken")␊ Ownable(initialOwner)␊ + ERC20Permit("MyToken")␊ {␊ require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ tokenBridge = tokenBridge_;␊ @@ -594,6 +601,11 @@ Generated by [AVA](https://avajs.dev). function _checkTokenBridge(address caller) internal view override {␊ if (caller != tokenBridge) revert Unauthorized();␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + tokenBridge = tokenBridge_;␊ + }␊ }␊ ` @@ -602,7 +614,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -611,7 +623,7 @@ Generated by [AVA](https://avajs.dev). import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ - contract MyToken is ERC20, ERC20Bridgeable, ERC20Burnable, Ownable, ERC20Permit {␊ + contract MyToken is ERC20, ERC20Bridgeable, Ownable, ERC20Burnable, ERC20Permit {␊ address public tokenBridge;␊ error Unauthorized();␊ ␊ @@ -627,6 +639,11 @@ Generated by [AVA](https://avajs.dev). function _checkTokenBridge(address caller) internal view override {␊ if (caller != tokenBridge) revert Unauthorized();␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + tokenBridge = tokenBridge_;␊ + }␊ ␊ function mint(address to, uint256 amount) public onlyOwner {␊ _mint(to, amount);␊ @@ -639,7 +656,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -681,7 +698,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -706,12 +723,230 @@ Generated by [AVA](https://avajs.dev). }␊ ` +## erc20 crossChainBridging erc7786native + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {CrosschainLinked} from "@openzeppelin/contracts/crosschain/CrosschainLinked.sol";␊ + import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ + import {ERC20Crosschain} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol";␊ + import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ + ␊ + contract MyToken is ERC20, ERC20Crosschain, Ownable, ERC20Permit {␊ + constructor(CrosschainLinked.Link[] memory links, address initialOwner)␊ + ERC20("MyToken", "MTK")␊ + CrosschainLinked(links)␊ + Ownable(initialOwner)␊ + ERC20Permit("MyToken")␊ + {}␊ + ␊ + function setLink(address gateway, bytes memory counterpart) public onlyOwner {␊ + _setLink(gateway, counterpart, false);␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging erc7786native allowOverride + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {CrosschainLinked} from "@openzeppelin/contracts/crosschain/CrosschainLinked.sol";␊ + import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ + import {ERC20Crosschain} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol";␊ + import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ + ␊ + contract MyToken is ERC20, ERC20Crosschain, Ownable, ERC20Permit {␊ + constructor(CrosschainLinked.Link[] memory links, address initialOwner)␊ + ERC20("MyToken", "MTK")␊ + CrosschainLinked(links)␊ + Ownable(initialOwner)␊ + ERC20Permit("MyToken")␊ + {}␊ + ␊ + function setLink(address gateway, bytes memory counterpart) public onlyOwner {␊ + _setLink(gateway, counterpart, true);␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging erc7786native ownable + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {CrosschainLinked} from "@openzeppelin/contracts/crosschain/CrosschainLinked.sol";␊ + import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ + import {ERC20Crosschain} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol";␊ + import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ + ␊ + contract MyToken is ERC20, ERC20Crosschain, Ownable, ERC20Permit {␊ + constructor(CrosschainLinked.Link[] memory links, address initialOwner)␊ + ERC20("MyToken", "MTK")␊ + CrosschainLinked(links)␊ + Ownable(initialOwner)␊ + ERC20Permit("MyToken")␊ + {}␊ + ␊ + function setLink(address gateway, bytes memory counterpart) public onlyOwner {␊ + _setLink(gateway, counterpart, false);␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging erc7786native ownable mintable burnable + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {CrosschainLinked} from "@openzeppelin/contracts/crosschain/CrosschainLinked.sol";␊ + import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ + import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ + import {ERC20Crosschain} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol";␊ + import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ + ␊ + contract MyToken is ERC20, ERC20Crosschain, Ownable, ERC20Burnable, ERC20Permit {␊ + constructor(CrosschainLinked.Link[] memory links, address initialOwner)␊ + ERC20("MyToken", "MTK")␊ + CrosschainLinked(links)␊ + Ownable(initialOwner)␊ + ERC20Permit("MyToken")␊ + {}␊ + ␊ + function setLink(address gateway, bytes memory counterpart) public onlyOwner {␊ + _setLink(gateway, counterpart, false);␊ + }␊ + ␊ + function mint(address to, uint256 amount) public onlyOwner {␊ + _mint(to, amount);␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging erc7786native roles + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ + import {CrosschainLinked} from "@openzeppelin/contracts/crosschain/CrosschainLinked.sol";␊ + import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ + import {ERC20Crosschain} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol";␊ + import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + ␊ + contract MyToken is ERC20, ERC20Crosschain, AccessControl, ERC20Permit {␊ + bytes32 public constant CROSSCHAIN_LINKER_ROLE = keccak256("CROSSCHAIN_LINKER_ROLE");␊ + ␊ + constructor(CrosschainLinked.Link[] memory links, address defaultAdmin, address crosschainLinker)␊ + ERC20("MyToken", "MTK")␊ + CrosschainLinked(links)␊ + ERC20Permit("MyToken")␊ + {␊ + _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ + _grantRole(CROSSCHAIN_LINKER_ROLE, crosschainLinker);␊ + }␊ + ␊ + function setLink(address gateway, bytes memory counterpart)␊ + public␊ + onlyRole(CROSSCHAIN_LINKER_ROLE)␊ + {␊ + _setLink(gateway, counterpart, false);␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging erc7786native managed + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ + import {CrosschainLinked} from "@openzeppelin/contracts/crosschain/CrosschainLinked.sol";␊ + import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ + import {ERC20Crosschain} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol";␊ + import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + ␊ + contract MyToken is ERC20, ERC20Crosschain, AccessManaged, ERC20Permit {␊ + constructor(CrosschainLinked.Link[] memory links, address initialAuthority)␊ + ERC20("MyToken", "MTK")␊ + CrosschainLinked(links)␊ + AccessManaged(initialAuthority)␊ + ERC20Permit("MyToken")␊ + {}␊ + ␊ + function setLink(address gateway, bytes memory counterpart) public restricted {␊ + _setLink(gateway, counterpart, false);␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging erc7786native upgradeable + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {CrosschainLinkedUpgradeable} from "@openzeppelin/contracts-upgradeable/crosschain/CrosschainLinkedUpgradeable.sol";␊ + import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ + import {ERC20CrosschainUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20CrosschainUpgradeable.sol";␊ + import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ + ␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20CrosschainUpgradeable, OwnableUpgradeable, ERC20PermitUpgradeable {␊ + /// @custom:oz-upgrades-unsafe-allow constructor␊ + constructor() {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(CrosschainLinked.Link[] memory links, address initialOwner)␊ + public␊ + initializer␊ + {␊ + __ERC20_init("MyToken", "MTK");␊ + __ERC20Crosschain_init();␊ + __CrosschainLinked_init(links);␊ + __Ownable_init(initialOwner);␊ + __ERC20Permit_init("MyToken");␊ + }␊ + ␊ + function setLink(address gateway, bytes memory counterpart) public onlyOwner {␊ + _setLink(gateway, counterpart, false);␊ + }␊ + }␊ + ` + ## erc20 crossChainBridging superchain > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -740,7 +975,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -774,7 +1009,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -820,7 +1055,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -854,15 +1089,16 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ import {ERC20BridgeableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol";␊ import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ + import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ ␊ - contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20PermitUpgradeable {␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, OwnableUpgradeable, ERC20PermitUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ struct MyTokenStorage {␊ address tokenBridge;␊ @@ -878,9 +1114,13 @@ Generated by [AVA](https://avajs.dev). _disableInitializers();␊ }␊ ␊ - function initialize(address tokenBridge_) public initializer {␊ + function initialize(address tokenBridge_, address initialOwner)␊ + public␊ + initializer␊ + {␊ __ERC20_init("MyToken", "MTK");␊ __ERC20Bridgeable_init();␊ + __Ownable_init(initialOwner);␊ __ERC20Permit_init("MyToken");␊ ␊ require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ @@ -896,6 +1136,12 @@ Generated by [AVA](https://avajs.dev). function _getMyTokenStorage() private pure returns (MyTokenStorage storage $) {␊ assembly { $.slot := MYTOKEN_STORAGE_LOCATION }␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + MyTokenStorage storage $ = _getMyTokenStorage();␊ + $.tokenBridge = tokenBridge_;␊ + }␊ }␊ ` @@ -904,7 +1150,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ @@ -943,7 +1189,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -964,19 +1210,21 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ + import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ ␊ - contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ + contract MyToken is ERC20, ERC20Bridgeable, Ownable, ERC20Permit {␊ address public tokenBridge;␊ error Unauthorized();␊ ␊ - constructor(address tokenBridge_, address recipient)␊ + constructor(address tokenBridge_, address initialOwner, address recipient)␊ ERC20("MyToken", "MTK")␊ + Ownable(initialOwner)␊ ERC20Permit("MyToken")␊ {␊ require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ @@ -989,6 +1237,11 @@ Generated by [AVA](https://avajs.dev). function _checkTokenBridge(address caller) internal view override {␊ if (caller != tokenBridge) revert Unauthorized();␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + tokenBridge = tokenBridge_;␊ + }␊ }␊ ` @@ -997,7 +1250,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -1033,7 +1286,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1141,7 +1394,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1229,7 +1482,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1326,7 +1579,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ diff --git a/packages/core/solidity/src/erc20.test.ts.snap b/packages/core/solidity/src/erc20.test.ts.snap index a99c9f791..150cea5da 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 173a5c384..996f61f3b 100644 --- a/packages/core/solidity/src/erc20.ts +++ b/packages/core/solidity/src/erc20.ts @@ -16,7 +16,7 @@ import { OptionsError } from './error'; import { toUint256, UINT256_MAX } from './utils/convert-strings'; import { setNamespacedStorage, toStorageStructInstantiation } from './set-namespaced-storage'; -export const crossChainBridgingOptions = [false, 'custom', 'superchain'] as const; +export const crossChainBridgingOptions = [false, 'custom', 'erc7786native', 'superchain'] as const; export type CrossChainBridging = (typeof crossChainBridgingOptions)[number]; export interface ERC20Options extends CommonOptions { @@ -36,6 +36,7 @@ export interface ERC20Options extends CommonOptions { votes?: boolean | ClockMode; flashmint?: boolean; crossChainBridging?: CrossChainBridging; + crossChainLinkAllowOverride?: boolean; namespacePrefix?: string; } @@ -53,6 +54,7 @@ export const defaults: Required = { votes: false, flashmint: false, crossChainBridging: false, + crossChainLinkAllowOverride: false, namespacePrefix: 'myProject', } as const; @@ -70,6 +72,7 @@ export function withDefaults(opts: ERC20Options): Required { votes: opts.votes ?? defaults.votes, flashmint: opts.flashmint ?? defaults.flashmint, crossChainBridging: opts.crossChainBridging ?? defaults.crossChainBridging, + crossChainLinkAllowOverride: opts.crossChainLinkAllowOverride ?? defaults.crossChainLinkAllowOverride, namespacePrefix: opts.namespacePrefix ?? defaults.namespacePrefix, }; } @@ -79,7 +82,13 @@ export function printERC20(opts: ERC20Options = defaults): string { } export function isAccessControlRequired(opts: Partial): boolean { - return opts.mintable || opts.pausable || opts.upgradeable === 'uups'; + return ( + opts.mintable || + opts.pausable || + opts.upgradeable === 'uups' || + opts.crossChainBridging === 'custom' || + opts.crossChainBridging === 'erc7786native' + ); } export function buildERC20(opts: ERC20Options): ContractBuilder { @@ -92,7 +101,14 @@ export function buildERC20(opts: ERC20Options): ContractBuilder { addBase(c, allOpts.name, allOpts.symbol); if (allOpts.crossChainBridging) { - addCrossChainBridging(c, allOpts.crossChainBridging, access, upgradeable, allOpts.namespacePrefix); + addCrossChainBridging( + c, + allOpts.crossChainBridging, + allOpts.crossChainLinkAllowOverride, + access, + upgradeable, + allOpts.namespacePrefix, + ); } if (allOpts.premint) { @@ -308,6 +324,40 @@ function addFlashMint(c: ContractBuilder) { } function addCrossChainBridging( + c: ContractBuilder, + crossChainBridging: 'custom' | 'erc7786native' | 'superchain', + crossChainLinkAllowOverride: boolean, + access: Access, + upgradeable: Upgradeable, + namespacePrefix: string, +) { + if (crossChainBridging === 'erc7786native') { + addERC20Crosschain(c, crossChainLinkAllowOverride, access); + } else { + addERC20Bridgeable(c, crossChainBridging, access, upgradeable, namespacePrefix); + } +} + +function addERC20Crosschain(c: ContractBuilder, crossChainLinkAllowOverride: boolean, access: Access) { + c.addParent({ + name: 'ERC20Crosschain', + path: '@openzeppelin/contracts/token/ERC20/extensions/ERC20Crosschain.sol', + }); + + c.addConstructionOnly( + { + name: 'CrosschainLinked', + path: '@openzeppelin/contracts/crosschain/CrosschainLinked.sol', + }, + [{ lit: 'links' }], + ); + c.addConstructorArgument({ type: 'CrosschainLinked.Link[] memory', name: 'links' }); + + requireAccessControl(c, functions.setLink, access, 'CROSSCHAIN_LINKER', 'crosschainLinker'); + c.addFunctionCode(`_setLink(gateway, counterpart, ${crossChainLinkAllowOverride});`, functions.setLink); +} + +function addERC20Bridgeable( c: ContractBuilder, crossChainBridging: 'custom' | 'superchain', access: Access, @@ -339,31 +389,57 @@ function addCrossChainBridging( } function addCustomBridging(c: ContractBuilder, access: Access, upgradeable: Upgradeable, namespacePrefix: string) { + if (access === false) { + access = 'ownable'; + } + switch (access) { - case false: case 'ownable': { if (!upgradeable) { + const LINES_CHECK_AND_SET_TOKEN_BRIDGE = [ + `require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`, + `tokenBridge = tokenBridge_;`, + ]; + + // Add variable and constructor logic using state variable const addedBridge = c.addStateVariable(`address public tokenBridge;`, false); if (addedBridge) { c.addConstructorArgument({ type: 'address', name: 'tokenBridge_' }); - c.addConstructorCode(`require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`); - c.addConstructorCode(`tokenBridge = tokenBridge_;`); + LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => { + c.addConstructorCode(line); + }); } c.setFunctionBody([`if (caller != tokenBridge) revert Unauthorized();`], functions._checkTokenBridge, 'view'); + + // Add bridge setter + requireAccessControl(c, functions.setTokenBridge, access, 'TOKEN_BRIDGE_SETTER', 'tokenBridgeSetter'); + LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => { + c.addFunctionCode(line, functions.setTokenBridge); + }); } else { + const LINES_CHECK_AND_SET_TOKEN_BRIDGE = [ + `require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`, + toStorageStructInstantiation(c.name), + '$.tokenBridge = tokenBridge_;', + ]; + + // Add variable and constructor logic using namespaced storage setNamespacedStorage(c, ['address tokenBridge;'], namespacePrefix); c.addConstructorArgument({ type: 'address', name: 'tokenBridge_' }); - c.addConstructorCode(`require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");`); - - c.addConstructorCode(toStorageStructInstantiation(c.name)); - c.addConstructorCode(`$.tokenBridge = tokenBridge_;`); + LINES_CHECK_AND_SET_TOKEN_BRIDGE.forEach(line => { + c.addConstructorCode(line); + }); c.setFunctionBody( [toStorageStructInstantiation(c.name), `if (caller != $.tokenBridge) revert Unauthorized();`], functions._checkTokenBridge, 'view', ); + + // Add bridge setter + requireAccessControl(c, functions.setTokenBridge, access, 'TOKEN_BRIDGE_SETTER', 'tokenBridgeSetter'); + c.setFunctionBody(LINES_CHECK_AND_SET_TOKEN_BRIDGE, functions.setTokenBridge); } break; } @@ -483,4 +559,17 @@ export const functions = defineFunctions({ kind: 'internal' as const, args: [{ name: 'caller', type: 'address' }], }, + + setTokenBridge: { + kind: 'public' as const, + args: [{ name: 'tokenBridge_', type: 'address' }], + }, + + setLink: { + kind: 'public' as const, + args: [ + { name: 'gateway', type: 'address' }, + { name: 'counterpart', type: 'bytes memory' }, + ], + }, }); diff --git a/packages/core/solidity/src/erc721.test.ts.md b/packages/core/solidity/src/erc721.test.ts.md index 6d590c069..8f61d3609 100644 --- a/packages/core/solidity/src/erc721.test.ts.md +++ b/packages/core/solidity/src/erc721.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -24,7 +24,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -39,7 +39,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -58,7 +58,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -100,7 +100,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -136,7 +136,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -184,7 +184,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -237,7 +237,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -253,7 +253,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -290,7 +290,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -328,7 +328,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -351,7 +351,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -387,7 +387,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -410,7 +410,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";␊ @@ -437,7 +437,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ @@ -471,7 +471,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ @@ -505,7 +505,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712} from "@openzeppelin/contracts/utils/cryptography/EIP712.sol";␊ @@ -548,7 +548,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -624,7 +624,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -693,7 +693,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -758,7 +758,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -831,7 +831,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -911,7 +911,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ @@ -991,7 +991,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ @@ -1086,7 +1086,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ diff --git a/packages/core/solidity/src/erc721.test.ts.snap b/packages/core/solidity/src/erc721.test.ts.snap index 87b359e83..a6dea3366 100644 Binary files a/packages/core/solidity/src/erc721.test.ts.snap and b/packages/core/solidity/src/erc721.test.ts.snap differ diff --git a/packages/core/solidity/src/generate/erc20.ts b/packages/core/solidity/src/generate/erc20.ts index cfdfcc711..1c6c7c82e 100644 --- a/packages/core/solidity/src/generate/erc20.ts +++ b/packages/core/solidity/src/generate/erc20.ts @@ -7,27 +7,48 @@ import { generateAlternatives } from './alternatives'; const booleans = [true, false]; -const blueprint = { +const blueprintWithoutBasicFeatures = { name: ['MyToken'], symbol: ['MTK'], - burnable: booleans, pausable: booleans, mintable: booleans, - callback: booleans, - permit: booleans, votes: [...booleans, ...clockModeOptions] as const, - flashmint: booleans, premint: ['1'], premintChainId: ['10'], crossChainBridging: crossChainBridgingOptions, + crossChainLinkAllowOverride: [false], access: accessOptions, upgradeable: upgradeableOptions, namespacePrefix: ['myProject'], info: infoOptions, }; +// Basic features that do not depend on other features like access control +const basicFeatures = { + OFF: { + burnable: [false], + callback: [false], + permit: [false], + flashmint: [false], + }, + ON: { + burnable: [true], + callback: [true], + permit: [true], + flashmint: [true], + }, +}; + export function* generateERC20Options(): Generator> { - for (const opts of generateAlternatives(blueprint)) { + // Separate generation steps with basic features OFF and ON to avoid having too many combinations + for (const opts of generateAlternatives({ ...blueprintWithoutBasicFeatures, ...basicFeatures.OFF })) { + // crossChainBridging does not currently support upgradeable + if (!(opts.crossChainBridging && opts.upgradeable)) { + yield opts; + } + } + + for (const opts of generateAlternatives({ ...blueprintWithoutBasicFeatures, ...basicFeatures.ON })) { // crossChainBridging does not currently support upgradeable if (!(opts.crossChainBridging && opts.upgradeable)) { yield opts; diff --git a/packages/core/solidity/src/generate/stablecoin.ts b/packages/core/solidity/src/generate/stablecoin.ts index 7557a6f1d..d62fea67b 100644 --- a/packages/core/solidity/src/generate/stablecoin.ts +++ b/packages/core/solidity/src/generate/stablecoin.ts @@ -19,6 +19,7 @@ const erc20Basic = { premint: ['1'], premintChainId: [''], crossChainBridging: [false] as const, + crossChainLinkAllowOverride: [false] as const, access: [false] as const, info: [{}] as const, namespacePrefix: ['myProject'], @@ -37,6 +38,7 @@ const erc20Full = { premint: ['1'], premintChainId: ['10'], crossChainBridging: crossChainBridgingOptions, + crossChainLinkAllowOverride: [true] as const, access: accessOptions, info: infoOptions, namespacePrefix: ['myProject'], diff --git a/packages/core/solidity/src/get-versioned-remappings.test.ts.md b/packages/core/solidity/src/get-versioned-remappings.test.ts.md index 7b098ad22..d3f10c670 100644 --- a/packages/core/solidity/src/get-versioned-remappings.test.ts.md +++ b/packages/core/solidity/src/get-versioned-remappings.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 [ - '@openzeppelin/contracts/=@openzeppelin/contracts@5.5.0/', + '@openzeppelin/contracts/=@openzeppelin/contracts@5.6.0-rc.0/', ] ## getVersionedRemappings upgradeable uups @@ -17,8 +17,8 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 [ - '@openzeppelin/contracts/=@openzeppelin/contracts@5.5.0/', - '@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.5.0/', + '@openzeppelin/contracts/=@openzeppelin/contracts@5.6.0-rc.0/', + '@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.6.0-rc.0/', ] ## getVersionedRemappings upgradeable transparent @@ -26,6 +26,6 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 [ - '@openzeppelin/contracts/=@openzeppelin/contracts@5.5.0/', - '@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.5.0/', + '@openzeppelin/contracts/=@openzeppelin/contracts@5.6.0-rc.0/', + '@openzeppelin/contracts-upgradeable/=@openzeppelin/contracts-upgradeable@5.6.0-rc.0/', ] diff --git a/packages/core/solidity/src/get-versioned-remappings.test.ts.snap b/packages/core/solidity/src/get-versioned-remappings.test.ts.snap index 061c1f517..54d73529f 100644 Binary files a/packages/core/solidity/src/get-versioned-remappings.test.ts.snap and b/packages/core/solidity/src/get-versioned-remappings.test.ts.snap differ diff --git a/packages/core/solidity/src/governor.test.ts.md b/packages/core/solidity/src/governor.test.ts.md index 8d95bb17e..dc90421e3 100644 --- a/packages/core/solidity/src/governor.test.ts.md +++ b/packages/core/solidity/src/governor.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -99,7 +99,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -185,7 +185,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -277,7 +277,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -369,7 +369,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -458,7 +458,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -553,7 +553,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -639,7 +639,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -725,7 +725,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -817,7 +817,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -906,7 +906,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -992,7 +992,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1082,7 +1082,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1168,7 +1168,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1254,7 +1254,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1343,7 +1343,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1429,7 +1429,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1518,7 +1518,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Governor} from "@openzeppelin/contracts/governance/Governor.sol";␊ @@ -1604,7 +1604,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {GovernorUpgradeable} from "@openzeppelin/contracts-upgradeable/governance/GovernorUpgradeable.sol";␊ diff --git a/packages/core/solidity/src/governor.test.ts.snap b/packages/core/solidity/src/governor.test.ts.snap index 3bf56f6d2..e2956d35c 100644 Binary files a/packages/core/solidity/src/governor.test.ts.snap and b/packages/core/solidity/src/governor.test.ts.snap differ diff --git a/packages/core/solidity/src/package.test.ts b/packages/core/solidity/src/package.test.ts index cb52125b0..3463e25bc 100644 --- a/packages/core/solidity/src/package.test.ts +++ b/packages/core/solidity/src/package.test.ts @@ -1,21 +1,32 @@ import test from 'ava'; import { exec } from 'child_process'; import { promisify } from 'util'; -import { mkdtemp, rm, writeFile } from 'fs/promises'; +import { mkdtemp, rm, writeFile, readFile } from 'fs/promises'; import { tmpdir } from 'os'; import { join } from 'path'; const execAsync = promisify(exec); async function packPackage(packageRoot: string): Promise { - const { stdout: packOutput } = await execAsync('npm pack', { cwd: packageRoot }); - // npm pack outputs the filename as the last line - const lines = packOutput.trim().split('\n'); - const packedFile = lines[lines.length - 1]?.trim(); - if (!packedFile) { - throw new Error('Failed to get packed filename from npm pack output'); + const packageJsonPath = join(packageRoot, 'package.json'); + const packageJson = JSON.parse(await readFile(packageJsonPath, 'utf8')); + // Temporarily remove prepare script to avoid running it during packing, since it's already a prerequisite for running this test + const originalPrepare = packageJson.scripts.prepare; + delete packageJson.scripts.prepare; + await writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2)); + try { + const { stdout: packOutput } = await execAsync('npm pack', { cwd: packageRoot }); + // npm pack outputs the filename as the last line + const lines = packOutput.trim().split('\n'); + const packedFile = lines[lines.length - 1]?.trim(); + if (!packedFile) { + throw new Error('Failed to get packed filename from npm pack output'); + } + return join(packageRoot, packedFile); + } finally { + packageJson.scripts.prepare = originalPrepare; + await writeFile(packageJsonPath, JSON.stringify(packageJson, null, 2)); } - return join(packageRoot, packedFile); } test('packed package can be installed and imported', async t => { diff --git a/packages/core/solidity/src/stablecoin.test.ts.md b/packages/core/solidity/src/stablecoin.test.ts.md index 638d42985..83abc1991 100644 --- a/packages/core/solidity/src/stablecoin.test.ts.md +++ b/packages/core/solidity/src/stablecoin.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -25,7 +25,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -42,7 +42,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -81,7 +81,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -124,7 +124,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -163,7 +163,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -203,7 +203,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -224,7 +224,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -240,7 +240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -265,7 +265,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -294,7 +294,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -319,7 +319,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ @@ -336,7 +336,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -352,7 +352,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -387,7 +387,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -430,7 +430,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -469,7 +469,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -505,7 +505,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -541,7 +541,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -586,7 +586,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -603,7 +603,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and Community Contracts commit b0ddd27␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and Community Contracts commit b0ddd27␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ diff --git a/packages/core/solidity/src/stablecoin.test.ts.snap b/packages/core/solidity/src/stablecoin.test.ts.snap index f790a3156..04114f3a2 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 6cb726c41..a329c884c 100644 --- a/packages/core/solidity/src/stablecoin.ts +++ b/packages/core/solidity/src/stablecoin.ts @@ -9,6 +9,7 @@ import { defaults as erc20defaults, withDefaults as withERC20Defaults, functions as erc20functions, + isAccessControlRequired as erc20isAccessControlRequired, } from './erc20'; export type Limitations = 'allowlist' | 'blocklist'; @@ -41,7 +42,7 @@ export function printStablecoin(opts: StablecoinOptions = defaults): string { } export function isAccessControlRequired(opts: Partial): boolean { - return opts.mintable || opts.restrictions !== false || opts.freezable || opts.pausable || opts.upgradeable === 'uups'; + return erc20isAccessControlRequired(opts) || !!opts.restrictions || !!opts.freezable; } export function buildStablecoin(opts: StablecoinOptions): Contract { diff --git a/packages/core/solidity/src/utils/version.ts b/packages/core/solidity/src/utils/version.ts index 6af24cfd6..4dab2ca4e 100644 --- a/packages/core/solidity/src/utils/version.ts +++ b/packages/core/solidity/src/utils/version.ts @@ -1,4 +1,4 @@ /** * Semantic version string representing of the minimum compatible version of Contracts to display in output. */ -export const compatibleContractsSemver = '^5.5.0'; +export const compatibleContractsSemver = '^5.6.0-rc.0'; diff --git a/packages/core/solidity/src/zip-foundry.test.ts.md b/packages/core/solidity/src/zip-foundry.test.ts.md index 9406e6291..a3a6c3dfc 100644 --- a/packages/core/solidity/src/zip-foundry.test.ts.md +++ b/packages/core/solidity/src/zip-foundry.test.ts.md @@ -37,7 +37,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts␊ - forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z-rc.0 --quiet␊ ␊ # Remove unneeded Foundry template files␊ rm src/Counter.sol␊ @@ -120,7 +120,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -234,7 +234,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts and Upgrades␊ - forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z-rc.0 --quiet␊ forge install OpenZeppelin/openzeppelin-foundry-upgrades --quiet␊ ␊ # Remove unneeded Foundry template files␊ @@ -316,11 +316,11 @@ Generated by [AVA](https://avajs.dev). /*␊ vm.startBroadcast();␊ address tokenBridge_ = ;␊ - address recipient = ;␊ address initialOwner = ;␊ + address recipient = ;␊ address proxy = Upgrades.deployUUPSProxy(␊ "MyToken.sol",␊ - abi.encodeCall(MyToken.initialize, (tokenBridge_, recipient, initialOwner))␊ + abi.encodeCall(MyToken.initialize, (tokenBridge_, initialOwner, recipient))␊ );␊ MyToken instance = MyToken(proxy);␊ console.log("Proxy deployed to %s", address(instance));␊ @@ -330,7 +330,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ @@ -345,7 +345,7 @@ Generated by [AVA](https://avajs.dev). import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, OwnableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, OwnableUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ struct MyTokenStorage {␊ address tokenBridge;␊ @@ -361,15 +361,15 @@ Generated by [AVA](https://avajs.dev). _disableInitializers();␊ }␊ ␊ - function initialize(address tokenBridge_, address recipient, address initialOwner)␊ + function initialize(address tokenBridge_, address initialOwner, address recipient)␊ public␊ initializer␊ {␊ __ERC20_init("My Token", "MTK");␊ __ERC20Bridgeable_init();␊ + __Ownable_init(initialOwner);␊ __ERC20Burnable_init();␊ __ERC20Pausable_init();␊ - __Ownable_init(initialOwner);␊ __ERC20Permit_init("My Token");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ @@ -390,6 +390,12 @@ Generated by [AVA](https://avajs.dev). function _getMyTokenStorage() private pure returns (MyTokenStorage storage $) {␊ assembly { $.slot := MYTOKEN_STORAGE_LOCATION }␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + MyTokenStorage storage $ = _getMyTokenStorage();␊ + $.tokenBridge = tokenBridge_;␊ + }␊ ␊ function pause() public onlyOwner {␊ _pause();␊ @@ -440,11 +446,11 @@ Generated by [AVA](https://avajs.dev). ␊ function setUp() public {␊ address tokenBridge_ = vm.addr(1);␊ - address recipient = vm.addr(2);␊ - address initialOwner = vm.addr(3);␊ + address initialOwner = vm.addr(2);␊ + address recipient = vm.addr(3);␊ address proxy = Upgrades.deployUUPSProxy(␊ "MyToken.sol",␊ - abi.encodeCall(MyToken.initialize, (tokenBridge_, recipient, initialOwner))␊ + abi.encodeCall(MyToken.initialize, (tokenBridge_, initialOwner, recipient))␊ );␊ instance = MyToken(proxy);␊ }␊ @@ -489,7 +495,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts and Upgrades␊ - forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z-rc.0 --quiet␊ forge install OpenZeppelin/openzeppelin-foundry-upgrades --quiet␊ ␊ # Remove unneeded Foundry template files␊ @@ -584,7 +590,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -677,7 +683,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts and Upgrades␊ - forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z-rc.0 --quiet␊ forge install OpenZeppelin/openzeppelin-foundry-upgrades --quiet␊ ␊ # Remove unneeded Foundry template files␊ @@ -771,7 +777,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ @@ -856,7 +862,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts␊ - forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z-rc.0 --quiet␊ ␊ # Remove unneeded Foundry template files␊ rm src/Counter.sol␊ @@ -936,7 +942,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -1007,7 +1013,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts and Upgrades␊ - forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z-rc.0 --quiet␊ forge install OpenZeppelin/openzeppelin-foundry-upgrades --quiet␊ ␊ # Remove unneeded Foundry template files␊ @@ -1102,7 +1108,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ @@ -1185,7 +1191,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts␊ - forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z-rc.0 --quiet␊ ␊ # Remove unneeded Foundry template files␊ rm src/Counter.sol␊ @@ -1265,7 +1271,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1333,7 +1339,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts and Upgrades␊ - forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z-rc.0 --quiet␊ forge install OpenZeppelin/openzeppelin-foundry-upgrades --quiet␊ ␊ # Remove unneeded Foundry template files␊ @@ -1430,7 +1436,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -1521,7 +1527,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts␊ - forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts@vX.Y.Z-rc.0 --quiet␊ ␊ # Remove unneeded Foundry template files␊ rm src/Counter.sol␊ @@ -1656,7 +1662,7 @@ Generated by [AVA](https://avajs.dev). forge init --force --quiet␊ ␊ # Install OpenZeppelin Contracts and Upgrades␊ - forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z --quiet␊ + forge install OpenZeppelin/openzeppelin-contracts-upgradeable@vX.Y.Z-rc.0 --quiet␊ forge install OpenZeppelin/openzeppelin-foundry-upgrades --quiet␊ ␊ # Remove unneeded Foundry template files␊ @@ -1752,7 +1758,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";␊ diff --git a/packages/core/solidity/src/zip-foundry.test.ts.snap b/packages/core/solidity/src/zip-foundry.test.ts.snap index be784713f..1fcdbbfdc 100644 Binary files a/packages/core/solidity/src/zip-foundry.test.ts.snap and b/packages/core/solidity/src/zip-foundry.test.ts.snap differ diff --git a/packages/core/solidity/src/zip-hardhat.test.ts.md b/packages/core/solidity/src/zip-hardhat.test.ts.md index 013cb77e2..7c21e0308 100644 --- a/packages/core/solidity/src/zip-hardhat.test.ts.md +++ b/packages/core/solidity/src/zip-hardhat.test.ts.md @@ -10,7 +10,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -97,7 +97,7 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ "hardhat": "^2.22.0"␊ }␊ }`, @@ -138,7 +138,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ @@ -153,7 +153,7 @@ Generated by [AVA](https://avajs.dev). import {OwnableUpgradeable} from "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol";␊ import {UUPSUpgradeable} from "@openzeppelin/contracts/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, OwnableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, OwnableUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ /// @custom:storage-location erc7201:myProject.MyToken␊ struct MyTokenStorage {␊ address tokenBridge;␊ @@ -169,15 +169,15 @@ Generated by [AVA](https://avajs.dev). _disableInitializers();␊ }␊ ␊ - function initialize(address tokenBridge_, address recipient, address initialOwner)␊ + function initialize(address tokenBridge_, address initialOwner, address recipient)␊ public␊ initializer␊ {␊ __ERC20_init("My Token", "MTK");␊ __ERC20Bridgeable_init();␊ + __Ownable_init(initialOwner);␊ __ERC20Burnable_init();␊ __ERC20Pausable_init();␊ - __Ownable_init(initialOwner);␊ __ERC20Permit_init("My Token");␊ __ERC20Votes_init();␊ __ERC20FlashMint_init();␊ @@ -198,6 +198,12 @@ Generated by [AVA](https://avajs.dev). function _getMyTokenStorage() private pure returns (MyTokenStorage storage $) {␊ assembly { $.slot := MYTOKEN_STORAGE_LOCATION }␊ }␊ + ␊ + function setTokenBridge(address tokenBridge_) public onlyOwner {␊ + require(tokenBridge_ != address(0), "Invalid tokenBridge_ address");␊ + MyTokenStorage storage $ = _getMyTokenStorage();␊ + $.tokenBridge = tokenBridge_;␊ + }␊ ␊ function pause() public onlyOwner {␊ _pause();␊ @@ -266,8 +272,8 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0",␊ "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "hardhat": "^2.22.0"␊ }␊ @@ -278,7 +284,7 @@ Generated by [AVA](https://avajs.dev). const ContractFactory = await ethers.getContractFactory("MyToken");␊ ␊ // TODO: Set addresses for the contract arguments below␊ - const instance = await upgrades.deployProxy(ContractFactory, [tokenBridge_, recipient, initialOwner]);␊ + const instance = await upgrades.deployProxy(ContractFactory, [tokenBridge_, initialOwner, recipient]);␊ await instance.waitForDeployment();␊ ␊ console.log(\`Proxy deployed to ${await instance.getAddress()}\`);␊ @@ -299,10 +305,10 @@ Generated by [AVA](https://avajs.dev). const ContractFactory = await ethers.getContractFactory("MyToken");␊ ␊ const tokenBridge_ = (await ethers.getSigners())[0].address;␊ - const recipient = (await ethers.getSigners())[1].address;␊ - const initialOwner = (await ethers.getSigners())[2].address;␊ + const initialOwner = (await ethers.getSigners())[1].address;␊ + const recipient = (await ethers.getSigners())[2].address;␊ ␊ - const instance = await upgrades.deployProxy(ContractFactory, [tokenBridge_, recipient, initialOwner]);␊ + const instance = await upgrades.deployProxy(ContractFactory, [tokenBridge_, initialOwner, recipient]);␊ await instance.waitForDeployment();␊ ␊ expect(await instance.name()).to.equal("My Token");␊ @@ -317,7 +323,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ @@ -373,8 +379,8 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0",␊ "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "hardhat": "^2.22.0"␊ }␊ @@ -422,7 +428,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -469,7 +475,7 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ "hardhat": "^2.22.0"␊ }␊ }`, @@ -507,7 +513,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -551,7 +557,7 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ "hardhat": "^2.22.0"␊ }␊ }`, @@ -587,7 +593,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/contracts/account/Account.sol";␊ @@ -646,8 +652,8 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0",␊ "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "hardhat": "^2.22.0"␊ }␊ @@ -729,7 +735,7 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ "hardhat": "^2.22.0"␊ }␊ }`, @@ -763,7 +769,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";␊ @@ -805,8 +811,8 @@ Generated by [AVA](https://avajs.dev). "license": "MIT",␊ "devDependencies": {␊ "@nomicfoundation/hardhat-toolbox": "^6.1.0",␊ - "@openzeppelin/contracts": "^5.5.0",␊ - "@openzeppelin/contracts-upgradeable": "^5.5.0",␊ + "@openzeppelin/contracts": "^5.6.0-rc.0",␊ + "@openzeppelin/contracts-upgradeable": "^5.6.0-rc.0",␊ "@openzeppelin/hardhat-upgrades": "^3.0.0",␊ "hardhat": "^2.22.0"␊ }␊ diff --git a/packages/core/solidity/src/zip-hardhat.test.ts.snap b/packages/core/solidity/src/zip-hardhat.test.ts.snap index 40e55eefa..a917ea4be 100644 Binary files a/packages/core/solidity/src/zip-hardhat.test.ts.snap and b/packages/core/solidity/src/zip-hardhat.test.ts.snap differ diff --git a/packages/core/uniswap-hooks/package.json b/packages/core/uniswap-hooks/package.json index 304b357ea..c96d45209 100644 --- a/packages/core/uniswap-hooks/package.json +++ b/packages/core/uniswap-hooks/package.json @@ -25,7 +25,7 @@ "@openzeppelin/wizard": "^0.10.4" }, "devDependencies": { - "@openzeppelin/contracts": "^5.5.0", + "@openzeppelin/contracts": "^5.6.0-rc.0", "@openzeppelin/uniswap-hooks": "^1.2.1", "@types/node": "^20.0.0", "@types/semver": "^7.5.7", diff --git a/packages/core/uniswap-hooks/src/hooks.test.ts.md b/packages/core/uniswap-hooks/src/hooks.test.ts.md index 7a19165f6..9086ee8ea 100644 --- a/packages/core/uniswap-hooks/src/hooks.test.ts.md +++ b/packages/core/uniswap-hooks/src/hooks.test.ts.md @@ -392,7 +392,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -436,7 +436,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -482,7 +482,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -527,7 +527,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -573,7 +573,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -618,7 +618,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -712,7 +712,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -793,7 +793,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -874,7 +874,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -1383,7 +1383,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -1456,7 +1456,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -1531,7 +1531,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -1605,7 +1605,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -1680,7 +1680,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -1754,7 +1754,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -1851,7 +1851,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -1925,7 +1925,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -1999,7 +1999,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseAsyncSwap} from "@openzeppelin/uniswap-hooks/base/BaseAsyncSwap.sol";␊ @@ -2070,7 +2070,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2168,7 +2168,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2275,7 +2275,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2389,7 +2389,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2528,7 +2528,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2630,7 +2630,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2731,7 +2731,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2834,7 +2834,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -2934,7 +2934,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -3035,7 +3035,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -3135,7 +3135,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3265,7 +3265,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3363,7 +3363,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3461,7 +3461,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3556,7 +3556,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3661,7 +3661,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3775,7 +3775,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -3905,7 +3905,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4051,7 +4051,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4160,7 +4160,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4268,7 +4268,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4378,7 +4378,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4485,7 +4485,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -4593,7 +4593,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -4700,7 +4700,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4846,7 +4846,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -4951,7 +4951,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -5056,7 +5056,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -5158,7 +5158,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -5260,7 +5260,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -5363,7 +5363,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -5457,7 +5457,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -5592,7 +5592,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -5698,7 +5698,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -5803,7 +5803,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -5910,7 +5910,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -6012,7 +6012,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -6118,7 +6118,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -6220,7 +6220,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -6335,7 +6335,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -6437,7 +6437,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -6539,7 +6539,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseDynamicFee} from "@openzeppelin/uniswap-hooks/fee/BaseDynamicFee.sol";␊ @@ -6640,7 +6640,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -6731,7 +6731,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -6815,7 +6815,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -6915,7 +6915,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -7039,7 +7039,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7134,7 +7134,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7228,7 +7228,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7324,7 +7324,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7417,7 +7417,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -7511,7 +7511,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -7604,7 +7604,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7719,7 +7719,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7810,7 +7810,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7901,7 +7901,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -7989,7 +7989,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8096,7 +8096,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8195,7 +8195,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8294,7 +8294,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8425,7 +8425,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8536,7 +8536,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8646,7 +8646,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8758,7 +8758,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -8867,7 +8867,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -8977,7 +8977,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -9086,7 +9086,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9217,7 +9217,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9324,7 +9324,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9431,7 +9431,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9535,7 +9535,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9650,7 +9650,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9757,7 +9757,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9855,7 +9855,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -9994,7 +9994,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -10112,7 +10112,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -10230,7 +10230,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -10350,7 +10350,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -10467,7 +10467,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -10585,7 +10585,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -10702,7 +10702,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -10836,7 +10836,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -10951,7 +10951,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -11066,7 +11066,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -11178,7 +11178,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11277,7 +11277,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11368,7 +11368,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11459,7 +11459,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11582,7 +11582,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11685,7 +11685,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11787,7 +11787,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11891,7 +11891,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -11992,7 +11992,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -12094,7 +12094,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -12195,7 +12195,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -12318,7 +12318,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -12417,7 +12417,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -12516,7 +12516,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AntiSandwichHook} from "@openzeppelin/uniswap-hooks/general/AntiSandwichHook.sol";␊ @@ -12612,7 +12612,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -12722,7 +12722,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BaseHook} from "@openzeppelin/uniswap-hooks/base/BaseHook.sol";␊ @@ -12807,7 +12807,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -12892,7 +12892,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13010,7 +13010,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13124,7 +13124,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13237,7 +13237,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13352,7 +13352,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13464,7 +13464,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -13577,7 +13577,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -13689,7 +13689,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13814,7 +13814,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -13924,7 +13924,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14034,7 +14034,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14143,7 +14143,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14250,7 +14250,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14341,7 +14341,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14414,7 +14414,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14529,7 +14529,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14640,7 +14640,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14750,7 +14750,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14862,7 +14862,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -14971,7 +14971,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -15081,7 +15081,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -15190,7 +15190,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -15338,7 +15338,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -15445,7 +15445,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -15552,7 +15552,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -15656,7 +15656,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -15788,7 +15788,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -15896,7 +15896,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -16012,7 +16012,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -16152,7 +16152,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -16287,7 +16287,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -16422,7 +16422,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -16559,7 +16559,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -16693,7 +16693,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -16828,7 +16828,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -16962,7 +16962,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17138,7 +17138,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17270,7 +17270,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17399,7 +17399,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17528,7 +17528,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17638,7 +17638,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17723,7 +17723,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17809,7 +17809,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -17927,7 +17927,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18041,7 +18041,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18154,7 +18154,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18269,7 +18269,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18381,7 +18381,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -18494,7 +18494,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -18606,7 +18606,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18740,7 +18740,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18850,7 +18850,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -18960,7 +18960,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19069,7 +19069,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19179,7 +19179,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19264,7 +19264,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19350,7 +19350,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19468,7 +19468,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19582,7 +19582,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19695,7 +19695,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19810,7 +19810,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -19922,7 +19922,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -20035,7 +20035,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -20147,7 +20147,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -20281,7 +20281,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -20391,7 +20391,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ @@ -20501,7 +20501,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.5.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ + // Compatible with OpenZeppelin Contracts ^5.6.0-rc.0 and OpenZeppelin Uniswap Hooks ^1.2.1␊ pragma solidity ^0.8.27;␊ ␊ import {BalanceDelta} from "@uniswap/v4-core/src/types/BalanceDelta.sol";␊ diff --git a/packages/core/uniswap-hooks/src/hooks.test.ts.snap b/packages/core/uniswap-hooks/src/hooks.test.ts.snap index 97ef3bfe9..354801421 100644 Binary files a/packages/core/uniswap-hooks/src/hooks.test.ts.snap and b/packages/core/uniswap-hooks/src/hooks.test.ts.snap differ diff --git a/packages/mcp/src/solidity/schemas.ts b/packages/mcp/src/solidity/schemas.ts index 6beeb1ff4..99b66abe1 100644 --- a/packages/mcp/src/solidity/schemas.ts +++ b/packages/mcp/src/solidity/schemas.ts @@ -65,9 +65,11 @@ export const erc20Schema = { flashmint: z.boolean().optional().describe(solidityERC20Descriptions.flashmint), crossChainBridging: z .literal('custom') + .or(z.literal('erc7786native')) .or(z.literal('superchain')) .optional() .describe(solidityERC20Descriptions.crossChainBridging), + crossChainLinkAllowOverride: z.boolean().optional().describe(solidityERC20Descriptions.crossChainLinkAllowOverride), namespacePrefix: z.string().optional().describe(solidityCommonDescriptions.namespacePrefix), ...commonSchema, } as const satisfies z.ZodRawShape; diff --git a/packages/mcp/src/solidity/tools/erc20.test.ts b/packages/mcp/src/solidity/tools/erc20.test.ts index d55d4a62e..feb3bbb90 100644 --- a/packages/mcp/src/solidity/tools/erc20.test.ts +++ b/packages/mcp/src/solidity/tools/erc20.test.ts @@ -38,6 +38,16 @@ test('basic', async t => { await assertAPIEquivalence(t, params, erc20.print); }); +test('crosschain erc7786native allowOverrides', async t => { + const params: z.infer = { + name: 'TestToken', + symbol: 'TST', + crossChainBridging: 'erc7786native', + crossChainLinkAllowOverride: true, + }; + await assertAPIEquivalence(t, params, erc20.print); +}); + test('all', async t => { const params: DeepRequired> = { name: 'TestToken', @@ -52,6 +62,7 @@ test('all', async t => { votes: 'blocknumber', flashmint: true, crossChainBridging: 'superchain', + crossChainLinkAllowOverride: false, access: 'roles', upgradeable: 'transparent', namespacePrefix: 'myProject', diff --git a/packages/mcp/src/solidity/tools/erc20.ts b/packages/mcp/src/solidity/tools/erc20.ts index ef986403f..0fbdeaa20 100644 --- a/packages/mcp/src/solidity/tools/erc20.ts +++ b/packages/mcp/src/solidity/tools/erc20.ts @@ -23,6 +23,7 @@ export function registerSolidityERC20(server: McpServer): RegisteredTool { votes, flashmint, crossChainBridging, + crossChainLinkAllowOverride, access, upgradeable, info, @@ -40,6 +41,7 @@ export function registerSolidityERC20(server: McpServer): RegisteredTool { votes, flashmint, crossChainBridging, + crossChainLinkAllowOverride, access, upgradeable, info, diff --git a/packages/mcp/src/solidity/tools/rwa.test.ts b/packages/mcp/src/solidity/tools/rwa.test.ts index a798d4281..9e65474cd 100644 --- a/packages/mcp/src/solidity/tools/rwa.test.ts +++ b/packages/mcp/src/solidity/tools/rwa.test.ts @@ -38,6 +38,16 @@ test('basic', async t => { await assertAPIEquivalence(t, params, realWorldAsset.print); }); +test('crosschain erc7786native allowOverrides', async t => { + const params: z.infer = { + name: 'TestToken', + symbol: 'TST', + crossChainBridging: 'erc7786native', + crossChainLinkAllowOverride: true, + }; + await assertAPIEquivalence(t, params, realWorldAsset.print); +}); + test('all', async t => { const params: DeepRequired> = { name: 'MyRWA', @@ -52,6 +62,7 @@ test('all', async t => { votes: 'blocknumber', flashmint: true, crossChainBridging: 'custom', + crossChainLinkAllowOverride: false, premintChainId: '10', restrictions: 'allowlist', freezable: true, diff --git a/packages/mcp/src/solidity/tools/rwa.ts b/packages/mcp/src/solidity/tools/rwa.ts index 75b221e8a..32e47ae6f 100644 --- a/packages/mcp/src/solidity/tools/rwa.ts +++ b/packages/mcp/src/solidity/tools/rwa.ts @@ -23,6 +23,7 @@ export function registerSolidityRWA(server: McpServer) { votes, flashmint, crossChainBridging, + crossChainLinkAllowOverride, access, info, restrictions, @@ -41,6 +42,7 @@ export function registerSolidityRWA(server: McpServer) { votes, flashmint, crossChainBridging, + crossChainLinkAllowOverride, access, info, restrictions, diff --git a/packages/mcp/src/solidity/tools/stablecoin.test.ts b/packages/mcp/src/solidity/tools/stablecoin.test.ts index 891aa4077..87a5af157 100644 --- a/packages/mcp/src/solidity/tools/stablecoin.test.ts +++ b/packages/mcp/src/solidity/tools/stablecoin.test.ts @@ -38,6 +38,16 @@ test('basic', async t => { await assertAPIEquivalence(t, params, stablecoin.print); }); +test('crosschain erc7786native allowOverrides', async t => { + const params: z.infer = { + name: 'TestToken', + symbol: 'TST', + crossChainBridging: 'erc7786native', + crossChainLinkAllowOverride: true, + }; + await assertAPIEquivalence(t, params, stablecoin.print); +}); + test('all', async t => { const params: DeepRequired> = { name: 'MyStablecoin', @@ -52,6 +62,7 @@ test('all', async t => { votes: 'blocknumber', flashmint: true, crossChainBridging: 'custom', + crossChainLinkAllowOverride: false, premintChainId: '10', restrictions: 'allowlist', freezable: true, diff --git a/packages/mcp/src/solidity/tools/stablecoin.ts b/packages/mcp/src/solidity/tools/stablecoin.ts index 4c74fc8ba..3ff16bc76 100644 --- a/packages/mcp/src/solidity/tools/stablecoin.ts +++ b/packages/mcp/src/solidity/tools/stablecoin.ts @@ -23,6 +23,7 @@ export function registerSolidityStablecoin(server: McpServer): RegisteredTool { votes, flashmint, crossChainBridging, + crossChainLinkAllowOverride, access, info, restrictions, @@ -41,6 +42,7 @@ export function registerSolidityStablecoin(server: McpServer): RegisteredTool { votes, flashmint, crossChainBridging, + crossChainLinkAllowOverride, access, info, restrictions, diff --git a/packages/ui/api/ai-assistant/function-definitions/solidity.ts b/packages/ui/api/ai-assistant/function-definitions/solidity.ts index 6ad098923..c8646062e 100644 --- a/packages/ui/api/ai-assistant/function-definitions/solidity.ts +++ b/packages/ui/api/ai-assistant/function-definitions/solidity.ts @@ -57,10 +57,17 @@ export const solidityERC20AIFunctionDefinition = { crossChainBridging: { anyOf: [ { type: 'boolean', enum: [false] }, - { type: 'string', enum: extractStringEnumValues()(['custom', 'superchain']) }, + { + type: 'string', + enum: extractStringEnumValues()(['custom', 'erc7786native', 'superchain']), + }, ], description: solidityERC20Descriptions.crossChainBridging, }, + crossChainLinkAllowOverride: { + type: 'boolean', + description: solidityERC20Descriptions.crossChainLinkAllowOverride, + }, premintChainId: { type: 'string', description: solidityERC20Descriptions.premintChainId, diff --git a/packages/ui/src/solidity/ERC20Controls.svelte b/packages/ui/src/solidity/ERC20Controls.svelte index 7c351a45d..ae89b8ae4 100644 --- a/packages/ui/src/solidity/ERC20Controls.svelte +++ b/packages/ui/src/solidity/ERC20Controls.svelte @@ -50,6 +50,11 @@ $: { showChainId = opts.premint !== '' && opts.premint !== '0' && opts.crossChainBridging !== false; } + + let showAllowOverride = false; + $: { + showAllowOverride = opts.crossChainBridging === 'erc7786native'; + }
@@ -187,6 +192,24 @@ Uses custom bridge contract(s) as authorized token bridge(s). + + + {#if showAllowOverride} +

+ + Whether to allow replacing a crosschain link that has already been registered. +

+ {/if} + {#if !omitFeatures?.includes('superchain')}