Skip to content

Commit d4ec278

Browse files
ernestognwAmxx
andcommitted
List every contract in each API doc section (#4848)
Co-authored-by: Hadrien Croubois <[email protected]>
1 parent f7bb988 commit d4ec278

File tree

4 files changed

+36
-5
lines changed

4 files changed

+36
-5
lines changed

contracts/access/README.adoc

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/
55

66
This directory provides ways to restrict who can access the functions of a contract or when they can do it.
77

8-
- {AccessControl} provides a general role based access control mechanism. Multiple hierarchical roles can be created and assigned each to multiple accounts.
8+
- {AccessManager} is a full-fledged access control solution for smart contract systems. Allows creating and assigning multiple hierarchical roles with execution delays for each account across various contracts.
9+
- {AccessManaged} delegates its access control to an authority that dictates the permissions of the managed contract. It's compatible with an AccessManager as an authority.
10+
- {AccessControl} provides a per-contract role based access control mechanism. Multiple hierarchical roles can be created and assigned each to multiple accounts within the same instance.
911
- {Ownable} is a simpler mechanism with a single owner "role" that can be assigned to a single account. This simpler mechanism can be useful for quick tests but projects with production concerns are likely to outgrow it.
1012
1113
== Core

contracts/governance/README.adoc

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@ Counting modules determine valid voting options.
3030

3131
Timelock extensions add a delay for governance decisions to be executed. The workflow is extended to require a `queue` step before execution. With these modules, proposals are executed by the external timelock contract, thus it is the timelock that has to hold the assets that are being governed.
3232

33+
* {GovernorTimelockAccess}: Connects with an instance of an {AccessManager}. This allows restrictions (and delays) enforced by the manager to be considered by the Governor and integrated into the AccessManager's "schedule + execute" workflow.
34+
3335
* {GovernorTimelockControl}: Connects with an instance of {TimelockController}. Allows multiple proposers and executors, in addition to the Governor itself.
3436

3537
* {GovernorTimelockCompound}: Connects with an instance of Compound's https://github.com/compound-finance/compound-protocol/blob/master/contracts/Timelock.sol[`Timelock`] contract.
@@ -66,6 +68,8 @@ NOTE: Functions of the `Governor` contract do not include access control. If you
6668

6769
=== Extensions
6870

71+
{{GovernorTimelockAccess}}
72+
6973
{{GovernorTimelockControl}}
7074

7175
{{GovernorTimelockCompound}}

contracts/metatx/README.adoc

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,11 @@
33
[.readme-notice]
44
NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/api/metatx
55

6+
This directory includes contracts for adding meta-transaction capabilities (i.e. abstracting the execution context from the transaction origin) following the https://eips.ethereum.org/EIPS/eip-2771[ERC-2771 specification].
7+
8+
- {ERC2771Context}: Provides a mechanism to override the sender and calldata of the execution context (`msg.sender` and `msg.data`) with a custom value specified by a trusted forwarder.
9+
- {ERC2771Forwarder}: A production-ready forwarder that relays operation requests signed off-chain by an EOA.
10+
611
== Core
712

813
{{ERC2771Context}}

contracts/utils/README.adoc

Lines changed: 24 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -5,14 +5,30 @@ NOTE: This document is better viewed at https://docs.openzeppelin.com/contracts/
55

66
Miscellaneous contracts and libraries containing utility functions you can use to improve security, work with new data types, or safely use low-level primitives.
77

8+
* {Math}, {SignedMath}: Implementation of various arithmetic functions.
9+
* {SafeCast}: Checked downcasting functions to avoid silent truncation.
10+
* {ECDSA}, {MessageHashUtils}: Libraries for interacting with ECDSA signatures.
11+
* {SignatureChecker}: A library helper to support regular ECDSA from EOAs as well as ERC-1271 signatures for smart contracts.
12+
* {MerkleProof}: Functions for verifying https://en.wikipedia.org/wiki/Merkle_tree[Merkle Tree] proofs.
13+
* {EIP712}: Contract with functions to allow processing signed typed structure data according to https://eips.ethereum.org/EIPS/eip-712[EIP-712].
814
* {ReentrancyGuard}: A modifier that can prevent reentrancy during certain functions.
915
* {Pausable}: A common emergency response mechanism that can pause functionality while a remediation is pending.
10-
* {SafeCast}: Checked downcasting functions to avoid silent truncation.
11-
* {Math}, {SignedMath}: Implementation of various arithmetic functions.
12-
* {Multicall}: Simple way to batch together multiple calls in a single external call.
13-
* {Create2}: Wrapper around the https://blog.openzeppelin.com/getting-the-most-out-of-create2/[`CREATE2` EVM opcode] for safe use without having to deal with low-level assembly.
16+
* {Nonces}: Utility for tracking and verifying address nonces that only increment.
17+
* {ERC165, ERC165Checker}: Utilities for inspecting interfaces supported by contracts.
18+
* {BitMaps}: A simple library to manage boolean value mapped to a numerical index in an efficient way.
1419
* {EnumerableMap}: A type like Solidity's https://solidity.readthedocs.io/en/latest/types.html#mapping-types[`mapping`], but with key-value _enumeration_: this will let you know how many entries a mapping has, and iterate over them (which is not possible with `mapping`).
1520
* {EnumerableSet}: Like {EnumerableMap}, but for https://en.wikipedia.org/wiki/Set_(abstract_data_type)[sets]. Can be used to store privileged accounts, issued IDs, etc.
21+
* {DoubleEndedQueue}: An implementation of a https://en.wikipedia.org/wiki/Double-ended_queue[double ended queue] whose values can be removed added or remove from both sides. Useful for FIFO and LIFO structures.
22+
* {Checkpoints}: A data structure to store values mapped to an strictly increasing key. Can be used for storing and accessing values over time.
23+
* {Create2}: Wrapper around the https://blog.openzeppelin.com/getting-the-most-out-of-create2/[`CREATE2` EVM opcode] for safe use without having to deal with low-level assembly.
24+
* {Address}: Collection of functions for overloading Solidity's https://docs.soliditylang.org/en/latest/types.html#address[`address`] type.
25+
* {Arrays}: Collection of functions that operate on https://docs.soliditylang.org/en/latest/types.html#arrays[`arrays`].
26+
* {Base64}: On-chain base64 and base64URL encoding according to https://datatracker.ietf.org/doc/html/rfc4648[RFC-4648].
27+
* {Strings}: Common operations for strings formatting.
28+
* {ShortString}: Library to encode (and decode) short strings into (or from) a single bytes32 slot for optimizing costs. Short strings are limited to 31 characters.
29+
* {StorageSlot}: Methods for accessing specific storage slots formatted as common primitive types.
30+
* {Multicall}: Abstract contract with an utility to allow batching together multiple calls in a single transaction. Useful for allowing EOAs to perform multiple operations at once.
31+
* {Context}: An utility for abstracting the sender and calldata in the current execution context.
1632

1733
[NOTE]
1834
====
@@ -45,6 +61,8 @@ Because Solidity does not support generic types, {EnumerableMap} and {Enumerable
4561

4662
{{Pausable}}
4763

64+
{{Nonces}}
65+
4866
== Introspection
4967

5068
This set of interfaces and contracts deal with https://en.wikipedia.org/wiki/Type_introspection[type introspection] of contracts, that is, examining which functions can be called on them. This is usually referred to as a contract's _interface_.
@@ -86,3 +104,5 @@ Ethereum contracts have no native concept of an interface, so applications must
86104
{{StorageSlot}}
87105

88106
{{Multicall}}
107+
108+
{{Context}}

0 commit comments

Comments
 (0)