Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
119 commits
Select commit Hold shift + click to select a range
a1aa81b
fix: incorrect documentation reference in ERC4626Fees._withdraw (#5955)
strmfos Sep 29, 2025
a6a8dfc
Merge branch 'master' into typo-fixes
Amxx Oct 6, 2025
0571375
Update CHANGELOG.md (#5969)
mdfaizanaquil Oct 6, 2025
27703a5
Merge branch 'master' into typo-fixes
Amxx Oct 10, 2025
835748a
Escape dots in regex for solidity pragma version matching (#5981)
sashaodessa Oct 10, 2025
7a4a7fe
fix ranges in isValidERC1271SignatureNow documentation
Amxx Oct 11, 2025
5004def
chore: fix misuses of 'a' vs 'an' (#5988)
dulanting Oct 16, 2025
7931f44
Merge branch 'master' into typo-fixes
ernestognw Oct 17, 2025
5e69660
Lint
ernestognw Oct 17, 2025
067f190
docs: fix minor grammar and phrasing issues in documentation (#5999)
prestoalvarez Oct 17, 2025
dc53fdf
docs: improvement of grammar (#6006)
CreeptoGengar Oct 21, 2025
785974f
docs: add comment explaining execution delay value in AccessManaged t…
forkfury Oct 21, 2025
ec0ec42
docs(ERC2771Forwarder): fix validate signer reference and clarify imp…
radik878 Oct 27, 2025
7293c72
docs: add security warnings for AccessManager migration (#6016)
Lil-Duckling-22 Oct 27, 2025
70493d3
Merge branch 'master' into typo-fixes
ernestognw Oct 29, 2025
83ead03
chore: fix 4626 error documentations (#6026)
kevzzsk Oct 29, 2025
95644ff
Merge branch 'master' into typo-fixes
ernestognw Oct 30, 2025
9cfcf43
docs: correct TimelockController role names in access control guide (…
DeVikingMark Oct 30, 2025
82e0a59
docs(erc721): fix _setTokenURI xref to ERC721URIStorage (#6028)
VolodymyrBg Oct 30, 2025
bf196f6
fix: ERC2771Forwarder _validate doc comment (#6029)
sashass1315 Oct 30, 2025
804307a
refactor(ERC20FlashMint): remove unused parameter suppression in _fla…
sashaodessa Oct 31, 2025
599e66b
docs: fix P256 example functions to be view instead of pure (#6031)
GarmashAlex Oct 31, 2025
f4685fc
Merge branch 'master' into typo-fixes
ernestognw Nov 3, 2025
9c0046f
fix: correct RoleGranted event documentation for existing members (#6…
phrwlk Nov 3, 2025
74703ae
docs(IAccessManager): document locked roles for label/admin/guardian/…
Forostovec Nov 3, 2025
47615e5
docs: use canonical PackedUserOperation field names (#6039)
GarmashAlex Nov 3, 2025
520ade0
docs: clarify 20-byte calldata minimum requirement in ERC2771Context …
avorylli Nov 3, 2025
074795a
docs: improvement of grammar (#6035)
CreeptoGengar Nov 3, 2025
7bdaf34
Drop unused IERC165 import from timelock controller (#6042)
Doryu001 Nov 3, 2025
e793343
Merge branch 'master' into typo-fixes
Amxx Nov 5, 2025
a4b70a8
Сhore: remove unused imports from Heap library (#6060)
Nixuewyreks Nov 5, 2025
9c103fc
chore: fix broken link (#6058)
Snezhkko Nov 5, 2025
d7181c3
docs(governance): fix GovernorCountingSimple import path to extension…
MozirDmitriy Nov 5, 2025
de87771
docs: add setup() to CircularBuffer example to show required initiali…
Galoretka Nov 5, 2025
2518fbd
Remove ERC7702 mentions in favor of EIP7702 (#6044)
ernestognw Nov 5, 2025
808a851
Merge branch 'master' into typo-fixes
ernestognw Nov 5, 2025
7b71c14
docs: fix incomplete sentence in EOA delegation guide (#6066)
DeVikingMark Nov 5, 2025
e1b7411
docs: fix WebAuthn cross-reference to verify in ERC7913WebAuthnVerifi…
VolodymyrBg Nov 5, 2025
668d3b5
Merge branch 'master' into typo-fixes
Amxx Nov 6, 2025
a60b367
fix: correct LowLevelCall overload reference (#6071)
reallesee Nov 6, 2025
2f1386c
docs(Heap): clarify priority via comparator and default min-heap beha…
Forostovec Nov 6, 2025
f48c229
Remove dead abstract contract Impl from DummyImplementation mock (#6073)
sashass1315 Nov 10, 2025
c906400
Drop redundant await in GovernorNoncesKeyed helper (#6064)
Doryu001 Nov 10, 2025
b3570cb
Use strict equality in Arrays test helpers (#6086)
prestoalvarez Nov 10, 2025
83fc81a
docs: improvement of grammar (#6085)
CreeptoGengar Nov 10, 2025
2449027
docs: fix misleading in ERC721Enumerable._increaseBalance (#6087)
aso20455 Nov 10, 2025
7686518
Merge branch 'master' into typo-fixes
Amxx Nov 10, 2025
9fe0e62
Fix incorrect reference in _withdraw documentation (#6090)
Fallengirl Nov 10, 2025
b2c5e02
fix: ClashingImplementation comment to reference upgradeToAndCall (#6…
radik878 Nov 10, 2025
a8de514
docs: fix function reference in LowLevelCall (#6089)
eeemmmmmm Nov 10, 2025
fc8824d
Merge branch 'master' into typo-fixes
ernestognw Nov 13, 2025
8a480da
docs: update miner terminology to block proposer for PoS compatibilit…
DeVikingMark Nov 13, 2025
0fffeaf
fix: typos in ERC7739Utils comments (#6102)
Bashmunta Nov 13, 2025
df13d17
docs(ERC4626Fees): fix internal links to ERC4626 deposit/_withdraw (#…
Fibonacci747 Nov 13, 2025
598b88b
docs: document TimelockController CANCELLER_ROLE in governance guide …
Forostovec Nov 13, 2025
fe75ac0
Adjust `MAX_UINT32` and `MAX_UINT48` constants in Time.test.js (#6095)
aso20455 Nov 13, 2025
a172897
fix: IERC7579Execution docs to reference ERC7579Utils (#6097)
radik878 Nov 13, 2025
1e5c610
test: fix incorrect value in Heap test comments (#6099)
dizer-ti Nov 13, 2025
ec3e80e
docs: improvement of grammar (#6110)
CreeptoGengar Nov 19, 2025
ea71000
fix: typos in ERC1155 extension (#6113)
GarmashAlex Nov 19, 2025
88dedb7
Merge branch 'master' into typo-fixes
ernestognw Nov 24, 2025
8ff1a7e
fix(test): import chai expect in governance helper for fail path (#6138)
GarmashAlex Nov 24, 2025
0118d1e
Fix typo in upgradeable version of README (#5987)
Amxx Nov 24, 2025
7e295f6
fix(test): use this.value instead of undefined this.amount (#6131)
Forostovec Nov 24, 2025
512070b
fix(docs): add EIP712 to multisig example contracts’ inheritance (#6127)
radik878 Nov 24, 2025
ecb93c1
Fix optimizer configuration in foundry.toml (#6117)
maradini77 Nov 24, 2025
cd99b2e
fix(docs): correct ERC-1155 on-chain metadata guidance (#6111)
DeVikingMark Nov 24, 2025
1d78585
fix: sync ERC20FlashMint with implementation (#6083)
zeroprooff Nov 24, 2025
20aed20
Merge branch 'master' into typo-fixes
Amxx Nov 25, 2025
836a8b5
fix: correct comment to reference setGrantDelay (#6144)
ANtutov Nov 25, 2025
a0f4eaa
Merge branch 'master' into typo-fixes
Amxx Nov 26, 2025
50a1d0f
docs: fix incorrect Base64.decode NatSpec (#6148)
dizer-ti Nov 26, 2025
56ee90b
fix: add missing space in NatSpec comment (#6147)
zeroprooff Nov 26, 2025
cb49220
docs(interfaces): add IERC1967, IERC2309 to standardized interface li…
Forostovec Nov 26, 2025
31f9029
Merge branch 'master' into typo-fixes
Amxx Nov 27, 2025
6969f42
fix: correct backtick formatting in ECDSA recover function natspec (#…
denevertt Nov 27, 2025
c2ae6af
chore: fix typos (#6149)
Fibonacci747 Nov 27, 2025
45df31c
chore: fix typos (#6108)
MozirDmitriy Nov 27, 2025
a9ad11a
docs(fv): update README to .conf-based specs and correct run syntax (…
sashass1315 Nov 27, 2025
092d342
chore: fix typos (#6157)
ninastef Dec 1, 2025
1b3ba2e
fix: correct comment typo in getAccessChangeCall rule (#6109)
hawkadrian Dec 1, 2025
60f9c45
Update `MerkleProof` template
arr00 Dec 1, 2025
ac2f417
docs: fix NatSpec comment format (#6161)
zeroprooff Dec 1, 2025
2ae3a0c
fix: correct log2() lookup table comment to MSB-first half (#6158)
GarmashAlex Dec 1, 2025
106f9fd
Merge branch 'master' into typo-fixes
Amxx Dec 1, 2025
9770fd1
Merge branch 'master' into typo-fixes
Amxx Dec 3, 2025
5254d9d
Fix incorrect preposition in inheritance documentation (#6168)
anim001k Dec 3, 2025
d71e289
Merge branch 'master' into typo-fixes
Amxx Dec 4, 2025
8edd671
docs(ecdsa): clarify ECDSAInvalidSignature describes general invalid …
Bashmunta Dec 4, 2025
0e3260e
docs: fix typo (#6176)
letmehateu Dec 4, 2025
8591fa0
docs(accounts): fix AbstractSigner xrefs to utils/cryptography.adoc (…
VolodymyrBg Dec 4, 2025
9b1585a
Merge branch 'master' into typo-fixes
Amxx Dec 8, 2025
27c21b4
docs:fix grammar minor typo (#6177)
bobtajson Dec 8, 2025
fd858ba
fix broken test
arr00 Dec 8, 2025
8760746
docs: fix duplicate argument in P256 usage examples (#6185)
aso20455 Dec 9, 2025
bb51d52
Merge branch 'master' into typo-fixes
Amxx Dec 10, 2025
fa25516
docs: fixes minor typo (#6193)
bobtajson Dec 10, 2025
36cf640
Merge branch 'master' into typo-fixes
ernestognw Dec 10, 2025
d2ae1d0
docs: fix beginDefaultAdminTransfer emitted event name (#6194)
yyhrnk Dec 10, 2025
59af6bb
Update CHANGELOG.md
arr00 Dec 11, 2025
2fd9903
fix list
arr00 Dec 11, 2025
0c8f95b
add missing interfaces to api ref
arr00 Dec 11, 2025
1d6856f
fix docs generation
arr00 Dec 11, 2025
47ebf1b
Update contracts/governance/README.adoc
arr00 Dec 11, 2025
6e56440
add missing interfaces to docs
arr00 Dec 11, 2025
9b013eb
clarify 1155 supply comment
arr00 Dec 11, 2025
845c313
Update contracts/utils/LowLevelCall.sol
arr00 Dec 11, 2025
35e21c3
Update contracts/utils/LowLevelCall.sol
arr00 Dec 11, 2025
4c7b787
update docs in
arr00 Dec 12, 2025
4972c9b
Update contracts/access/manager/IAccessManager.sol
Amxx Dec 12, 2025
55fdc90
Update contracts/access/manager/IAccessManager.sol
Amxx Dec 12, 2025
f816f8a
Update contracts/token/ERC20/extensions/ERC20FlashMint.sol
Amxx Dec 12, 2025
e7bd453
Update docs/modules/ROOT/pages/accounts.adoc
Amxx Dec 12, 2025
49e7489
Update governance.js
Amxx Dec 12, 2025
fecaa6e
Update test/access/manager/AccessManaged.test.js
Amxx Dec 15, 2025
1c0ad03
improve doc in `governance.adoc`
arr00 Dec 15, 2025
c8c78f7
fix `CircularBuffer` list
arr00 Dec 15, 2025
5e87d4a
fix lnk in accounts docs
arr00 Dec 15, 2025
b887908
update utils docs
arr00 Dec 15, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@

### Deprecation

- `Initializable` and `UUPSUpgradeable` are no longer transpiled. An alias is present in the `@openzeppelin/contracts-upgradeable` package that redirect to the corresponding file in `@openzeppelin/contracts`. These alias will be removed in the next major release. Developers are advised to update their imports to get these files directly from the `@openzeppelin/contracts` package. [#5941](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5941)
- `Initializable` and `UUPSUpgradeable` are no longer transpiled. Aliases are present in the `@openzeppelin/contracts-upgradeable` package that redirect to the corresponding files in `@openzeppelin/contracts`. These aliases will be removed in the next major release. Developers are advised to update their imports to get these files directly from the `@openzeppelin/contracts` package. [#5941](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5941)
- `ECDSA` signature malleability protection is partly deprecated. See documentation for more details. [#5814](https://github.com/OpenZeppelin/openzeppelin-contracts/pull/5814)

### Changes by category
Expand Down Expand Up @@ -93,7 +93,7 @@

### Pragma changes

- Reduced pragma requirement of interface files
- Reduced pragma requirement of interface files.

### Changes by category

Expand Down
2 changes: 1 addition & 1 deletion GUIDELINES.md
Original file line number Diff line number Diff line change
Expand Up @@ -125,7 +125,7 @@ In addition to the official Solidity Style Guide we have a number of other conve
```

* Contracts not intended to be used standalone should be marked abstract
so they are required to be inherited to other contracts.
so they are required to be inherited by other contracts.

```solidity
abstract contract AccessControl is ..., {
Expand Down
2 changes: 1 addition & 1 deletion contracts/access/AccessControl.sol
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ abstract contract AccessControl is Context, IAccessControl, ERC165 {
_;
}

/// @inheritdoc IERC165
/// @inheritdoc ERC165
function supportsInterface(bytes4 interfaceId) public view virtual override returns (bool) {
return interfaceId == type(IAccessControl).interfaceId || super.supportsInterface(interfaceId);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ abstract contract AccessControlDefaultAdminRules is IAccessControlDefaultAdminRu
/**
* @dev Setter of the tuple for pending admin and its schedule.
*
* May emit a DefaultAdminTransferCanceled event.
* May emit a {DefaultAdminTransferCanceled} event.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No point in having this. Doesn't show up in docs.

*/
function _setPendingDefaultAdmin(address newAdmin, uint48 newSchedule) private {
(, uint48 oldSchedule) = pendingDefaultAdmin();
Expand All @@ -333,7 +333,7 @@ abstract contract AccessControlDefaultAdminRules is IAccessControlDefaultAdminRu
/**
* @dev Setter of the tuple for pending delay and its schedule.
*
* May emit a DefaultAdminDelayChangeCanceled event.
* May emit a {DefaultAdminDelayChangeCanceled} event.
*/
function _setPendingDelay(uint48 newDelay, uint48 newSchedule) private {
uint48 oldSchedule = _pendingDelaySchedule;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -103,7 +103,7 @@ interface IAccessControlDefaultAdminRules is IAccessControl {
*
* - Only can be called by the current {defaultAdmin}.
*
* Emits a DefaultAdminRoleChangeStarted event.
* Emits a {DefaultAdminTransferScheduled} event.
*/
function beginDefaultAdminTransfer(address newAdmin) external;

Expand All @@ -116,7 +116,7 @@ interface IAccessControlDefaultAdminRules is IAccessControl {
*
* - Only can be called by the current {defaultAdmin}.
*
* May emit a DefaultAdminTransferCanceled event.
* May emit a {DefaultAdminTransferCanceled} event.
*/
function cancelDefaultAdminTransfer() external;

Expand Down Expand Up @@ -160,7 +160,7 @@ interface IAccessControlDefaultAdminRules is IAccessControl {
*
* - Only can be called by the current {defaultAdmin}.
*
* Emits a DefaultAdminDelayChangeScheduled event and may emit a DefaultAdminDelayChangeCanceled event.
* Emits a {DefaultAdminDelayChangeScheduled} event and may emit a {DefaultAdminDelayChangeCanceled} event.
*/
function changeDefaultAdminDelay(uint48 newDelay) external;

Expand All @@ -171,7 +171,7 @@ interface IAccessControlDefaultAdminRules is IAccessControl {
*
* - Only can be called by the current {defaultAdmin}.
*
* May emit a DefaultAdminDelayChangeCanceled event.
* May emit a {DefaultAdminDelayChangeCanceled} event.
*/
function rollbackDefaultAdminDelay() external;

Expand Down
6 changes: 5 additions & 1 deletion contracts/access/manager/IAccessManager.sol
Original file line number Diff line number Diff line change
Expand Up @@ -36,7 +36,7 @@ interface IAccessManager {
*
* NOTE: The meaning of the `since` argument depends on the `newMember` argument.
* If the role is granted to a new member, the `since` argument indicates when the account becomes a member of the role,
* otherwise it indicates the execution delay for this account and roleId is updated.
* otherwise it indicates the timestamp when the execution delay update takes effect for this account and roleId.
*/
event RoleGranted(uint64 indexed roleId, address indexed account, uint32 delay, uint48 since, bool newMember);

Expand Down Expand Up @@ -196,6 +196,7 @@ interface IAccessManager {
* Requirements:
*
* - the caller must be a global admin
* - `roleId` must not be the `ADMIN_ROLE` or `PUBLIC_ROLE`
*
* Emits a {RoleLabel} event.
*/
Expand Down Expand Up @@ -254,6 +255,7 @@ interface IAccessManager {
* Requirements:
*
* - the caller must be a global admin
* - `roleId` must not be the `ADMIN_ROLE` or `PUBLIC_ROLE`
*
* Emits a {RoleAdminChanged} event
*/
Expand All @@ -265,6 +267,7 @@ interface IAccessManager {
* Requirements:
*
* - the caller must be a global admin
* - `roleId` must not be the `ADMIN_ROLE` or `PUBLIC_ROLE`
*
* Emits a {RoleGuardianChanged} event
*/
Expand All @@ -276,6 +279,7 @@ interface IAccessManager {
* Requirements:
*
* - the caller must be a global admin
* - `roleId` must not be the `PUBLIC_ROLE`
*
* Emits a {RoleGrantDelayChanged} event.
*/
Expand Down
2 changes: 1 addition & 1 deletion contracts/account/extensions/draft-AccountERC7579.sol
Original file line number Diff line number Diff line change
Expand Up @@ -401,7 +401,7 @@ abstract contract AccountERC7579 is Account, IERC1271, IERC7579Execution, IERC75
* actual copy. However, this would require `_installModule` to get a calldata bytes object instead of a memory
* bytes object. This would prevent calling `_installModule` from a contract constructor and would force the use
* of external initializers. That may change in the future, as most accounts will probably be deployed as
* clones/proxy/ERC-7702 delegates and therefore rely on initializers anyway.
* clones/proxy/EIP-7702 delegates and therefore rely on initializers anyway.
*/
function _decodeFallbackData(
bytes memory data
Expand Down
2 changes: 1 addition & 1 deletion contracts/account/utils/EIP7702Utils.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pragma solidity ^0.8.20;
/**
* @dev Library with common EIP-7702 utility functions.
*
* See https://eips.ethereum.org/EIPS/eip-7702[ERC-7702].
* See https://eips.ethereum.org/EIPS/eip-7702[EIP-7702].
*/
library EIP7702Utils {
bytes3 internal constant EIP7702_PREFIX = 0xef0100;
Expand Down
3 changes: 2 additions & 1 deletion contracts/governance/Governor.sol
Original file line number Diff line number Diff line change
Expand Up @@ -735,7 +735,7 @@ abstract contract Governor is Context, ERC165, EIP712, Nonces, IGovernor, IERC72
return currentState;
}

/*
/**
* @dev Check if the proposer is authorized to submit a proposal with the given description.
*
* If the proposal description ends with `#proposer=0x???`, where `0x???` is an address written as a hex string
Expand All @@ -746,6 +746,7 @@ abstract contract Governor is Context, ERC165, EIP712, Nonces, IGovernor, IERC72
* which would result in a different proposal id.
*
* If the description does not match this pattern, it is unrestricted and anyone can submit it. This includes:
*
* - If the `0x???` part is not a valid hex string.
* - If the `0x???` part is a valid hex string, but does not contain exactly 40 hex digits.
* - If it ends with the expected suffix followed by newlines or other whitespace.
Expand Down
4 changes: 2 additions & 2 deletions contracts/governance/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ In a governance system, the {TimelockController} contract is in charge of introd
[[timelock-operation]]
==== Operation structure

Operation executed by the xref:api:governance.adoc#TimelockController[`TimelockController`] can contain one or multiple subsequent calls. Depending on whether you need to multiple calls to be executed atomically, you can either use simple or batched operations.
Operation executed by the xref:api:governance.adoc#TimelockController[`TimelockController`] can contain one or multiple subsequent calls. Depending on whether you need multiple calls to be executed atomically, you can either use simple or batched operations.

Both operations contain:

Expand Down Expand Up @@ -183,7 +183,7 @@ The admins are in charge of managing proposers and executors. For the timelock t

The proposers are in charge of scheduling (and cancelling) operations. This is a critical role, that should be given to governing entities. This could be an EOA, a multisig, or a DAO.

WARNING: *Proposer fight:* Having multiple proposers, while providing redundancy in case one becomes unavailable, can be dangerous. As proposer have their say on all operations, they could cancel operations they disagree with, including operations to remove them for the proposers.
WARNING: *Proposer fight:* Having multiple proposers, while providing redundancy in case one becomes unavailable, can be dangerous. Proposers have a say on all operations--they could cancel operations they disagree with, including operations to remove them from the list of proposers.

This role is identified by the *PROPOSER_ROLE* value: `0xb09aa5aeb3702cfd50b6b62bc4532604938f21248a27a1d5ca736082b6819cc1`

Expand Down
3 changes: 1 addition & 2 deletions contracts/governance/TimelockController.sol
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,6 @@ import {AccessControl} from "../access/AccessControl.sol";
import {ERC721Holder} from "../token/ERC721/utils/ERC721Holder.sol";
import {ERC1155Holder} from "../token/ERC1155/utils/ERC1155Holder.sol";
import {Address} from "../utils/Address.sol";
import {IERC165} from "../utils/introspection/ERC165.sol";

/**
* @dev Contract module which acts as a timelocked controller. When set as the
Expand Down Expand Up @@ -155,7 +154,7 @@ contract TimelockController is AccessControl, ERC721Holder, ERC1155Holder {
*/
receive() external payable virtual {}

/// @inheritdoc IERC165
/// @inheritdoc AccessControl
function supportsInterface(
bytes4 interfaceId
) public view virtual override(AccessControl, ERC1155Holder) returns (bool) {
Expand Down
27 changes: 27 additions & 0 deletions contracts/interfaces/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,8 @@ are useful to interact with third party contracts that implement them.
- {IERC1820Implementer}
- {IERC1820Registry}
- {IERC1822Proxiable}
- {IERC1967}
- {IERC2309}
- {IERC2612}
- {IERC2981}
- {IERC3156FlashLender}
Expand All @@ -44,11 +46,18 @@ are useful to interact with third party contracts that implement them.
- {IERC6909ContentURI}
- {IERC6909Metadata}
- {IERC6909TokenSupply}
- {IERC7579Module}
- {IERC7579Validator}
- {IERC7579Hook}
- {IERC7579Execution}
- {IERC7579AccountConfig}
- {IERC7579ModuleConfig}
- {IERC7674}
- {IERC7751}
- {IERC7786GatewaySource}
- {IERC7786Recipient}
- {IERC7802}
- {IERC7913SignatureVerifier}

== Detailed ABI

Expand All @@ -72,6 +81,10 @@ are useful to interact with third party contracts that implement them.

{{IERC1822Proxiable}}

{{IERC1967}}

{{IERC2309}}

{{IERC2612}}

{{IERC2981}}
Expand Down Expand Up @@ -100,6 +113,18 @@ are useful to interact with third party contracts that implement them.

{{IERC6909TokenSupply}}

{{IERC7579Module}}

{{IERC7579Validator}}

{{IERC7579Hook}}

{{IERC7579Execution}}

{{IERC7579AccountConfig}}

{{IERC7579ModuleConfig}}

{{IERC7674}}

{{IERC7751}}
Expand All @@ -109,3 +134,5 @@ are useful to interact with third party contracts that implement them.
{{IERC7786Recipient}}

{{IERC7802}}

{{IERC7913SignatureVerifier}}
4 changes: 2 additions & 2 deletions contracts/interfaces/draft-IERC7579.sol
Original file line number Diff line number Diff line change
Expand Up @@ -116,7 +116,7 @@ struct Execution {
interface IERC7579Execution {
/**
* @dev Executes a transaction on behalf of the account.
* @param mode The encoded execution mode of the transaction. See ModeLib.sol for details
* @param mode The encoded execution mode of the transaction. See account/utils/draft-ERC7579Utils.sol (Mode encoding via encodeMode/decodeMode) for details
* @param executionCalldata The encoded execution call data
*
* MUST ensure adequate authorization control: e.g. onlyEntryPointOrSelf if used with ERC-4337
Expand All @@ -127,7 +127,7 @@ interface IERC7579Execution {
/**
* @dev Executes a transaction on behalf of the account.
* This function is intended to be called by Executor Modules
* @param mode The encoded execution mode of the transaction. See ModeLib.sol for details
* @param mode The encoded execution mode of the transaction. See account/utils/draft-ERC7579Utils.sol (Mode encoding via encodeMode/decodeMode) for details
* @param executionCalldata The encoded execution call data
* @return returnData An array with the returned data of each executed subcall
*
Expand Down
2 changes: 1 addition & 1 deletion contracts/metatx/ERC2771Context.sol
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ pragma solidity ^0.8.20;
import {Context} from "../utils/Context.sol";

/**
* @dev Context variant with ERC-2771 support.
* @dev Context variant with ERC-2771 support. See {_msgSender} for the calldata format.
*
* WARNING: Avoid using this pattern in contracts that rely on a specific calldata length as they'll
* be affected by any forwarder whose `msg.data` is suffixed with the `from` address according to the ERC-2771
Expand Down
4 changes: 0 additions & 4 deletions contracts/mocks/DummyImplementation.sol
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,6 @@ pragma solidity ^0.8.21;
import {ERC1967Utils} from "../proxy/ERC1967/ERC1967Utils.sol";
import {StorageSlot} from "../utils/StorageSlot.sol";

abstract contract Impl {
function version() public pure virtual returns (string memory);
}

contract DummyImplementation {
uint256 public value;
string public text;
Expand Down
6 changes: 3 additions & 3 deletions contracts/mocks/account/AccountMock.sol
Original file line number Diff line number Diff line change
Expand Up @@ -81,7 +81,7 @@ abstract contract AccountWebAuthnMock is Account, SignerWebAuthn, ERC7739, ERC78
}
}

abstract contract AccountERC7702Mock is Account, SignerEIP7702, ERC7739, ERC7821, ERC721Holder, ERC1155Holder {
abstract contract AccountEIP7702Mock is Account, SignerEIP7702, ERC7739, ERC7821, ERC721Holder, ERC1155Holder {
/// @inheritdoc ERC7821
function _erc7821AuthorizedExecutor(
address caller,
Expand All @@ -92,7 +92,7 @@ abstract contract AccountERC7702Mock is Account, SignerEIP7702, ERC7739, ERC7821
}
}

abstract contract AccountERC7702WithModulesMock is
abstract contract AccountEIP7702WithModulesMock is
Account,
AccountERC7579,
SignerEIP7702,
Expand All @@ -119,7 +119,7 @@ abstract contract AccountERC7702WithModulesMock is
return erc7739magic == bytes4(0xffffffff) ? AccountERC7579.isValidSignature(hash, signature) : erc7739magic;
}

/// @dev Enable signature using the ERC-7702 signer.
/// @dev Enable signature using the EIP-7702 signer.
function _rawSignatureValidation(
bytes32 hash,
bytes calldata signature
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/docs/ERC4626Fees.sol
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,7 @@ abstract contract ERC4626Fees is ERC4626 {
return assets - _feeOnTotal(assets, _exitFeeBasisPoints());
}

/// @dev Send entry fee to {_entryFeeRecipient}. See {IERC4626-_deposit}.
/// @dev Send entry fee to {_entryFeeRecipient}. See {ERC4626-_deposit}.
function _deposit(address caller, address receiver, uint256 assets, uint256 shares) internal virtual override {
uint256 fee = _feeOnTotal(assets, _entryFeeBasisPoints());
address recipient = _entryFeeRecipient();
Expand All @@ -57,7 +57,7 @@ abstract contract ERC4626Fees is ERC4626 {
}
}

/// @dev Send exit fee to {_exitFeeRecipient}. See {IERC4626-_deposit}.
/// @dev Send exit fee to {_exitFeeRecipient}. See {ERC4626-_withdraw}.
function _withdraw(
address caller,
address receiver,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
// contracts/MyAccountERC7702.sol
// contracts/MyAccountEIP7702.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

Expand All @@ -8,7 +8,7 @@ import {ERC1155Holder} from "../../../token/ERC1155/utils/ERC1155Holder.sol";
import {ERC7821} from "../../../account/extensions/draft-ERC7821.sol";
import {SignerEIP7702} from "../../../utils/cryptography/signers/SignerEIP7702.sol";

contract MyAccountERC7702 is Account, SignerEIP7702, ERC7821, ERC721Holder, ERC1155Holder {
contract MyAccountEIP7702 is Account, SignerEIP7702, ERC7821, ERC721Holder, ERC1155Holder {
/// @dev Allows the entry point as an authorized executor.
function _erc7821AuthorizedExecutor(
address caller,
Expand Down
4 changes: 2 additions & 2 deletions contracts/mocks/proxy/ClashingImplementation.sol
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
pragma solidity ^0.8.20;

/**
* @dev Implementation contract with a payable changeAdmin(address) function made to clash with
* TransparentUpgradeableProxy's to test correct functioning of the Transparent Proxy feature.
* @dev Implementation contract with a payable `upgradeToAndCall(address,bytes)` function made to clash with
* `TransparentUpgradeableProxy`'s interface to test correct functioning of the Transparent Proxy feature.
*/
contract ClashingImplementation {
event ClashingImplementationCall();
Expand Down
2 changes: 1 addition & 1 deletion contracts/proxy/ERC1967/ERC1967Utils.sol
Original file line number Diff line number Diff line change
Expand Up @@ -86,7 +86,7 @@ library ERC1967Utils {
* @dev Returns the current admin.
*
* TIP: To get this value clients can read directly from the storage slot shown below (specified by ERC-1967) using
* the https://eth.wiki/json-rpc/API#eth_getstorageat[`eth_getStorageAt`] RPC call.
* the https://ethereum.org/developers/docs/apis/json-rpc/#eth_getstorageat[`eth_getStorageAt`] RPC call.
* `0xb53127684a568b3173ae13b9f8a6016e243e63b6e8ee1178d6a717850b5d6103`
*/
function getAdmin() internal view returns (address) {
Expand Down
4 changes: 2 additions & 2 deletions contracts/proxy/README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -21,10 +21,10 @@ There are two alternative ways to add upgradeability to an ERC-1967 proxy. Their

CAUTION: Using upgradeable proxies correctly and securely is a difficult task that requires deep knowledge of the proxy pattern, Solidity, and the EVM. Unless you want a lot of low level control, we recommend using the xref:upgrades-plugins::index.adoc[OpenZeppelin Upgrades Plugins] for Hardhat and Foundry.

A different family of proxies are beacon proxies. This pattern, popularized by Dharma, allows multiple proxies to be upgraded to a different implementation in a single transaction.
A different family of proxies is beacon proxies. This pattern, popularized by Dharma, allows multiple proxies to be upgraded to a different implementation in a single transaction.

- {BeaconProxy}: A proxy that retrieves its implementation from a beacon contract.
- {UpgradeableBeacon}: A beacon contract with a built in admin that can upgrade the {BeaconProxy} pointing to it.
- {UpgradeableBeacon}: A beacon contract with a built-in admin that can upgrade the {BeaconProxy} pointing to it.

In this pattern, the proxy contract doesn't hold the implementation address in storage like an ERC-1967 proxy. Instead, the address is stored in a separate beacon contract. The `upgrade` operations are sent to the beacon instead of to the proxy contract, and all proxies that follow that beacon are automatically upgraded.

Expand Down
Loading