diff --git a/.changeset/better-cases-ask.md b/.changeset/better-cases-ask.md deleted file mode 100644 index c08a8ff1..00000000 --- a/.changeset/better-cases-ask.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`ConfidentialFungibleToken`: Change the default decimals from 9 to 6. diff --git a/.changeset/cold-nails-go.md b/.changeset/cold-nails-go.md deleted file mode 100644 index a860f691..00000000 --- a/.changeset/cold-nails-go.md +++ /dev/null @@ -1,7 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`VestingWalletConfidential`: A vesting wallet that releases confidential tokens owned by it according to a defined vesting schedule. -`VestingWalletCliffConfidential`: A variant of `VestingWalletConfidential` which adds a cliff period to the vesting schedule. -`VestingWalletExecutorConfidential`: A variant of `VestingWalletConfidential` which allows a trusted executor to execute arbitrary calls from the vesting wallet. diff --git a/.changeset/fancy-bears-travel.md b/.changeset/fancy-bears-travel.md deleted file mode 100644 index c623be6e..00000000 --- a/.changeset/fancy-bears-travel.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`ConfidentialFungibleTokenVotes`: Add an extension of `ConfidentialFungibleToken` that implements `VotesConfidential`. diff --git a/.changeset/fifty-parrots-invite.md b/.changeset/fifty-parrots-invite.md deleted file mode 100644 index dfa27947..00000000 --- a/.changeset/fifty-parrots-invite.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`HandleAccessManager`: Minimal contract that adds a function to give allowance to callers for a given ciphertext handle. diff --git a/.changeset/gold-brooms-crash.md b/.changeset/gold-brooms-crash.md deleted file mode 100644 index bd6067ce..00000000 --- a/.changeset/gold-brooms-crash.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`CheckpointsConfidential`: Add a library for handling checkpoints with confidential value types. diff --git a/.changeset/nasty-camels-attack.md b/.changeset/nasty-camels-attack.md deleted file mode 100644 index 5b6186ef..00000000 --- a/.changeset/nasty-camels-attack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`IConfidentialFungibleToken`: Prefix `totalSupply` and `balanceOf` functions with confidential. diff --git a/.changeset/old-chefs-lie.md b/.changeset/old-chefs-lie.md deleted file mode 100644 index 708b1f57..00000000 --- a/.changeset/old-chefs-lie.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`VestingWalletCliffExecutorConfidentialFactory`: Renamed to `VestingWalletConfidentialFactory` and default implementation removed in favor of a user-defined vesting wallet implementation. diff --git a/.changeset/poor-colts-glow.md b/.changeset/poor-colts-glow.md deleted file mode 100644 index 46cb05cb..00000000 --- a/.changeset/poor-colts-glow.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`ERC7821WithExecutor`: Add an abstract contract that inherits from `ERC7821` and adds an `executor` role. diff --git a/.changeset/pre.json b/.changeset/pre.json deleted file mode 100644 index 25ffdfa2..00000000 --- a/.changeset/pre.json +++ /dev/null @@ -1,20 +0,0 @@ -{ - "mode": "exit", - "tag": "rc", - "initialVersions": { - "openzeppelin-confidential-contracts": "0.1.0" - }, - "changesets": [ - "better-cases-ask", - "cold-nails-go", - "fancy-bears-travel", - "gold-brooms-crash", - "nasty-camels-attack", - "old-chefs-lie", - "poor-colts-glow", - "quick-lights-type", - "real-beers-attack", - "six-walls-hug", - "tricky-boxes-train" - ] -} diff --git a/.changeset/quick-lights-type.md b/.changeset/quick-lights-type.md deleted file mode 100644 index 75f0d077..00000000 --- a/.changeset/quick-lights-type.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -Upgrade all contracts to use `@fhevm/solidity` 0.7.0. diff --git a/.changeset/real-beers-attack.md b/.changeset/real-beers-attack.md deleted file mode 100644 index 64506a3b..00000000 --- a/.changeset/real-beers-attack.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`VotesConfidential`: Add votes governance utility for keeping track of FHE vote delegations. diff --git a/.changeset/six-walls-hug.md b/.changeset/six-walls-hug.md deleted file mode 100644 index acb057c4..00000000 --- a/.changeset/six-walls-hug.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`ConfidentialFungibleTokenERC20Wrapper`: Add an internal function to allow overriding the maximum decimals value. diff --git a/.changeset/tricky-boxes-train.md b/.changeset/tricky-boxes-train.md deleted file mode 100644 index 0f332a2b..00000000 --- a/.changeset/tricky-boxes-train.md +++ /dev/null @@ -1,5 +0,0 @@ ---- -'openzeppelin-confidential-contracts': minor ---- - -`VestingWalletCliffExecutorConfidentialFactory`: Fund multiple `VestingWalletCliffExecutorConfidential` in batch. diff --git a/CHANGELOG.md b/CHANGELOG.md index 37c894bc..d018e3a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,24 +1,28 @@ # openzeppelin-confidential-contracts -## 0.2.0-rc.2 (2025-07-14) +## 0.2.0 (2025-08-14) -- `VestingWalletCliffExecutorConfidentialFactory`: Renamed to `VestingWalletConfidentialFactory` and default implementation removed in favor of a user-defined vesting wallet implementation. ([#109](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/109)) +- Upgrade all contracts to use `@fhevm/solidity` 0.7.0. ([#27](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/27)) + +### Token +- `IConfidentialFungibleToken`: Prefix `totalSupply` and `balanceOf` functions with confidential. ([#93](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/93)) +- `IConfidentialFungibleToken`: Rename `EncryptedAmountDisclosed` event to `AmountDisclosed`. ([#93](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/93)) +- `ConfidentialFungibleToken`: Change the default decimals from 9 to 6. ([#74](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/74)) +- `ConfidentialFungibleTokenERC20Wrapper`: Add an internal function to allow overriding the max decimals used for wrapped tokens. ([#89](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/89)) +- `ConfidentialFungibleTokenERC20Wrapper`: Add an internal function to allow overriding the underlying decimals fallback value. ([#133](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/133)) -## 0.2.0-rc.1 (2025-07-12) +### Governance +- `VotesConfidential`: Add votes governance utility for keeping track of FHE vote delegations. ([#40](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/40)) +- `ConfidentialFungibleTokenVotes`: Add an extension of `ConfidentialFungibleToken` that implements `VotesConfidential`. ([#40](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/40)) +### Finance - `VestingWalletConfidential`: A vesting wallet that releases confidential tokens owned by it according to a defined vesting schedule. ([#91](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/91)) - `VestingWalletCliffConfidential`: A variant of `VestingWalletConfidential` which adds a cliff period to the vesting schedule. ([#91](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/91)) -- `VestingWalletCliffExecutorConfidentialFactory`: Fund multiple `VestingWalletCliffExecutorConfidential` in batch. ([#102](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/102)) -- `ERC7821WithExecutor`: Add an abstract contract that inherits from `ERC7821` and adds an `executor` role. ([#102](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/102)) -- `IConfidentialFungibleToken`: Prefix `totalSupply` and `balanceOf` functions with confidential and change `EncryptedAmountDisclosed` event to `AmountDisclosed`. ([#93](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/93)) -- `ConfidentialFungibleToken`: Update `totalSupply`, `balanceOf`, and `EncryptedAmountDisclosed` as required by interface changes. ([#93](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/93)) -- `ConfidentialFungibleTokenERC20Wrapper`: Add an internal function to allow overriding the maximum decimals value. ([#89](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/89)) +- `VestingWalletConfidentialFactory`: A generalized factory that allows for batch funding of confidential vesting wallets. ([#102](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/102)) -## 0.2.0-rc.0 (2025-07-04) - -- Upgrade all contracts to use `@fhevm/solidity` 0.7.0. ([#27](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/27)) -- `ConfidentialFungibleToken`: Change the default decimals from 9 to 6. ([#74](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/74)) -- `ConfidentialFungibleTokenVotes`: Add an extension of `ConfidentialFungibleToken` that implements `VotesConfidential`. ([#40](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/40)) -- `VotesConfidential`: Add votes governance utility for keeping track of FHE vote delegations. ([#40](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/40)) +### Misc +- `HandleAccessManager`: Minimal contract that adds a function to give allowance to callers for a given ciphertext handle. ([#143](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/143)) +- `ERC7821WithExecutor`: Add an abstract contract that inherits from `ERC7821` and adds an `executor` role. ([#102](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/102)) - `CheckpointsConfidential`: Add a library for handling checkpoints with confidential value types. ([#60](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/60)) +- `TFHESafeMath`: Renamed to `FHESafeMath`. ([#137](https://github.com/OpenZeppelin/openzeppelin-confidential-contracts/pull/137)) diff --git a/contracts/finance/ERC7821WithExecutor.sol b/contracts/finance/ERC7821WithExecutor.sol index 533f1968..1c27b1ef 100644 --- a/contracts/finance/ERC7821WithExecutor.sol +++ b/contracts/finance/ERC7821WithExecutor.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/ERC7821WithExecutor.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (finance/ERC7821WithExecutor.sol) pragma solidity ^0.8.20; import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol"; diff --git a/contracts/finance/VestingWalletCliffConfidential.sol b/contracts/finance/VestingWalletCliffConfidential.sol index 12f86b20..79eaae4b 100644 --- a/contracts/finance/VestingWalletCliffConfidential.sol +++ b/contracts/finance/VestingWalletCliffConfidential.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/VestingWalletCliffConfidential.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (finance/VestingWalletCliffConfidential.sol) pragma solidity ^0.8.27; import {euint128} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/finance/VestingWalletConfidential.sol b/contracts/finance/VestingWalletConfidential.sol index bca8b4e0..d7ac58b7 100644 --- a/contracts/finance/VestingWalletConfidential.sol +++ b/contracts/finance/VestingWalletConfidential.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/VestingWalletConfidential.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (finance/VestingWalletConfidential.sol) pragma solidity ^0.8.24; import {FHE, ebool, euint64, euint128} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/finance/VestingWalletConfidentialFactory.sol b/contracts/finance/VestingWalletConfidentialFactory.sol index bcdc95f4..097cadf4 100644 --- a/contracts/finance/VestingWalletConfidentialFactory.sol +++ b/contracts/finance/VestingWalletConfidentialFactory.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (finance/VestingWalletConfidentialFactory.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (finance/VestingWalletConfidentialFactory.sol) pragma solidity ^0.8.27; import {FHE, euint64, externalEuint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/governance/utils/VotesConfidential.sol b/contracts/governance/utils/VotesConfidential.sol index ca42478b..e66d390e 100644 --- a/contracts/governance/utils/VotesConfidential.sol +++ b/contracts/governance/utils/VotesConfidential.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (governance/utils/VotesConfidential.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (governance/utils/VotesConfidential.sol) pragma solidity ^0.8.24; import {FHE, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/interfaces/IConfidentialFungibleToken.sol b/contracts/interfaces/IConfidentialFungibleToken.sol index dfdbd552..72732fcc 100644 --- a/contracts/interfaces/IConfidentialFungibleToken.sol +++ b/contracts/interfaces/IConfidentialFungibleToken.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (interfaces/IConfidentialFungibleToken.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (interfaces/IConfidentialFungibleToken.sol) pragma solidity ^0.8.24; import {euint64, externalEuint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/interfaces/IConfidentialFungibleTokenReceiver.sol b/contracts/interfaces/IConfidentialFungibleTokenReceiver.sol index c211fd22..53a7b4b9 100644 --- a/contracts/interfaces/IConfidentialFungibleTokenReceiver.sol +++ b/contracts/interfaces/IConfidentialFungibleTokenReceiver.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (interfaces/IConfidentialFungibleTokenReceiver.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (interfaces/IConfidentialFungibleTokenReceiver.sol) pragma solidity ^0.8.24; import {ebool, euint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/package.json b/contracts/package.json index 6942077c..a274d66e 100644 --- a/contracts/package.json +++ b/contracts/package.json @@ -1,7 +1,7 @@ { "name": "@openzeppelin/confidential-contracts", "description": "Smart Contract library for use with confidential coprocessors", - "version": "0.2.0-rc.2", + "version": "0.2.0", "files": [ "**/*.sol", "/build/contracts/*.json", diff --git a/contracts/token/ConfidentialFungibleToken.sol b/contracts/token/ConfidentialFungibleToken.sol index f152fdfa..e1a95286 100644 --- a/contracts/token/ConfidentialFungibleToken.sol +++ b/contracts/token/ConfidentialFungibleToken.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/ConfidentialFungibleToken.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (token/ConfidentialFungibleToken.sol) pragma solidity ^0.8.27; import {FHE, externalEuint64, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol b/contracts/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol index 957c2d94..e00f18fe 100644 --- a/contracts/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol +++ b/contracts/token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (token/extensions/ConfidentialFungibleTokenERC20Wrapper.sol) pragma solidity ^0.8.27; diff --git a/contracts/token/extensions/ConfidentialFungibleTokenVotes.sol b/contracts/token/extensions/ConfidentialFungibleTokenVotes.sol index 2ce9a401..f4c9acbb 100644 --- a/contracts/token/extensions/ConfidentialFungibleTokenVotes.sol +++ b/contracts/token/extensions/ConfidentialFungibleTokenVotes.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/extensions/ConfidentialFungibleTokenVotes.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (token/extensions/ConfidentialFungibleTokenVotes.sol) pragma solidity ^0.8.27; import {euint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/token/utils/ConfidentialFungibleTokenUtils.sol b/contracts/token/utils/ConfidentialFungibleTokenUtils.sol index d3c1ef5f..678cccae 100644 --- a/contracts/token/utils/ConfidentialFungibleTokenUtils.sol +++ b/contracts/token/utils/ConfidentialFungibleTokenUtils.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (token/utils/ConfidentialFungibleTokenUtils.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (token/utils/ConfidentialFungibleTokenUtils.sol) pragma solidity ^0.8.24; import {FHE, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/utils/FHESafeMath.sol b/contracts/utils/FHESafeMath.sol index 2239ecce..e184413c 100644 --- a/contracts/utils/FHESafeMath.sol +++ b/contracts/utils/FHESafeMath.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (utils/TFHESafeMath.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (utils/FHESafeMath.sol) pragma solidity ^0.8.24; import {FHE, ebool, euint64} from "@fhevm/solidity/lib/FHE.sol"; diff --git a/contracts/utils/HandleAccessManager.sol b/contracts/utils/HandleAccessManager.sol index 2d5fd3ed..f8981ca5 100644 --- a/contracts/utils/HandleAccessManager.sol +++ b/contracts/utils/HandleAccessManager.sol @@ -1,4 +1,5 @@ // SPDX-License-Identifier: MIT +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (utils/HandleAccessManager.sol) pragma solidity ^0.8.24; import {Impl} from "@fhevm/solidity/lib/Impl.sol"; diff --git a/contracts/utils/structs/CheckpointsConfidential.sol b/contracts/utils/structs/CheckpointsConfidential.sol index c7500bf0..6d88a89e 100644 --- a/contracts/utils/structs/CheckpointsConfidential.sol +++ b/contracts/utils/structs/CheckpointsConfidential.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (utils/structs/CheckpointsConfidential.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (utils/structs/CheckpointsConfidential.sol) // This file was procedurally generated from scripts/generate/templates/CheckpointsConfidential.js. pragma solidity ^0.8.24; diff --git a/contracts/utils/structs/temporary-Checkpoints.sol b/contracts/utils/structs/temporary-Checkpoints.sol index 03b07a35..143a0c96 100644 --- a/contracts/utils/structs/temporary-Checkpoints.sol +++ b/contracts/utils/structs/temporary-Checkpoints.sol @@ -1,5 +1,5 @@ // SPDX-License-Identifier: MIT -// OpenZeppelin Confidential Contracts (last updated v0.2.0-rc.2) (utils/structs/temporary-Checkpoints.sol) +// OpenZeppelin Confidential Contracts (last updated v0.2.0) (utils/structs/temporary-Checkpoints.sol) // OpenZeppelin Contracts (last updated v5.3.0) (utils/structs/Checkpoints.sol) // This file was procedurally generated from scripts/generate/templates/Checkpoints.js. // WARNING: This file is temporary and will be deleted once the latest version of the file is released in v5.5.0 of @openzeppelin/contracts. diff --git a/docs/antora.yml b/docs/antora.yml index d52a2694..c034c697 100644 --- a/docs/antora.yml +++ b/docs/antora.yml @@ -1,7 +1,7 @@ name: confidential-contracts title: Confidential Contracts -version: 0.2-rc -prerelease: true +version: '0.2' +prerelease: false nav: - modules/ROOT/nav.adoc - modules/api/nav.adoc diff --git a/package.json b/package.json index 890b79ad..e91a89a2 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "openzeppelin-confidential-contracts", "description": "", - "version": "0.2.0-rc.2", + "version": "0.2.0", "author": "OpenZeppelin Community ", "license": "MIT", "files": [