Skip to content

Commit 9a02180

Browse files
Merge pull request #25 from OpenZeppelin/chore/white-glove
chore/white glove
2 parents 9d82302 + 4474a9a commit 9a02180

365 files changed

Lines changed: 8382 additions & 4374 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

content/community-contracts/account-modules.mdx

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -10,12 +10,12 @@ ERC-7579 defines a standardized interface for modular smart accounts. This stand
1010

1111
### Accounts
1212

13-
OpenZeppelin offers an implementation of an [`AccountERC7579`](contracts/v5.x/api/account.mdx#AccountERC7579) contract that allows installing modules compliant with this standard. There’s also an [`AccountERC7579Hooked`](contracts/v5.x/api/account.mdx#AccountERC7579Hooked) variant that supports installation of hooks. Like [most accounts](accounts.mdx#handling_initialization), an instance should define an initializer function where the first module that controls the account will be set:
13+
OpenZeppelin offers an implementation of an [`AccountERC7579`](/community-contracts/api/account#AccountERC7579) contract that allows installing modules compliant with this standard. There’s also an [`AccountERC7579Hooked`](/community-contracts/api/account#AccountERC7579Hooked) variant that supports installation of hooks. Like [most accounts](accounts#handling_initialization), an instance should define an initializer function where the first module that controls the account will be set:
1414

1515
<include cwd lang='solidity'>./examples/account/MyAccountERC7579.sol</include>
1616

1717
<Callout>
18-
For simplicity, the [`AccountERC7579Hooked`](contracts/v5.x/api/account.mdx#AccountERC7579Hooked) only supports a single hook. A common workaround is to install a [single hook with a multiplexer pattern](https://github.com/rhinestonewtf/core-modules/blob/7afffccb44d73dbaca2481e7b92bce0621ea6449/src/HookMultiPlexer/HookMultiPlexer.sol) to extend the functionality to multiple hooks.
18+
For simplicity, the [`AccountERC7579Hooked`](/community-contracts/api/account#AccountERC7579Hooked) only supports a single hook. A common workaround is to install a [single hook with a multiplexer pattern](https://github.com/rhinestonewtf/core-modules/blob/7afffccb44d73dbaca2481e7b92bce0621ea6449/src/HookMultiPlexer/HookMultiPlexer.sol) to extend the functionality to multiple hooks.
1919
</Callout>
2020

2121
### Modules
@@ -35,12 +35,12 @@ See [popular module implementations](https://erc7579.com/modules).
3535

3636
The library provides _standard composable modules_ as building blocks with an internal API for developers. By combining these components, you can create a rich set of variants without including unnecessary features.
3737

38-
A good starting point is the [`ERC7579Executor`](contracts/v5.x/api/account.mdx#ERC7579Executor) or [`ERC7579Validator`](contracts/v5.x/api/account.mdx#ERC7579Validator), which include an opinionated base layer easily combined with other abstract modules. Hooks and fallback handlers are more straightforward to implement directly from interfaces:
38+
A good starting point is the [`ERC7579Executor`](/community-contracts/api/account#ERC7579Executor) or [`ERC7579Validator`](/community-contracts/api/account#ERC7579Validator), which include an opinionated base layer easily combined with other abstract modules. Hooks and fallback handlers are more straightforward to implement directly from interfaces:
3939

4040
<include cwd lang='solidity'>./examples/account/modules/MyERC7579Modules.sol</include>
4141

4242
<Callout>
43-
Explore these abstract ERC-7579 modules in the [API Reference](contracts/v5.x/api/account.mdx#modules).
43+
Explore these abstract ERC-7579 modules in the [API Reference](/community-contracts/api/account#modules).
4444
</Callout>
4545

4646
#### Execution Modes
@@ -97,24 +97,24 @@ Social recovery is not a single solution but a design space with multiple config
9797
* Cancellation windows
9898
* Confirmation requirements
9999

100-
To support _different guardian types_, we can leverage ERC-7913 as discussed in the [multisig](multisig.mdx#beyond_standard_signature_verification) section. For ERC-7579 modules, this is implemented through the [`ERC7579Multisig`](contracts/v5.x/api/account.mdx#ERC7579Multisig) validator.
100+
To support _different guardian types_, we can leverage ERC-7913 as discussed in the [multisig](multisig#beyond_standard_signature_verification) section. For ERC-7579 modules, this is implemented through the [`ERC7579Multisig`](/community-contracts/api/account#ERC7579Multisig) validator.
101101

102-
Combined with an [`ERC7579Executor`](contracts/v5.x/api/account.mdx#ERC7579Executor), it provides a basic foundation that can be extended with more sophisticated features:
102+
Combined with an [`ERC7579Executor`](/community-contracts/api/account#ERC7579Executor), it provides a basic foundation that can be extended with more sophisticated features:
103103

104104
<include cwd lang='solidity'>./examples/account/modules/MyERC7579SocialRecovery.sol</include>
105105

106-
For enhanced security, you can extend this foundation with scheduling, delays, and cancellations using [`ERC7579DelayedExecutor`](contracts/v5.x/api/account.mdx#ERC7579DelayedExecutor). This allows guardians to schedule recovery operations with a time delay, providing a security window to detect and cancel suspicious recovery attempts before they execute:
106+
For enhanced security, you can extend this foundation with scheduling, delays, and cancellations using [`ERC7579DelayedExecutor`](/community-contracts/api/account#ERC7579DelayedExecutor). This allows guardians to schedule recovery operations with a time delay, providing a security window to detect and cancel suspicious recovery attempts before they execute:
107107

108108
<include cwd lang='solidity'>./examples/account/modules/MyERC7579DelayedSocialRecovery.sol</include>
109109

110110
<Callout>
111-
The delayed executor’s signature validation doesn’t require a nonce since operations are uniquely identified by their [operation id](contracts/v5.x/api/account.mdx#ERC7579DelayedExecutor-hashOperation-address-bytes32-bytes32-bytes-) and cannot be scheduled twice.
111+
The delayed executor’s signature validation doesn’t require a nonce since operations are uniquely identified by their [operation id](/community-contracts/api/account#ERC7579DelayedExecutor-hashOperation-address-bytes32-bytes32-bytes-) and cannot be scheduled twice.
112112
</Callout>
113113

114114
These implementations demonstrate how to build progressively more secure social recovery mechanisms, from basic multi-signature recovery to time-delayed recovery with cancellation capabilities.
115115

116116
For additional functionality, developers can use:
117117

118-
* [`ERC7579MultisigWeighted`](contracts/v5.x/api/account.mdx#ERC7579MultisigWeighted) to assign different weights to signers
119-
* [`ERC7579MultisigConfirmation`](contracts/v5.x/api/account.mdx#ERC7579MultisigConfirmation) to implement a confirmation system that verifies signatures when adding signers
120-
* [`ERC7579MultisigStorage`](contracts/v5.x/api/account.mdx#ERC7579MultisigStorage) to allow guardians to presign recovery operations for more flexible coordination
118+
* [`ERC7579MultisigWeighted`](/community-contracts/api/account#ERC7579MultisigWeighted) to assign different weights to signers
119+
* [`ERC7579MultisigConfirmation`](/community-contracts/api/account#ERC7579MultisigConfirmation) to implement a confirmation system that verifies signatures when adding signers
120+
* [`ERC7579MultisigStorage`](/community-contracts/api/account#ERC7579MultisigStorage) to allow guardians to presign recovery operations for more flexible coordination

0 commit comments

Comments
 (0)