From d91e95f6e6c7d4bd728a99919cc847111442bf1e Mon Sep 17 00:00:00 2001 From: Eric Lau Date: Fri, 8 Aug 2025 15:08:26 -0400 Subject: [PATCH 01/14] Use ERC20Bridgeable from Contracts 5.4.0 --- .../common/src/ai/descriptions/solidity.ts | 2 +- packages/core/solidity/package.json | 6 +- packages/core/solidity/src/account.test.ts.md | 154 ++++++------ .../core/solidity/src/account.test.ts.snap | Bin 4663 -> 4664 bytes .../core/solidity/src/contract.test.ts.md | 38 +-- .../core/solidity/src/contract.test.ts.snap | Bin 1008 -> 1009 bytes packages/core/solidity/src/custom.test.ts.md | 20 +- .../core/solidity/src/custom.test.ts.snap | Bin 859 -> 859 bytes packages/core/solidity/src/erc1155.test.ts.md | 28 +-- .../core/solidity/src/erc1155.test.ts.snap | Bin 1803 -> 1803 bytes packages/core/solidity/src/erc20.test.ts | 35 +-- packages/core/solidity/src/erc20.test.ts.md | 231 +++++++++++++----- packages/core/solidity/src/erc20.test.ts.snap | Bin 3305 -> 3447 bytes packages/core/solidity/src/erc20.ts | 11 +- packages/core/solidity/src/erc721.test.ts.md | 40 +-- .../core/solidity/src/erc721.test.ts.snap | Bin 2208 -> 2208 bytes .../core/solidity/src/generate/sources.ts | 6 +- .../core/solidity/src/governor.test.ts.md | 38 +-- .../core/solidity/src/governor.test.ts.snap | Bin 2349 -> 2350 bytes .../core/solidity/src/stablecoin.test.ts.md | 42 ++-- .../core/solidity/src/stablecoin.test.ts.snap | Bin 2102 -> 2106 bytes packages/core/solidity/src/utils/version.ts | 2 +- .../core/solidity/src/zip-foundry.test.ts | 22 ++ .../core/solidity/src/zip-foundry.test.ts.md | 14 +- .../solidity/src/zip-foundry.test.ts.snap | Bin 3488 -> 3489 bytes .../core/solidity/src/zip-hardhat.test.ts | 21 ++ .../core/solidity/src/zip-hardhat.test.ts.md | 10 +- .../solidity/src/zip-hardhat.test.ts.snap | Bin 2366 -> 2371 bytes packages/ui/src/solidity/App.svelte | 7 +- packages/ui/src/solidity/ERC20Controls.svelte | 13 +- .../src/solidity/UpgradeabilitySection.svelte | 27 +- yarn.lock | 18 +- 32 files changed, 435 insertions(+), 350 deletions(-) diff --git a/packages/common/src/ai/descriptions/solidity.ts b/packages/common/src/ai/descriptions/solidity.ts index f6438fdd3..e5df01346 100644 --- a/packages/common/src/ai/descriptions/solidity.ts +++ b/packages/common/src/ai/descriptions/solidity.ts @@ -30,7 +30,7 @@ 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. Emphasize that these features are experimental, not audited and are subject to change. 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, 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.', 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/package.json b/packages/core/solidity/package.json index 804075fab..d69be91d2 100644 --- a/packages/core/solidity/package.json +++ b/packages/core/solidity/package.json @@ -23,8 +23,8 @@ }, "devDependencies": { "@openzeppelin/community-contracts": "https://github.com/OpenZeppelin/openzeppelin-community-contracts", - "@openzeppelin/contracts": "^5.3.0", - "@openzeppelin/contracts-upgradeable": "^5.3.0", + "@openzeppelin/contracts": "^5.4.0", + "@openzeppelin/contracts-upgradeable": "^5.4.0", "@types/node": "^20.0.0", "@types/semver": "^7.5.7", "ava": "^6.0.0", @@ -36,4 +36,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 da256f549..7eee5100a 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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -259,7 +259,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -294,7 +294,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -335,7 +335,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -377,7 +377,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -395,7 +395,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -419,7 +419,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -437,7 +437,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -456,7 +456,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -475,7 +475,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -497,7 +497,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -525,7 +525,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -581,7 +581,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -631,7 +631,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -687,7 +687,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -744,7 +744,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -770,7 +770,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -804,7 +804,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -830,7 +830,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -857,7 +857,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -884,7 +884,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -914,7 +914,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -950,7 +950,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1014,7 +1014,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1074,7 +1074,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1138,7 +1138,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1203,7 +1203,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1229,7 +1229,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1263,7 +1263,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1289,7 +1289,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1316,7 +1316,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1343,7 +1343,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1373,7 +1373,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1409,7 +1409,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1473,7 +1473,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1533,7 +1533,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1597,7 +1597,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1662,7 +1662,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1688,7 +1688,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1722,7 +1722,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1748,7 +1748,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1775,7 +1775,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1802,7 +1802,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1832,7 +1832,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -1868,7 +1868,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1932,7 +1932,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -1992,7 +1992,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -2056,7 +2056,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -2121,7 +2121,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2163,7 +2163,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2213,7 +2213,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2255,7 +2255,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2298,7 +2298,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2341,7 +2341,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2387,7 +2387,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2439,7 +2439,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -2519,7 +2519,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -2595,7 +2595,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -2675,7 +2675,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -2756,7 +2756,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2806,7 +2806,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2864,7 +2864,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2916,7 +2916,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -2969,7 +2969,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -3022,7 +3022,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -3076,7 +3076,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Account} from "@openzeppelin/community-contracts/account/Account.sol";␊ @@ -3136,7 +3136,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -3225,7 +3225,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -3310,7 +3310,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ @@ -3399,7 +3399,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AbstractSigner} from "@openzeppelin/community-contracts/utils/cryptography/AbstractSigner.sol";␊ diff --git a/packages/core/solidity/src/account.test.ts.snap b/packages/core/solidity/src/account.test.ts.snap index 13cd60956792ba4ab73a8e9966cf71986f29a80f..e8d46f625c7ff1d749b9aa5f76ba4991f466ba0b 100644 GIT binary patch literal 4664 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 literal 4663 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%0A6LfW*gsE5QY zbhdw%>N7>wFe6I^3~N&P&L^3loayWL%X7H0K!2A*2K10^*X6xCDskAYH~gaY4EavBy>P=xu&?RfDVW*h%SgOh%SgO zh;GJ2_dy?`d$}v=q9*PI$>>Zy!w}q$Orc=A(B#Z~-qxcxuKM`ma;lXNPM2HDhr3gg zFs;G$4cDgTTs*6?Y-c{p1AXdQ2SGLSYT6vJv4ZF=m1-?TY6dc|KB)D$jpv1C(^|e( zwI}W)76uq!b!M;juH(P-zN!3|>_WdHONSTSQtB(}HkEc`Ey{aIm9~}ZG^4AslZ9WH z`Ce-q3_fEyEI4a8>(K7_L1!JTUN-ed#$*2q9veCx zWyXS`M9l`*nuWTV-?D%az=+H-q82OJ6QUF~^%n*teglwzB3-$0Vn}JH0H8>#Sm(Pi zKn0*8bEtSCQ8*DtWpLWl);kUCfXX0HDP8oEIYQ;5LKwO9ETss6W56*N$ChH@ScG!q z^iLS*`T?K|%8`Xdm*L9BgWzK1qLT3L6Yt&GYeN1rTK+TMNxrWJ=*c@6?0fSrbeZwi zWmXg{FErxj*kLwynS+FN4rl{I8`zlIz`*{%{sZ*m!Z*Pe6r32xo@0M{M+f!8BYw5HZB)vWTIVONPK*w9z$hWft zGA7~9w7GXdyE`~t7n?gxDm@NomaLoHoOz@8Q|~V~%n>7FR@PswWxAi4b5=1l4I7v_ z>HP=ZtRI{4-gVsj0(l%=AGhD@c?VoUc-iUn+YF}tvjmt{xH8SMpiW91^H9{`I6V_L z3&WkBIe-*E3Ls4kr2dt1)2}f=`n3`ODT2eY!gL0r?_p@|T43T>@d6_T?{%FB8-aE} zyVPhGRvbQvcERfSGw);|@AwQL5Bic52&NgS<~vhHtLLY~SC5)LKo%eikj)%qA4`;* z4UveRxsO5F3Q!iW7nn?-%}mspLE5b4oP8GztOeErYxBa|4-Xa4#(6)(%&QFez6|ii z`xyZ1ImOSpL43aNZ-~4VfIq+=;GY-xuO$Nih?iQ-{GP%4UjXm%Qj5|+a#k<7V6k;< zFS`H)0sj<@@H3yT8K_gst42nW{N+BpPE*ex`L4% Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -21,7 +21,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Footec {␊ @@ -33,7 +33,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -47,7 +47,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -62,7 +62,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -77,7 +77,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -93,7 +93,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -105,7 +105,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -125,7 +125,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -149,7 +149,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -162,7 +162,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -177,7 +177,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -192,7 +192,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Bar} from "./Bar.sol";␊ @@ -209,7 +209,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -224,7 +224,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -240,7 +240,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -253,7 +253,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Foo {␊ @@ -267,7 +267,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract FooBarBaz {␊ @@ -279,7 +279,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ /// @custom:security-contact security@example.com␊ diff --git a/packages/core/solidity/src/contract.test.ts.snap b/packages/core/solidity/src/contract.test.ts.snap index e51df0f835c58a4ff14ba4c7d65e923141cc1346..f14822349451cbe78deed32ceabf528d107894a1 100644 GIT binary patch literal 1009 zcmV=)~qR8b3TXQ>d`jg+5+nv8{ z+b}(K`ts0O>L8OiH0dH!)T1a)z`4npf^EY%4??17%|}?Esty-IWLGc@(WeZ?lldfE z9koWR;X)|LTtGl_pSn~n!PQ~wxK%keRwy)~O>hp&g_S~rd2yiG!$^QYB}9xm+{J0) zVVc21gTb91F;M8Vl9+Gy#WN5HiO@Jw=wG*@-|`~2iSTI?#qK z?4|u?u${hxYn;*U34gezQIuAP`2Z%t&j*3 zphA%$%@;$OPkkg!hXeosIGjl(B1dsi8r0WI#hBxfVi{I{Rf>bKywW02rDI%xGk*y< z!{3TEo8NAz^}UbO`nw=)P}F^2#xMFW49`%et_@8^3*LHlLf zFjGhHxbO1?%I3g}n4>6X5{OtcLW01X5f$h{Z3(86p{+tZM&l8xnNU_C=&6$_$Kt12!+0=lrb|5!<2u;I)-5^1*0296`;As?rxJQY82>MI5{lP(ofTUN55zq&6d9sJ zi4RVl=#evz{*MgC_j<*+N<@|1YCV?;(>TgJo<{%PK>unp(c88Sr<_PC9-NTqM1rcN fA&pr>Zd^EpizEnrv>YC!PoTd5=1kbuD-{3$zh&v2 literal 1008 zcmV2qtu{ljdS4(1Mx_WJ%6v-~C?x z?k>-~y3d^(^6_(2RQbpq&XgdIf;y4ZkyJ7g$_7{R?ladVid=rMIkzpRKlv@Wo%!3g z4O5dRFAtxk4l;?uXIx~8dKAS8ICo~cVB0XkgODg%_Yvl)YQTjM*%b^!^eKahWIhR3 zN34ofDTIQ|1_UJcsY}%&T&-Bgt?IGSLZJoiH0Q8XSS}=(7xuM!7zq%lgosgxyEsKW zOfz_BFu2nv1`3^a5_7G-cm@I?5gJDd{p)u0n_lEL5Izk;E)*=)h*$@(X@I2Zk^lezhcl@}g<}U(g z_*=1N@>>nHz7LREe;1^6in_-XRcpxSPzdT~RLTLY^?TEyXyVUu|B2!L{e1r@XuoV5 zrW*(z_kBK3*(`Vwa}?!F0uif5NDz24q5@s0FTzwZv{i`5Xg&hh>gaKS)BFaqX+fCu zP?U)43Y0QVQyH2q#mf*;rm7=Hfdo8aYA7B{e<)KZ81Y*dnkY)AE=^P`Wr)9~5@lDO zTWZ}bqY#Ca31tO>o;sOwG=8c*j0e(Yy43S9u7f>n-IOzI{rcb5wcC0@HBd~(_4Hqu z+ChTr(N8DM(ohRdPZ((k9mAv(w5xLw4Y(Woo-Sq|jLf{*$b}#yGk+k}d;{5et|mz& z(KW01fo`;cFt>X_pUH1AMEExNBJ|8lheB&k&wf+Jw&fJ`@gbd|kA{5j`YfNh{IAl# z7Eq>2fta9T>sII4xnfwkzk)H#!z54sj==uch*rBvCo}H*Z zZsynbLjIeWC9k!MY<12gf0=b_yCKt$!I!C7x7MQ9T1r>OK7Nh}O6q<_$etSNJ?gW1 zddmWH#E%fh;7E0}_wK&QD&rvh)}Zxr&}hYWDxo)o@&8g|P`u6?tk_O?U)&Qzks&&i z_~0~%9y#;q|Hxo`uV0L7MAXQw_H&sqjib!tY4q<6^shD&y=~ht?nF}Y;Dkgc5>zb? eYs?yQ^TIeTkRbHYa(IwFf&Kz?;>6r56#xJ>Io2is diff --git a/packages/core/solidity/src/custom.test.ts.md b/packages/core/solidity/src/custom.test.ts.md index e23c2db14..7906d5648 100644 --- a/packages/core/solidity/src/custom.test.ts.md +++ b/packages/core/solidity/src/custom.test.ts.md @@ -9,7 +9,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -21,7 +21,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract Contract {␊ @@ -33,7 +33,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ @@ -106,7 +106,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -118,7 +118,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -133,7 +133,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -150,7 +150,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ @@ -165,7 +165,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/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 62f68ccd2e52ddd8468c70155300257173075375..6e45868ebc43a0d3944a8fac1f9c3678ce4cad85 100644 GIT binary patch literal 859 zcmV-h1El;xRzVt)_9EGnT+ zo|40k*B^@r00000000B+R!wUYK^RUfBJ54CUS4}jpve|dl;&b+D+C%-+6G#|hRN7UPal0L*)|;R?;O|mh=ZBJwU&#SCIf=y z7PMPOmTki}_XN_UPce*%9zjQ7_7Mw#DPge9nU=`W3Qk|wU)47)A<@u7pg1Ki(Gxh` ztiP?leABQjCx$|Ml0?DGy0GGw&!0y<14AALqQGaw;VuS+2DnJ%n?dAqB}C@Y7zyMn z)ThOkPs+cHo`06_uxH{4E;Y zs^+u66l#c4KF)4PVPmRUXihkscjOC*=(HmjBzP9}Z>atZH#A5HHeDdq+fj4kOJXP8nirq~PKn?~8l zpmL-m^bH;LkgrEvl4&xxv@wRqEl*JFVWv@lt)?Xi(^xV@(*u5nr6exCK1e(@Jeg(f zGg>JKHRTlI>ACmmj&qjdz$01a`~hAV9G=~`tHMoR-aq@drz6$5kxEYS9Lp{r8v|{v zVxY~i)9t9yCC6&SEEukV{lkb|JU~9xP1hsLFr=YGOdoKHD?7XIo87&mUUR42`p`S* z?CoxtVTIpjeziTs&~VPzc~Wi}N^Gr8iFVZDl1fB`q;145rAUljy!6e;QuU;2MplaN lv!B3uEq`T+rnIbKKHO&>?lTYfnLE4B{09HG<+iL5002FQl(zr? literal 859 zcmV-h1El;xRzVz7n3-*wgdU1FPvSqQf6jm4S@yF#o7AKt4VCV3_IW>^_j&i(x$gHUcR#DIKd>g6 z;=UUw&3&R65^Bh`y1Mo}q|wRuwbHXv_>`ZPo+kBX-!?4EO`y;kr%^DqF0G{HitrDCe1PjPs_iIo`06_v1j57E;UTsBNjGy34O_ZSl{LXvq_TAPKhZSxh_`9PSAD5>3So} zagZ=vlqArEDmz6dN#?ErQINtmASnt{3jo07OlcXon#&6EJc*S8!iXk_wnq%hYKpIz zr_)O-ith)^)r2z$b-|S?h@eM_3!Kq$1WoFMPdC9dqLX5RfGv|EL#0Ww%@_q@Ad!b7 za#|v$1d^fPvx}mQMZv3B6epf0nJl4nEyv6jl3$Dy?TsW07QnzJ6SZv{wqsk^;*+$D zss$`Gg&LxikMbKbvoY1YG#-gIEGvYinj@3Q%M=7c&FZs84ShbX{ZIN7oT76RdY3Au zf#i}Ds&qOBM}Ju&Po$9ME~}OqPA+}}3JLFjA5HHe8RixfOf2aJXP8nqq1X-In?~8l zp$ep9^er8AQJ{xhl1VzZtTBd1jxQ+oG1Dl-RX)GC{*#SStQW6i}9HgEaolNug z8Lt#XnsN%s^t^|3$2l)>;IS-o{s6BG4lf?sRpGWT@1OnKvytk;NF}Fuj%AlmjDb3< z7-%!43~3+{(}$em%I@C#W@rDn+uUtAAG(L_ z{k;t{Z05IFTx}mQG??>so|YX$iLKQs(TZDKQi+(5w2j!M6iKj)m%bTWsvcL($ja>d l{3mcxD_&XRDJ^T5kN26!`^@8g=HBizzX43iV)v{O0090Al8*oY diff --git a/packages/core/solidity/src/erc1155.test.ts.md b/packages/core/solidity/src/erc1155.test.ts.md index 12dc5ca16..5b7de2840 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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -440,7 +440,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -533,7 +533,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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 dfa322671c70c43b2ae6cf44196c04821fa3f126..2809eaab0f3d8ab4bf97ae90655b179bb80cf196 100644 GIT binary patch delta 626 zcmV-&0*(EP4vP*|K~_N^Q*L2!b7*gLAa*kf0{}wi0oW%{da{==9j4os*EC$EKH1)M zH(WiAa6S7Wy|o{U2mk;800003?ONMz8$}pynpUW$LgJo_QLY@}c$?4^+L2YOe;4oN zbOt*b1e~f^!J-dd+$(-m-1u-Sm&2M)nE+>d)t&YA&CPSrW>fH?SpM@<1ZbHP~-003l4 zxL}4XD9b}dVTf~p2^JWtM?Herf2uXh{5S&gD_tRU{z#HKP@o>{7j;aafJIrQh9Y6T z&85#Yx$>}k!pP2geX~@rXfHQ7+()Iu^}fFU?BO;k@!pQ|$@arfcfLL-Nh`h*2V6c5 z;p{wTeYXuF3rq>%NHnVDJQoa;4$zQBSsxJ8GZu=bM?&{R*fs^?4)<{(<<4TX`U3F}Hr%zcme?T59s0|HOloSn<8S*$lwGM+sRH=&cyLdyN5=H@wQGpd1=$5cn;)R8C2t~^Q5 zV?-opvin`+R9)HfL>=`AY^i9JC@9N_bIF-jWW7TKsPy~+XQseEPn>x2aKwS$BDN5Pl#xLE~h}W zlC|vCjZ__zBcXdDY?}gchx@pYa%VAGeS!D~8}3?JOoT*$Mz!3m?bYjh)n@hRU=Mr@ zj*%?GLC~qzEhXA`5%8I`hwgukbR~YrYKd#< { - const error = t.throws(() => - buildERC20({ - name: 'MyToken', - symbol: 'MTK', - crossChainBridging: 'custom', - upgradeable: 'transparent', - }), - ); - t.is( - (error as OptionsError).messages.crossChainBridging, - 'Upgradeability is not currently supported with Cross-Chain Bridging', - ); +testERC20('erc20 crossChainBridging custom upgradeable', { + crossChainBridging: 'custom', + upgradeable: 'transparent', }); -test('erc20 crossChainBridging superchain, upgradeable not allowed', async t => { - const error = t.throws(() => - buildERC20({ - name: 'MyToken', - symbol: 'MTK', - crossChainBridging: 'superchain', - upgradeable: 'transparent', - }), - ); - t.is( - (error as OptionsError).messages.crossChainBridging, - 'Upgradeability is not currently supported with Cross-Chain Bridging', - ); +testERC20('erc20 crossChainBridging superchain upgradeable', { + crossChainBridging: 'superchain', + upgradeable: 'transparent', }); test('erc20 crossChainBridging superchain, premintChainId required', async t => { @@ -249,7 +229,7 @@ testERC20('erc20 premint chainId crossChainBridging superchain', { crossChainBridging: 'superchain', }); -testERC20('erc20 full crossChainBridging custom non-upgradeable', { +testERC20('erc20 full crossChainBridging custom upgradeable uups', { premint: '2000', access: 'roles', burnable: true, @@ -261,6 +241,7 @@ testERC20('erc20 full crossChainBridging custom non-upgradeable', { flashmint: true, crossChainBridging: 'custom', premintChainId: '10', + upgradeable: 'uups', }); testERC20('erc20 full upgradeable transparent', { diff --git a/packages/core/solidity/src/erc20.test.ts.md b/packages/core/solidity/src/erc20.test.ts.md index d144f5651..20b3d1648 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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -540,11 +540,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -570,11 +570,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.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";␊ ␊ @@ -602,11 +602,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";␊ @@ -639,12 +639,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, AccessControl, ERC20Permit {␊ @@ -681,13 +681,13 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ import {AuthorityUtils} from "@openzeppelin/contracts/access/manager/AuthorityUtils.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, AccessManaged, ERC20Permit {␊ @@ -711,11 +711,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -740,11 +740,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.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";␊ ␊ @@ -774,12 +774,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit, AccessControl {␊ @@ -820,12 +820,12 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit, AccessManaged {␊ @@ -849,12 +849,88 @@ Generated by [AVA](https://avajs.dev). }␊ ` +## erc20 crossChainBridging custom upgradeable + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ + import {ERC20BridgeableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol";␊ + import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + ␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20PermitUpgradeable {␊ + address public immutable TOKEN_BRIDGE;␊ + error Unauthorized();␊ + ␊ + /// @custom:oz-upgrades-unsafe-allow constructor␊ + constructor() {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address tokenBridge) public initializer {␊ + __ERC20_init("MyToken", "MTK");␊ + __ERC20Bridgeable_init();␊ + __ERC20Permit_init("MyToken");␊ + ␊ + require(tokenBridge != address(0), "Invalid TOKEN_BRIDGE address");␊ + TOKEN_BRIDGE = tokenBridge;␊ + }␊ + ␊ + function _checkTokenBridge(address caller) internal view override {␊ + if (caller != TOKEN_BRIDGE) revert Unauthorized();␊ + }␊ + }␊ + ` + +## erc20 crossChainBridging superchain upgradeable + +> Snapshot 1 + + `// SPDX-License-Identifier: MIT␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ + pragma solidity ^0.8.27;␊ + ␊ + import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ + import {ERC20BridgeableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol";␊ + import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + ␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, ERC20PermitUpgradeable {␊ + address internal constant SUPERCHAIN_TOKEN_BRIDGE = 0x4200000000000000000000000000000000000028;␊ + error Unauthorized();␊ + ␊ + /// @custom:oz-upgrades-unsafe-allow constructor␊ + constructor() {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize() public initializer {␊ + __ERC20_init("MyToken", "MTK");␊ + __ERC20Bridgeable_init();␊ + __ERC20Permit_init("MyToken");␊ + }␊ + ␊ + /**␊ + * @dev Checks if the caller is the predeployed SuperchainTokenBridge. Reverts otherwise.␊ + *␊ + * IMPORTANT: The predeployed SuperchainTokenBridge is only available on chains in the Superchain.␊ + */␊ + function _checkTokenBridge(address caller) internal pure override {␊ + if (caller != SUPERCHAIN_TOKEN_BRIDGE) revert Unauthorized();␊ + }␊ + }␊ + ` + ## erc20 premint ignores chainId when not crossChainBridging > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -875,11 +951,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -908,11 +984,11 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ ␊ contract MyToken is ERC20, ERC20Bridgeable, ERC20Permit {␊ @@ -939,35 +1015,53 @@ Generated by [AVA](https://avajs.dev). }␊ ` -## erc20 full crossChainBridging custom non-upgradeable +## erc20 full crossChainBridging custom upgradeable uups > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ - import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ - import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ - import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ - import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ - import {ERC20FlashMint} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol";␊ - import {ERC20Pausable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Pausable.sol";␊ - import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";␊ - import {ERC20Votes} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Votes.sol";␊ - import {Nonces} from "@openzeppelin/contracts/utils/Nonces.sol";␊ + import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ + import {ERC1363Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC1363Upgradeable.sol";␊ + import {ERC20Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/ERC20Upgradeable.sol";␊ + import {ERC20BridgeableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/draft-ERC20BridgeableUpgradeable.sol";␊ + import {ERC20BurnableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20BurnableUpgradeable.sol";␊ + import {ERC20FlashMintUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20FlashMintUpgradeable.sol";␊ + import {ERC20PausableUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PausableUpgradeable.sol";␊ + import {ERC20PermitUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20PermitUpgradeable.sol";␊ + import {ERC20VotesUpgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC20/extensions/ERC20VotesUpgradeable.sol";␊ + import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ + import {NoncesUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/NoncesUpgradeable.sol";␊ + import {UUPSUpgradeable} from "@openzeppelin/contracts-upgradeable/proxy/utils/UUPSUpgradeable.sol";␊ ␊ - contract MyToken is ERC20, ERC20Bridgeable, AccessControl, ERC20Burnable, ERC20Pausable, ERC1363, ERC20Permit, ERC20Votes, ERC20FlashMint {␊ + contract MyToken is Initializable, ERC20Upgradeable, ERC20BridgeableUpgradeable, AccessControlUpgradeable, ERC20BurnableUpgradeable, ERC20PausableUpgradeable, ERC1363Upgradeable, ERC20PermitUpgradeable, ERC20VotesUpgradeable, ERC20FlashMintUpgradeable, UUPSUpgradeable {␊ bytes32 public constant TOKEN_BRIDGE_ROLE = keccak256("TOKEN_BRIDGE_ROLE");␊ error Unauthorized();␊ bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE");␊ bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");␊ + bytes32 public constant UPGRADER_ROLE = keccak256("UPGRADER_ROLE");␊ ␊ - constructor(address defaultAdmin, address tokenBridge, address recipient, address pauser, address minter)␊ - ERC20("MyToken", "MTK")␊ - ERC20Permit("MyToken")␊ + /// @custom:oz-upgrades-unsafe-allow constructor␊ + constructor() {␊ + _disableInitializers();␊ + }␊ + ␊ + function initialize(address defaultAdmin, address tokenBridge, address recipient, address pauser, address minter, address upgrader)␊ + public initializer␊ {␊ + __ERC20_init("MyToken", "MTK");␊ + __ERC20Bridgeable_init();␊ + __AccessControl_init();␊ + __ERC20Burnable_init();␊ + __ERC20Pausable_init();␊ + __ERC1363_init();␊ + __ERC20Permit_init("MyToken");␊ + __ERC20Votes_init();␊ + __ERC20FlashMint_init();␊ + __UUPSUpgradeable_init();␊ + ␊ _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);␊ _grantRole(TOKEN_BRIDGE_ROLE, tokenBridge);␊ if (block.chainid == 10) {␊ @@ -975,6 +1069,7 @@ Generated by [AVA](https://avajs.dev). }␊ _grantRole(PAUSER_ROLE, pauser);␊ _grantRole(MINTER_ROLE, minter);␊ + _grantRole(UPGRADER_ROLE, upgrader);␊ }␊ ␊ function _checkTokenBridge(address caller) internal view override {␊ @@ -992,12 +1087,18 @@ Generated by [AVA](https://avajs.dev). function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) {␊ _mint(to, amount);␊ }␊ + ␊ + function _authorizeUpgrade(address newImplementation)␊ + internal␊ + override␊ + onlyRole(UPGRADER_ROLE)␊ + {}␊ ␊ // The following functions are overrides required by Solidity.␊ ␊ function _update(address from, address to, uint256 value)␊ internal␊ - override(ERC20, ERC20Pausable, ERC20Votes)␊ + override(ERC20Upgradeable, ERC20PausableUpgradeable, ERC20VotesUpgradeable)␊ {␊ super._update(from, to, value);␊ }␊ @@ -1005,7 +1106,7 @@ Generated by [AVA](https://avajs.dev). function supportsInterface(bytes4 interfaceId)␊ public␊ view␊ - override(ERC20Bridgeable, AccessControl, ERC1363)␊ + override(ERC20BridgeableUpgradeable, AccessControlUpgradeable, ERC1363Upgradeable)␊ returns (bool)␊ {␊ return super.supportsInterface(interfaceId);␊ @@ -1014,7 +1115,7 @@ Generated by [AVA](https://avajs.dev). function nonces(address owner)␊ public␊ view␊ - override(ERC20Permit, Nonces)␊ + override(ERC20PermitUpgradeable, NoncesUpgradeable)␊ returns (uint256)␊ {␊ return super.nonces(owner);␊ @@ -1027,7 +1128,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1114,7 +1215,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -1211,7 +1312,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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 33e9034f943ef2d963c70511c5c19449254e0d60..1c43ad34c9c0e646c51f21a86c0ae449633d4415 100644 GIT binary patch literal 3447 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 Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -621,7 +621,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {EIP712Upgradeable} from "@openzeppelin/contracts-upgradeable/utils/cryptography/EIP712Upgradeable.sol";␊ @@ -702,7 +702,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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 6234121456c96572c5b484e9aab109978168192a..a2ed828abf8f15fc02f6192746c94ce9ce19f4ab 100644 GIT binary patch delta 1454 zcmV;f1yTB-5ugz=K~_N^Q*L2!b7*gLAa*kf0|1@YJi4SO*ZQFY9iEi}j~PFbg+StNk2tIwc@vyP+V6#-hj!T&UueSHM z9&D_?27N{yP=24fh`fx*8Kxv>2zrc&5zdYNX>e+nH%lcs3ABeDe-^+Tgfqaa5&!_0 zlyJd3Q&3i^MnjcyG`m~_<#y-8auvLKU3y)L48{p`kWa`X*rXOZfPJKYG2bs0^SyZ! z%x6w!zQ`_-6~FtF-i(7D&UIWIOie2$v!^`ZOx<3~?Plb>!`A3S~Zo2}1w znnrmu;E~$r&k*q(#9+_XpybY)veR$hS;C!G>1@Z^UWg((6Nqq32{*EI&UdI9$gY{r z#S8;<1_<=2ZPQcVaiq_208{?O0Yfi5%#a0oLvRpTwvlyH&$Xa`Kow|N3~>$wtpN`c zv2p)B5UAd=YCsM`PYkNDcS^U8e~_Fjqx7w2Jevc_Hyp`%KKES28d64IwnQdh7U{+r zoiH&Of*d`CHY8@E95hYp5fN&*zVQ&8K-)vJYm~?x37iu^G7cH)#pa&tyC`q@QuLvT zD!rjV{9Y)Q|3k}vN@R7to{i1;zb6=-&a@FdO6{?`kQXm4S1zC&dkh0ED1%3uh_Y%b z5v8-b^bzH7zjY95J6l9a=u93_k~IquQ3Cb+gD(?CW^&y`LyhaI=jS*dj%AZFT@w<= zs&m;$JaI4)!Ev(&#)9(BmkKEVy!^-f+(0SW?4FWIk_c#jnuv2FnmrA$Yam*zLAX5L zFu?*td-s$emiW~u^v4q-!j=5;TvE$nAGI+N>H& z9gZW>$zZt_a8dwW#I>6o*Uo;W4{Tr!1o@YPh=6uJ%-#Kk66WsSEyCQwhB=8fm*EpA z5a<$g79ziYWo?!gEfP)}_!O8#Drb?Bi8|nkVvDu4%}WcODO?I^=_089NP_C1=P{!1 z0`+X{%r;)C+MNLU%@^~j#OyAu;k=t}$PQUtZWz+t-{Dt;hHf<4W`I)_? z2-i11T)WWY`f$Dam4f`gEI;!1B3)+#rKEDTDX!#yx)^o5?=`4WjodrQM$;vDG)Ipj zk4!=$o;AM&@(S)RRUY9t^5rahR zQyW#DZ9i`w?sU4%XYJNU0qdGVKVAJNt5TBIB;yfD(?y*+OTRj?gJ1p;F~^KgahNMe z_gD(_4kYjhS(>9_U4ec1_O-#j9f~+1>_dfrn4zq_diY0-&p$+(o)}Pu#qa_LiNd0y zCp6oU!jNAwnIhKU0%uD4rf_Tv{Weitta}|Uwq)7JGIg>w`AM!lJ(t$BzU>_QCpw`* zo9O&qamT-2OR3x1d$7K7o)>un+uShO&=vHEL3c1T!iAR{=Tths^UXF})f|wRsN4-- z)RDDQu>w_n<7yt8eX9WbAJ_8OtN`|v06X?#(+~AY)7USrHQz({o_z1KY6dO>2x+{r Ig7#Vf0F)BLvj6}9 delta 1454 zcmV;f1yTB-5ugz=K~_N^Q*L2!b7*gLAa*kf0{|1=$v{{(V-291oTk98MX-TgZ;XlV zx_4wS{}fh|y7G}SBLZtTkypNddnK2_BL@ObZERsN1fSk(JZx+{*esQ><5DKTtL^=* z2OI0JL7!0vl;5W=A}=FyhAGJzf*vDcgma^R8l2kY%~DBD0_|bPp9L@n;SBJq1ONag zC0sDi6qHq}(NLuv%`VqKx!w7&Tm`RQmtL15gK+{K|9J%=b&hd~eM98|bqm>dBIIg|~n5nul=oB_%MAzc30Fpi)=r*PPCF@XX$ zOq+U^f!#hge(RWfj|OLdjBKrU?l(Jo&WjBWpQC1beds>__|a3+D1ECL&*nh#4M%dG&pj8hhLq8lEs@EWMY?fD zCrnI+AV*K34T+g32ThZDM1&fyZ#)Di(Du;m8YOZ^0_Oyfj6;TcvAO5^F3MZJ6n$u- zN^d9-e>W7%|Dk1nC9=9+&&Fo_-xG{ZXWED!rS{le$cvYjD;H3XJ%#}nl))oSL|HYJ zh|*bI`iOG4-#Q4joh_mybS94|$(jX-D1mzZ!IudmGr4Y}p~iL9^K+aJ$FfP8t_g`_ z)wygWo;a9@;J8@>V?lZ6O9hmFUjAc#ZlIKGc2CJ9Ndz>1O~kno&7KC>H4rVfd=%%vBlcj=A{MC6fT9dbP-g4Btdo1^BB>0 zfmZ&g#7(h`{XUh>(@59ZqNb!WdAyS=rtfZ_$Za|=r(gZIvT6TZ{z7{$o3@Cx{LJ1` zgzK9hu3hMHeYjrzN3WQc}6v6jyS8U5q;3_Zn2GM(&+tqv;YnnxjXN zM7q`ZrC*)c!7u-am}ADLILsBK zdn^Td2NHOMEX`4|uE4&0``TdN4n>?0_Mt+5%uv=|J^Ula=N}?XPYfu-Vt9drL}5|U z6PoQvVaP9;Oc85vfioq2Q#iJTew!#R*1ZlFTe56qnL62;{3O?&o=a<5-*%4u6P-|@ zO?3XQxZ_{1rPOWhJy_p3&x<^PZEl!s=n8topgR~E;lfLfb1I$R`DUA~Y7R(DRPF{} z>d4wDSaz|-RY*V?SYP7TZ-E7F%EPymGSj|!OCD$kU4*BHY3vu*n(rZePk#5aY6dO>2r#=U I4)$6A09uQ;LI3~& diff --git a/packages/core/solidity/src/generate/sources.ts b/packages/core/solidity/src/generate/sources.ts index c80ad5789..9dee4de6d 100644 --- a/packages/core/solidity/src/generate/sources.ts +++ b/packages/core/solidity/src/generate/sources.ts @@ -101,15 +101,15 @@ function generateContractSubset(subset: Subset, kind?: Kind): GeneratedContract[ if (subset === 'all') { return contracts; } else { - const getParents = (c: GeneratedContract) => c.contract.parents.map(p => p.contract.path); + const getImports = (c: GeneratedContract) => c.contract.imports.map(importContract => importContract.path); return [ ...findCover( contracts.filter(c => c.options.upgradeable), - getParents, + getImports, ), ...findCover( contracts.filter(c => !c.options.upgradeable), - getParents, + getImports, ), ]; } diff --git a/packages/core/solidity/src/governor.test.ts.md b/packages/core/solidity/src/governor.test.ts.md index cfb1351a9..e49920a89 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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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 cf418a4b81f33b21c1087c07692c5980ce8b17ea..63d7cb468e9308c72c3d501ca633eea81519e06c 100644 GIT binary patch literal 2350 zcmV+}3DNdJRzVy?i*v(1FO}U9W>+9W+R5n0c90l1 z)@SMZkROW(00000000B+o!xF5#}&uj7DWMBL6Ex^Xpw;%Aap=!DOIus>mmVcBoWXg zPGuMUKqIVnN7B^0GwYdINwndM0DXfzLHZWG>t$0E=v~pE=w*Rk^dXA<7?QIeB*i7I zCH2>h&E45E=bV|HJ-~?(FrZhNUFC~&>1(Dr`J`{`B1{qU z|1PPXHN)enu7!`bQ-&uCYLJ&}gb?BhuC$CjEo3J%og8WLjPfoi>rIYye(Y{~aq?%x zckT?0xKlozitc2hYtGt=cXrCn3L13^>b!ilmi~JZ^HjuO$$DZ|tj=8$#m52jNEAy- z60wr`lt`*$$rb6ujO*>)dv|m1B!AgCvPHM{_S1vKUd}}_G>>TD_8Z9G?d|k>`^0g` z7P+AG*_f^#Q^`aVTgLU}IONG0B_|>X#0BH0gU%IkN4il&(&sUg)F;P%a+oj2n+1K9 zb~QDM42I*t9}aD1!rXN+m@XWaz#L4P(+}CvE0?!SCBv>$Kezr|~syxY}q}PvKbv87aahFdXt=XC)^jBvjM_dh)mS!SO3{QG7t>4X#d^h@JoIJm#IluhcB7X(ScA@z`KdG+ zlht|bY|QPP+r$&HGsd3ztx);Ej5ltmlF|9qnqiN(ZT9eDrA0_mKq1LPzlZ!u$L|U(Zv<83Y#TyOdAk@R-W^`4E%< zN?4r$mVgpK32pIHX)=Nm>L}rdHYN1N0m6SRK=>Ab06+jB5CB3F+yW1p;sM|QZ~!;} z9L(xuzyaXEHm)fgoZD=ms7@ZS6=bmf(jtQZr3^EX!C~&;W?dO6D~})8v@{p;G4o}W zwlNu-I%zmhocHo*p1kLDN!78WV&QssLm}e7sS$q#hc~sw%>Nl9o(hcsD}WWi%Jol1 zz)B6Q#06NaN+$ycfCIL1jd9@JS{xuEWEz$0fCE&nqjDXU z>#w&0#r(MNtKw98lkHbQHG_( z=y3I@{~q>0VGk5w21EcN01?N0f_@aW`GWoBYOj4_m8%AV3fx$gEBVf&f8m;~FE#Pi+Jl4YG)N=p#1)`~ZFc zKNf=@sLw`j0$>0z02lxa00ylAgSTxk@I)AinET_P;6D}=`~y(X5DGGn&x;B&X*UN8 zjK#(SlR7-7+!xX@6Wu8ZSO9li7a8RD@ykm&_9Xf+ySgS47#P-`3DU`EG* z4i@BP;K8iZaq0P>*1E=kuwes2`sE`${qm76iKE2!B&r|tGvk*QE--9iLPhp!6UhoC zDptB8`~J2mzV_XIUVGi!%Z_cQF}X^Qq9FT9k0Rs=$`+v@ds*Xaq&Se`XrrI5eCxIz zVHTF+*cwAHT=0!)DCYJ*EsFUDNe}FV0$^Y#)Kc$++RD=p>590>Tt~)LX>U1LEpxU5 zfK#^UhUYp!37~{F`l&P-K?!w~aL=ZMU-8%D%SH$;TOr&A_8TniO`frJMV9^jEB z;gOY2c%+FA)ip6VG8+i|k=a0IqrzKY7BEX|CL@@oj#(Z|!z@#$IR0XB%b$?qK#BuM zffUDbr#MpN8TV^}jguQWP2o$QKsLYw;K8g;1|9$pY~vc^!8@hj)7$QyXHiESol4hF zh@cDtZ~ol^fj_@_jUeze)srTQPKeqz;$hP&J{XZS6)H6Ec_KkfR;e&a7NS#qALDpn zA*vK5PY)!EQ>V6{1tQAbofn#MB`hWWL@!^a;j+$5y zGXc#khYT0u5dn43R@tODS;wMWWxM)2uS*K1%?6u U@^5bP%ZzVp>$3HhbZAQ zkLdyV)ZX0P+`hNBw#I@`NKIb+Ce!*QIhGV2=wv|+@?wn;LR`U>mXWK4?4_oYLoJ?C-X~?f$)V1U-A*o!|8nuY zTO%WGl}{(4d#UJ}v!>#`JLP5tjd}%jUc6jO{ymO(B4W5?J_M?P~&7)eTE zv66X|NU9^r73oEc>+PMpw=?g=f9W~0MYneMl7q!w&O|&k52^1ATFBqA@7VSpu`IGh z&MAG`(A6Ub#D&{t_k z(_E3^aO``dp-oK~emrCJeE1>nt5?1u3Nzt$!9qoPkFw4VVimIaQS^g~!uV!PlpIs8 zdYJPDA5!Y6k0Tl}esVRY9f|yKjYXBJPBifFSwtiHQAnkejCX}`ed2hYq)Pqi&m^FM zkOQI}c|x`7ldSdV%$egy@#=Im&~)qq*YW*0Sjf-(YMXdexsru(ukSnRbYwE)I$lNn z`S>l?@Xl_d=Sn^pw|!`8ZrPYAMH6aVOfRS#=@oPG$d{QD%T~_Wjc)v4^?OU^r_yAM zSLeprnAthEi6>;Q!Jhf8P}#sV8#huZ*ZJjI&K_@@?BPaAi-076LgI&h89i?P+dz+h z-UNC8J%AoSkE=nC`9Q&zZSTG^DroEsSO6?oorskH3xEY(@l$Cs0t@P};AfRs;8B+a zj;|`9;C}`bd=DtN=1_1ABl9i?-&gxW|L%2opFiyDS;9EOz#@5<@?jJlQ8_;!f)YRp zs}sNyPy#5SD}E|XMo>Z>CH&Z=1iJ|k{%ZijcK`$c0sw&k5aQq#c+eIP00)2rzyaW3 zRwn}v00*XVZQDJb0MF6zO2$V zrrf4p63!Froh+Is?^u0Obu6w}xZ2%Ni1@E-#9zVTZEeZt|BMk&g+_oCzzSgH>L(*$ zr3O}_0<35uos){%hc~`3SmpCKz$!DbO6uR1sFDf+sen}42BL+aS&9o8|^!T|iP|6_^U!&p-p9fsXpAG#Nnybu{pk z5)Itj-U1E)2Y>^>0pI{|05|{~01kB0$-n{NfN5N79Qb7|4iFJAjmmYv0V>x~xsJ;9 zS6sQigUWTV0$2g8FsqZn3Sb4(xYn#-*Rw)i#y$xe)&~YO`~^krC~8OAVo9I~MeT7> zyN#0ec|47P0w`%;>HxdsEl><7rZbZf6jMhrKP~*KIF&BtI(vzSJy1w<046$=Vd*eB zTt4c*i#<@-0|l4?5r7Cl1R#R05J6!N)N%H>cKnHOu>P(A2R70ffCIn*;9wRw*Z~|g z?yq`Cxd<3{l104DZ;ad6S_K3Ff&f8gbuthH2x1!78bN+;BFK1I}audK0;0N$y zG5CS{Y~&^Y1^@$q0l)xY&>1jz+XMqw1fhty*8~OsF`(dEKtW3=NIgC;DoCYWA1uf% z&OI=x!!yb~A+3C(TO|Pt;Et;zgX~_Ohz2DebcYO5y?_RtMuT*aR+9~CZ37(4=s3{9 zg1ihom~}cXJs;Fs*BTHuOh8D!e1s=oKGG*q7~394^$kBWeqrDO!xkn~WUn@ntWct2 zr7N=UZRf?;o-@d5ukGFR*me?=tK=vOvM=>0LY|;(5el-GHNHlQ11XL!`svcQZs!qZ zVJVKS27=*&Z%jimH~(c&%-2YIU?&s+13RIXdMDIYmVQW9#6{*hQm#sR%fM=xvmF4O zvPIWC*8xfZC3MkGrO60NsH23tCMCoVV5OZPByO@HA`l*(GU4GEsPG9A9!PkAN0x*~ zRyyI4Bsx?-kHL}IK;Vze1~MBJ-U73LSvoTr!7O#ma(^0TnL5SscY|C0iWCP@96$=B zIF>ubkswdguLZVFZe%otFMR^p01to%vpN}g06Z{_YmEoLDE*$^wtbdH9Z`599WN$= zG6=l+jR69Gd-DoG;7OteaUm0#sJ#OlWfuB>^5oIMj6IH Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ @@ -311,7 +311,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -327,7 +327,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -362,7 +362,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -408,7 +408,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -454,7 +454,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -490,7 +490,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -526,7 +526,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -571,7 +571,7 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ @@ -588,14 +588,14 @@ Generated by [AVA](https://avajs.dev). > Snapshot 1 `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ import {ERC1363} from "@openzeppelin/contracts/token/ERC20/extensions/ERC1363.sol";␊ import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol";␊ import {ERC20Allowlist} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Allowlist.sol";␊ - import {ERC20Bridgeable} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Bridgeable.sol";␊ + import {ERC20Bridgeable} from "@openzeppelin/contracts/token/ERC20/extensions/draft-ERC20Bridgeable.sol";␊ import {ERC20Burnable} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Burnable.sol";␊ import {ERC20Custodian} from "@openzeppelin/community-contracts/token/ERC20/extensions/ERC20Custodian.sol";␊ import {ERC20FlashMint} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20FlashMint.sol";␊ diff --git a/packages/core/solidity/src/stablecoin.test.ts.snap b/packages/core/solidity/src/stablecoin.test.ts.snap index 02308f8dbce5f5387a0b6b1109367bdfddb9ee65..b1376b71322ecea287f15d7109107bd1f79bd921 100644 GIT binary patch literal 2106 zcmV-A2*vk7RzV`pVf%Ux04m<7E{VfA_+hxFR19seP#{mNd45B1TlxZcl^QF{2 zw2(yp_{jJ8_2C1xf^imf+y&o$1@t&63C9whIBL4z{t_2Tz;R_oin*n=6&D>rp1a z!P45oZ1W}PGU|fz=hQ>wMTFL{Vzh>!JBT!7(eU4CPMz|c4)O#s7mHz_&~t$Z$CU6! z3L(NS#dSb?e_ahCz#Pc3HIS+T4oUz3U{S&a^DRMHr5b*(l+(4#HBfG^ZgPDBj4{rQp~M26f!%n}=VrUP`krPt zm#-GuZk|N_980qi#wplMjJ>*dBx{G3g*b0SrH3P_s8cl%)jrG!p=~q7Ilu%944u_I zf>>3S3VwM8stQFdRdOKAW-QAbye!H8yFRf5rlAd^N)>p1$H5k$#MzgSk?_H9D=IT5 z-(&%Nauf(vN&{&$z(x;&E_EEbhsm}=?v#0YfMi@4p2N!QUhs>0m&5Sxx04;u{{ z3mb{MtN7#jhXw)(Cp@DL;s!4HUE`8p&VozkOR+dzqP8YR}wjuP9Uh)1NvutTh&)tyk|IMf&o;*gHl zyf1o`VX;3XlWA>M4gnj(4P%H4hAn~Y(J9D`G2xwvCOgQ<4stl+5@~;lAvb8;;3G}_qw&>W#SUGbuNZV}5)4_`!-$BJ+Ykln zt*CZtV5Zq@f}3Eb32xp5HnOk_9bT#So5^0knE=`a&Bk)x39*2;!4 z3Yq#aLKIT^Jm)wHnd)6F7S`a%rnL}vbP$^B`UH#p`q9*? z;4X@Dnrb$BP+e4>>&ZB)hb_JN4sD;ax`nxtT!|--`cxza>|(U1!Z3g#;WNTPr9-Kc zUN^%JvNCw^0MMY-0*9E?upDEI2?qUkFgL6O*FMqs|t zWE;51rEK3IY}utYdZ45%7k0<>Ch}xDIMsC^?*$nJh8(kZGS+jvkbFCwJUT)3)O~PQTe)|4lQSpRZqxe6Dkxr*fL7Sq~Yux6v5)J!}TMqMpGz zi+d}lnL}_20Y^Jl4_P}K z$+#(l3-Wz)vZD^P;r*xw`5>i4KvlrdE@Hw+1%>!S3#XTWozc;;r>@1?${JSAf$9-* zRQimsdP2!C`3+s5%ouI4*O&Ey%Xo1Qe2+beM(-5&y}+U4tw5MAv`|GZ*SACIf)_1& klsHSi0~fexhS-aon0bMhereNU7B_PAKYc2$KpIm30I;w0Q~&?~ literal 2102 zcmV-62+8+BRzV(K8ngoVb;L22LE|gv5~>MbRvM45)6X@|a75vp}+lB&uJ@(_x z8*kkReq*<9yf^;cShWf^))v2-SjHA298J`1L5e!;_gXa$?Ym>Et$KZ|&0jCbOu{Z?JYm<*Br$3u16tL@2Ccx3s z`oeVW7_=C5LGg3yA@VXpt6DKyRnT2TsIbFG&7I~sS(DWGz9=a7d{`hH!=3={;8}TS{CBG8kO#kq@qq$KverABZRii5a$3BEHHFd_X%QU zSt|Ht8K^20wN%Q0Fq^R~b97vg|F?W%2~0y9Mx`?F{HB8~K#6lGAtT{~-*!}HM!x9; z@X2W)R4EOlS_PYJ1X|Q_=sqSp3Y7!M5TJXAF>E6a7<%DjhHTJ01RIgbPj(2h?Rz#9 zNR4rz^$Lie1g!uc6EXep5!i!{kCHLNL?A|>qh7@AmQ1>i#!(gKzK7Uk+<4e%&{)_= z++D>V2Ok;;B%JV!I*1#%yn)?}$0u#UzRlxk*34T5*6Ktk zpN#}F;YNfQ6C&tIh%O{>2iXQnoY5$;a(R^42t_<4C59bhRjuxb8qY$F(IEEec+L5u zO&J!4eKMKWX6Xd5Gq_<4alx=9kUcmBnK4GZ6Z6hpLj)jeOZTnDIWO|Pr91afK)$%= z;_Uf^%H3wN-)$yZecyiOT_<$8uQ`}rLM-SwO=#_2S+8;G{-gVYn|DzA+RVME zKNsX^yhwYEviQhf%%Q)S-XmH*7u3ekkf(I(T}_i?`HpEV#2xL0=DI$?;&9@0YE^L8 z#W_ti8$GBlD$n(NoYj+--fV}q%URvVTuH9PlSh3j5(D-y+E-y1z>x46;h@x{)Jdi#s|T{!nn&mp@b&^Ti+1 zqPI9=9psU<$4%;FxR!00V#_ZjDR|1g`UUgULvfd=R{iWAz}wFG?6PH zAbEgXESC1P*z9n+5DOIvqlAbWPuk67Rhd)XgH=D)SoQsUv+8`@(c!SFg1f$~s=Amj zR+SdrC-WtBGFa6ogFvTi<(pHLJ>-{DPwK+poa&`Gb&m>TEcp+OPk+6PSn`#PS7_K@ z1_O8&XbI4Pyh4d}GO91I!>eK0!KqWWKlHFl?ifQ3!!X!_NPXyBkq8sguX+r&+&$!q zl@#hXK~VehsJopqN89sI^hlUci0m^a$pqlja7`k<+eB={3nN|_@xmL(3wI5?Ah3(L zfUakViT|y!!k_t$iH}&}a#%sl6f0PPlGMf?Vd=okA3Qb%rsao{T*oGr)pqS=ICa{X zh>0MQ)O64UK?h>O!30S`CJ1!Vgo_W5Z9$H70T-567oKf5Ru`8NDLp^MT#1xHJ~`O| zE^;Y5GzeRCsf}ipl*QccxZXsbOb4f04&?11qri}3_Krr6|KNCk4m zj+dhcCEocRH`BE3_>R+UHg|s4%;uLn*CU_n3g@X@ zF9RgDN?Q&sD0!K>{h?pO?@WkIo~^_v;#UrK@s&=R?XtK^dN@*ba0^5mBC8EC!FG_j zGgV7(NPy|;%yj0}na~|J$kqE#3V_pQ{dN@8jjfVs%UnEdQx&Dh9>+UY8(F)X$+#(l z3vzxlGNg{Q;r*x$c`v0zKxM$t9%8~s1-bZR3m2D!-JzqQr?17@>NKp3L)BB{sdO1% z`J57BvKzWa*)iH;uP^I8m+|}_`VKvjM(-5&y}+U4^+1>wv`|Sd*AGJJf){mrkXTE$ g0~fexhWLw|m|4M>ZfVnE<~MruKl`<6Jswj40Q~Ly@c;k- diff --git a/packages/core/solidity/src/utils/version.ts b/packages/core/solidity/src/utils/version.ts index 3daddc218..10ab4ab89 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.0.0'; +export const compatibleContractsSemver = '^5.4.0'; diff --git a/packages/core/solidity/src/zip-foundry.test.ts b/packages/core/solidity/src/zip-foundry.test.ts index c1214fa24..ad4da3d08 100644 --- a/packages/core/solidity/src/zip-foundry.test.ts +++ b/packages/core/solidity/src/zip-foundry.test.ts @@ -50,6 +50,28 @@ test.serial('erc20 full', async t => { await runTest(c, t, opts); }); +test.serial('erc20 ownable, uups, crossChainBridging custom', async t => { + const opts: GenericOptions = { + kind: 'ERC20', + name: 'My Token', + symbol: 'MTK', + premint: '2000', + access: 'ownable', + burnable: true, + mintable: true, + pausable: true, + permit: true, + votes: true, + flashmint: true, + crossChainBridging: 'custom', + premintChainId: '10', + upgradeable: 'uups', + }; + const c = buildERC20(opts); + await runTest(c, t, opts); +}); + + test.serial('erc20 uups, roles', async t => { const opts: GenericOptions = { kind: 'ERC20', diff --git a/packages/core/solidity/src/zip-foundry.test.ts.md b/packages/core/solidity/src/zip-foundry.test.ts.md index 50eb62664..1e6c75e48 100644 --- a/packages/core/solidity/src/zip-foundry.test.ts.md +++ b/packages/core/solidity/src/zip-foundry.test.ts.md @@ -120,7 +120,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -329,7 +329,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControlUpgradeable} from "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol";␊ @@ -519,7 +519,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ @@ -685,7 +685,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -851,7 +851,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC1155/ERC1155Upgradeable.sol";␊ @@ -1010,7 +1010,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -1165,7 +1165,7 @@ Generated by [AVA](https://avajs.dev). }␊ `, `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.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 59fdb685e042abe3bdcc4081e5727b55d9004bdb..968416736a7acbba54409f4b5913447a9d2685a6 100644 GIT binary patch delta 2123 zcmV-R2(RqYLk1bn4=Axma}5M`xfRh43c@n{hGOazcr;aPZgvIYZ_em|EhB<}M1a-#&Gn_Vt+j{um%tp@Mz#&NXKuY+tt2WcYQ7KR zv9kPNBbP^_Lh^`Xkzj!>D695`?RsuZu4kfcJrhl9A!GRycD-6z>4MO-l{%=bZ2Y*A zA&88YAdBkvW2%2G$u}8eXQrm6z)dhc1#aF14zjTaU0&7kF>KOikcc(vqUz$(`}3Rk zH@4;%SC$`yolghp{8kBj>nNU2m@sN4%pXJ+j+f|=OK*{;#O-E9)snqd^!dyJa#(h8 zi+qNmjrBkZS_c6pV&>M{0D3a_>z9-0c&%@+Bm>njB~E|tNmBa?EuRC(P?(-GxjO_5 zJq|F7@&>)jG&3r11-=6XinW%Lzvqm}KI}j@Ks~n$M~Of;F3@tT$(i4q>b>clbxj`l zh?!cENC7E05}0pk62_lcYr0F4b0#u#{B;MT-2rOqU=zi&9tVa*zz7Fb)%&c@QN2=K zDHAE7_3eLcA)eD)h}SM1f440YoBrLiEIsztSu&B4JNzrVs-wB`TD^z5Qy#XZ9=Lhk z@l07m9l-ckf7u-{DQ2{L(n0KG)ukRGPH&N*UY>2bW} zG)YJ*<8~aJ@2Fj-LU12P2yPJgybc(35zhf~|CoOV2C z1&~_+xsw9qhUVY&+YCDBNT_Zjh#JcUCyVfo&rS`5X2uJU_>@87+nr47qXG?;8BT3N{!QfT|l7l($ z=#zhn^e5Ox_hFX?;*-j!{cSHaQ2&<#sK3}iyQUJ1%aoSWW(R)>iQA;l@yU-GYoD| zX`|4#MAH$T>W5eelZs_PgTXJxn)`4Jv-ondb4ydUJM!m;jn*& z8c@c~B(&ZKwWknM2ZuOgFH2>75K7yNN7dobd>oxJz+!>}%fjqip`EuRMGk0xCrcO& zNR~WBml~jmGF6`$rkLX7aQxKxC4zRodADF7I+Wo(q_m2yOwjJK+=k1=G1@ndMw5F5 z8Z%F6qj1?=xV3whaO*j3cuoPc9e{twW?|dJ?qVQhI|-YKp__UMDq5`^f-{DGDbw2k}(e8c*bC0sMrwr?|uRQ9R>c& zEK7snzjIuH&J)q|5VNPJZ{3PAh<+&Vm0QD}+yA0$7{7YCcy3=nc^4PTE1ug=F5Ff; zw=bZciG_NK=k}M{C$J?gp4)#<94a&7VS7#@b>^?v|6MvCfJE+<$9|_QiS^%nfMU!i z@QQlG^JFO|1^|=;<~`+2jbHNFtz=NG=&<2+1BR`A>>MN>=PK^iejfYTR9Q}zwdE=o zOggWJJj%M#j{=5M4@V<6OeFZKp&}jf{_xi$o#1JEe>ftU9e2X^CzXGj43C*p1`JoH zWKNmqCz$#->nDHtT&hb(-aIQZhoJHsxH{OFot{Q0%w;z*HgUfgW6xH$4`X0pY_ zk>cV=adD(T6N-x?cxt#^}?#q^zg-PRWNOr_<>{Cda*0l0;IT z+G{0a-uTGaAn(e@Q*eL7L-tZ#@fZX&jC;%D?13r2xT*U{CXHjz1On%f-fD&K!5qA#0*8 zbo}iEPE=3#LWee6dZ*emX5VI2SDi3yG7#11N$fw4)iu@Ayf%N4oBaRWIK$*W$NFGD zFHidTY!C2{>^nKRPTaA>r#mCuqCZzyrydd=Oxiivom}O+G+v@NB}kpX zdyv33a{4obZ~SA>3H<+FG>ku7GmN*26Zj%SxWE}gaRUErW*@}~d~pJQni=3ga{-M0v-m-3PVVV@&!tD5 zz^D3_I$7`W7;*sq+Y5LAJ|XDPArHfILhd2|ed)wR)=>}P^n`%1{{v}$ayf5+008I? B97zBG delta 2122 zcmV-Q2(|a28=xC9K~_N^Q*L2!b7*gLAa*kf0{~C7Oarca{aL~a0P!(nNwrTt$EuAJ}s>+%uJ2qBjj*c zA!+nGkIB7&5$XAdVTPUvL^!5|TPYrS{NHyW@2p@Vjw2vuk|$vm2K=}^&^&VaBj({_ zsULC3I4YYsys;yQBDPPsKVXxJf zP*3$a9!(XSn_YqUn=?9K%ZMN#5ny$GbA4%TYwh9vB`^oJk!{26nOkpHD~XDVn(u>n ztSmp+$mNl!kUZj8Bv@bz%Bp=~yPg}9>zQa<&qUK&$XNb_U9VPFx*#-dr4A}98$YgO z2qL2;$fElFm}-AZ@=eCrnW?EMa1%^VftxphgKX?UmsfRs44bqWBw~%asJgiH{`}_s zjjj2`mE{Lv=hHztzg5ECI*R8LCXAX1^9PZI<0U%e(p#h{al2VjwPddqeLk~*9F|?& zBA;PsV?B_9)ffS%0#`sE}#Uh5ky$v`zsiIabOlGMIJ%jWS?#4?EBeP|xkcQ6kWd3$)y7a_0A@dT%;sU6Ths zVy0FkQa}oh1m;_sgz+cVn(mV1oQcdFf8D`ocYvBY*hKNH$AKXcFv3Aq^**a}RIgN5 z%0xS(UKR_~$il!tAp2X0<> zJX01|r)xvEs+w%3Hegq(3Er#?*oJC?w-mt%>^IYSf=nJCKrazEq=)IQbB>r;dK_;# zO%jsIxE%-QJ8GAy5ZuQRf*S-ruLDM1#B+e$Kjwb{xj%ftF#h|ZVR+XJ<9mk&a{vB( z0pu1y?xX;@q4_ucHiHg25~|w>qQ-K;$s)Ytvr_}1nehT7K4p+NIc(OEvE&g7q=byC z%oymkv?h-Nfs9TdIgQIHtL4_TS{Td$!2&dx268cyrWs(@*^*%2NK*7fFt`Ub>Mu4>uNRZ^1nko~oI7y8HQ~U$UdA>3&=uCw z)CKyVMgNb3<16#V$b9^L81~QTlP;Kxw_#>9e>OK)*H>j#Rb{}Hfyx_-odB}HV|41?QK z+9`XNC|oudZtb2W+RbV2jG9PS=ctQyBG-BPQqql=qBQnab1C!eS2nF0lRcJ zJOu5BcCUXm4BEA>8OFlv1+-g0y9KmcK)VIBTR^)7v|B*C1+@FLLc4Di(C#wXQr(_PG^l*K8#Y+;~{^{{Y)kh z6;0c@4*HcI1bj{sUYVMnIjCe7k-R-KJq{$Pj1iHhWQ+qio-r60DmDcEyI;V6M}hw` z%hDkD?;Ka4^F;JK#O&$mTeqSNq94k8<<_w0_P;0_#;;y3p4%5t-o=ITis$x|3%3=| z?F*=9VxgYmx&5W~32aG==k|XShsun2*q)O}o%!qaf0xb&Ad!3JvEM06V*NKCpcwNB zyrLfQJXwl~0RZKIc~5y$ck&RxuG5Yi_DeEb|Q}W@+>2!LK$#E~0B$1S- z_FBo9H$E~p$h-3K6x@ICkiAq_JO%*`s4aXNsT8_o7X zw>e(=*Pz=RuUs{Zf4*oK2j${6M}eCOnZ=+70_sfR=dlXebvCs+9{4OkS=B|?@tg8z<62~sEU z9we}hoc;{q8~+$|0{_1k4dV~j4CAfh1ir`+E^vlWoWMVu*++2#U!1_7W(N4zA_KhG z8Q{5{z^6082|Is;|IM>;2tO%l<;6aYS9J5y8)?zawC|Ol=!t%6ln!;k6SvGeu-Pn0O$rJ Ang9R* diff --git a/packages/core/solidity/src/zip-hardhat.test.ts b/packages/core/solidity/src/zip-hardhat.test.ts index b8383e896..097e231ea 100644 --- a/packages/core/solidity/src/zip-hardhat.test.ts +++ b/packages/core/solidity/src/zip-hardhat.test.ts @@ -50,6 +50,27 @@ test.serial('erc20 full', async t => { await runIgnitionTest(c, t, opts); }); +test.serial('erc20 ownable, uups, crossChainBridging custom', async t => { + const opts: GenericOptions = { + kind: 'ERC20', + name: 'My Token', + symbol: 'MTK', + premint: '2000', + access: 'ownable', + burnable: true, + mintable: true, + pausable: true, + permit: true, + votes: true, + flashmint: true, + crossChainBridging: 'custom', + premintChainId: '10', + upgradeable: 'uups', + }; + const c = buildERC20(opts); + await runDeployScriptTest(c, t, opts); +}); + test.serial('erc721 upgradeable', async t => { const opts: GenericOptions = { kind: 'ERC721', diff --git a/packages/core/solidity/src/zip-hardhat.test.ts.md b/packages/core/solidity/src/zip-hardhat.test.ts.md index 71c7a583b..f7811dc9c 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.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {AccessControl} from "@openzeppelin/contracts/access/AccessControl.sol";␊ @@ -137,7 +137,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC721Upgradeable} from "@openzeppelin/contracts-upgradeable/token/ERC721/ERC721Upgradeable.sol";␊ @@ -242,7 +242,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {ERC1155} from "@openzeppelin/contracts/token/ERC1155/ERC1155.sol";␊ @@ -326,7 +326,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ contract MyContract {␊ @@ -395,7 +395,7 @@ Generated by [AVA](https://avajs.dev). [ `// SPDX-License-Identifier: MIT␊ - // Compatible with OpenZeppelin Contracts ^5.0.0␊ + // Compatible with OpenZeppelin Contracts ^5.4.0␊ pragma solidity ^0.8.27;␊ ␊ import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";␊ diff --git a/packages/core/solidity/src/zip-hardhat.test.ts.snap b/packages/core/solidity/src/zip-hardhat.test.ts.snap index 1863649b69c254aa8a5b26bc602497cd6d4b0cc9..c2b2fef64de128db257be4f7f41b2623f5698d7e 100644 GIT binary patch delta 2368 zcmV-G3BUHf62lUIK~_N^Q*L2!b7*gLAa*kf0|3iWD+Y*KF9!#N^}P0ff;CXKTbBT> z35kPZ#>6f2qVpe%2mk;800003?O9E49Jd+f%2w=bf*3*a1BgKnv&L$6wXWMccq9Qq3_dM(gX4?X5uApf9;9*cq; z&g|^$=wq$;BZvgp(r{ir?+3~EeO}Jjy>7_;7m=$Tf1~fNple9~)UMawyNeLIj}ZF9 zb%g%AJ$iW6>>LLnqkSYyNNFp!lL55L@e-9#}7cxIZsKWjgS0FC}Z2(Hhk2&+t zMoknAWh<4n0QKxG-Wcv^rI<==)HLzfLfgkIYE3-0SF^XqYx`jAw14NTiI3_SW857o zkheNGPP!rWvCo-Qgem-FWq13**520UqX&2yzX0DSFFFgiU8nHEX)K+Jv9bPmrxK&^ ze?nsz5Hm|8zT(0qK_Ea%EWoER1*V!f8w#LDl2EM#5oM#%m?RR!=sBWHfoK?D{bO8r zosA(jp>>+r+1UA|QxZsnRuD_yALUYe8rLmY)oHie_$Hoj8T206TF^ zU8{w627r4!4EX_N{anAqL;&XdAOsCS@4+tk!A>Ot{#w(e;m&5^4kXx+}fB$GR z7Jb+!VFIIVXI6=kFdxYDy2X<}I_jh2T;7^8i9vXoA*lgcajLL7(#+(a+-iQnif1Mb zbN;wb;ot-_vt*Ozvk`&-l?W!WYrQYqoW8fFTVqlqGJB8fmO<2N8HM}sm;|U9hjzP;x&MD5rE#xqzuGqnqdh_QP!7>x#K)mG@>sx;~B*QOl}Vru@VV1?eKB> zhxv8ftRFAc>u_isv3bK9xs-=#CJWR3n#Oh*iNIOR12QK`6o+6;bF9IRf3djj&8MRQ zNMF!c**EE6M5uY9EPzAr3z?3lg3`(Sa1=;Y(1y)(-8$fqL=CtYfrcps)B_vqJDK+V zHHd))zKjyHeXn>RMskF%g&$%5J#?Y(Y7 z!(f94NeKC_J5e?5GinARe=|WklM7kE(*?-XpY+jbVmE5w<)7mteSUS~+FaXQ#M_{< z6ay0XxWH-vIA;+=^pgmflDG>Y*GD(q){$iw%Q*5f;asEB#7_(5ZM@iKMK-N1&(gwe z&+t)>d%RRXZj3hM)hu>j&E&Cz!x(&(hs_@lT3}EZ)BuDmpJg4he{^qlp=fWO&D=Ek z>jJ(5>G?IzIZaIDkogmmSwymy;vv!GV~CeAIUrP7JG?%qlEg^;7Ozl)oO_%hHskaJK3v;Pqdp_iGD@Dr-AP)J^ zJ?Fl%xj%)BDlt8bwpez3KAr!&7h^7V{% zWv&pGQA2d6GvAs(Ds@BaI`5H?zMNJ|EcoHjwn<|kB?X%Yf2MA}qA#}Dp9Cps+1-7z z{fa7zj+9_dYy8H1HoR{<&P_aNbQ6~p*eus-weUSZk%~u){AFgHoJ*J_J(we!0TDLv#TcHWsv%yG3$8;2> zO5sVRPq2M2e`PE5WftMw1qKJ}nndX=WXk+G==^Aag+pUlN`)&K?%mhTaC6bI{hP^U z`@?R{A3PKO=10qf&rVNgO`6yfTK?9XqT9D;N}RBn73fNKSYmm4rEKc@o_O9xsrLj^ z%Dk}@>4~ltZpnxyep*au&rH5LCp*$=c?e#}`|jrke;ucqAi#>_pB$BN`k+=)x7^0@ z=b9qbHUIcEXll!&2v~sCfa?1;r8Aud=>j&jMsb`-NU3(q26i9B@L&J}Gzwt>js=fF zghMOE5L`&Fp01VW6Xg$F*NobZXXJz#weNHcV!?Iw_TZ4JRUYW5&Y#eG{JS0Fbp}es zacR4yp{au$8alIt}WACJ^pLT@_$+MPr1gc=&mnV;}b#M_E?Rt%KH`7K1?q) zPAc}ZUsVRW3&k~?g^w<)&t>&_m#WXV=uK6h>S{^3%y0l21FSjI4dnWu#!vTdE|v1?6ILzEUtn`k(ybVsrPYUtF#) zS7q?O)eyRF+qHkbH*E%ox6!V>w(lU7HKP3e;LU#rxV+WAyw$$E)vhj>|E<0KTkTTf mzwiz9<*oE9+)D4gwp-~R4zrkQe@#m@3jPl!!;JawFaQ94_oit8 delta 2363 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 hTj|%hmEL<}x6(fxW-- -
- * Experimental: - These features are not audited and are subject to change -
-