openzeppelin-contracts icon indicating copy to clipboard operation
openzeppelin-contracts copied to clipboard

OpenZeppelin Contracts is a library for secure smart contract development.

Results 568 openzeppelin-contracts issues
Sort by recently updated
recently updated
newest added

**🧐 Motivation** There is an opinion that ERC777 is over-engineered and is a bad practice to follow. Moreover it introduces bad abstractions to rely on and requires very important checks...

### Motivation Make the `permit` method compatible with smart-contract wallets that implement EIP1271, and make smart-contract wallets compatible with dapp flows that leverage the `permit` method (e.g. via WalletConnect). ###...

on hold

Let's discuss this opportunity to minimize ERC20 source code. #### PR Checklist - [ ] Tests - [ ] Documentation - [ ] Changelog entry

- Remember to credit @ZumZoom for #3468 (not in changelog) - Remember to credit @DanielVF for #3506 (not in changelog)

When compiling a contract, the devdoc doesn't extends from the parent. For example when compiling the ERC20 contract, the devdoc of method `balanceOf` is ``` See {IERC20-balanceOf}. ``` Instead of...

**🧐 Motivation** On-chain sorting is a risky design choice, but for small data sizes it could be useful for some algorithms. I'm proposing sorting of `memory` arrays, NOT `storage` arrays,...

As per the discussion https://forum.openzeppelin.com/t/erc4626-vault-implementation-for-totalassets-in-base-contract/29474 and https://github.com/OpenZeppelin/openzeppelin-contracts/pull/3497#issuecomment-1162864795 , requesting "ERC4626 Tracker" contract as part of release. cc @Amxx

area: erc4626

- EIP712 include a `DOMAIN_SEPARATOR` getter by default - A `Nonces` contract is dedicated to nonce management to avoid conflicts when inheriting Votes and ERC20Permit - ERC20Votes is now built...

Use the custom errors introduced in 0.8.4 to reduce gas cost and improve clarity of revert reasons. Next steps: - [ ] Identify which reasons to replace - [ ]...

on hold

We are looking into removing mock contracts to make maintainability easier. The [hardhat-exposed](https://github.com/frangio/hardhat-exposed) plugin I built automatically creates "mock" contracts that 1) expose internal functions as external functions, and 2)...

tooling