ernestognw ba8e296915 ERC721 _update
commit 2897abccc9
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 14 15:31:29 2023 +0200

    Update ERC721.sol

commit e26d5c0951
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 14 08:46:48 2023 +0200

    Update IERC721.sol

commit a475ffae0a
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 14 08:45:25 2023 +0200

    Update ERC721.sol

commit 20bb47f439
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 14 08:43:14 2023 +0200

    Update contracts/token/ERC721/ERC721.sol

commit f404802d55
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 14 08:41:30 2023 +0200

    Update ERC721.sol

commit b982e2a808
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 14 08:38:46 2023 +0200

    Update ERC721.behavior.js

commit ca32b459ec
Author: Francisco Giordano <fg@frang.io>
Date:   Thu Jul 13 19:14:15 2023 -0300

    fix _safeTransfer docs

commit caabbf3c46
Author: Francisco Giordano <fg@frang.io>
Date:   Thu Jul 13 19:08:36 2023 -0300

    improve warnings and notes

commit a023cad591
Author: Francisco Giordano <fg@frang.io>
Date:   Thu Jul 13 18:21:27 2023 -0300

    wrap long line

commit 5ce49a45fd
Author: Francisco Giordano <fg@frang.io>
Date:   Thu Jul 13 18:19:30 2023 -0300

    remove unnecessary solhint annotation

commit d0375301f1
Author: Francisco <fg@frang.io>
Date:   Thu Jul 13 18:17:24 2023 -0300

    Apply suggestions from code review

    Co-authored-by: Ernesto García <ernestognw@gmail.com>

commit 81aca96467
Author: Francisco <fg@frang.io>
Date:   Thu Jul 13 18:16:42 2023 -0300

    Update CHANGELOG.md

    Co-authored-by: Ernesto García <ernestognw@gmail.com>

commit 12f63b3b1b
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 17:28:04 2023 +0200

    add test

commit 08da709ba7
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 16:45:30 2023 +0200

    refactor _checkAuhtorized

commit 328b16bf8c
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 16:29:05 2023 +0200

    Authorised → Authorized

commit b29e573383
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 16:14:57 2023 +0200

    rename from → previousOwner

commit e996ba49d8
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 16:00:38 2023 +0200

    add ERC721 specific details in the 'How to upgrade from 4.x' section of the CHANGELOG

commit 20048ca3b9
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 11:00:11 2023 +0200

    Changes suggested in the PR discussions

commit 4c25b48803
Merge: d7a6aaf4 fb4d9510
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 10:00:55 2023 +0200

    Merge branch 'refactor/erc721-update-fnPointer' of https://github.com/Amxx/openzeppelin-contracts into refactor/erc721-update-fnPointer

commit d7a6aaf41f
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 10:00:50 2023 +0200

    remove _exists

commit fb4d9510de
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Jul 13 10:00:39 2023 +0200

    Apply suggestions from code review

    Co-authored-by: Francisco <fg@frang.io>
    Co-authored-by: Ernesto García <ernestognw@gmail.com>

commit 10815081f7
Author: ernestognw <ernestognw@gmail.com>
Date:   Wed Jul 12 21:09:18 2023 -0600

    Lint

commit 9ba012005f
Author: ernestognw <ernestognw@gmail.com>
Date:   Wed Jul 12 20:28:50 2023 -0600

    Format _increaseBalance NatSpec

commit 7c3f1615b0
Author: Francisco <fg@frang.io>
Date:   Wed Jul 12 20:29:11 2023 -0300

    Update .changeset/eighty-lemons-shake.md

    Co-authored-by: Ernesto García <ernestognw@gmail.com>

commit 4516803058
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 17:15:48 2023 +0200

    make the safe function without a data field non virtual

commit e4b0e725df
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 16:56:07 2023 +0200

    use whenNotPaused in ERC721Pausable

commit b973d985a4
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 14:11:59 2023 +0200

    changesets

commit 7121ff7c5f
Merge: 2558c8fa de570d0d
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 13:46:07 2023 +0200

    Merge branch 'erc721-approve-0' into refactor/erc721-update-fnPointer

commit de570d0d14
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 13:42:46 2023 +0200

    allow using approve/_approve to clean approval

commit 2558c8fac8
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 10:16:55 2023 +0200

    change _increaseBalance type to uint128

commit 16f2f15673
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 10:01:30 2023 +0200

    remove _isApproedOrOwner in favor of _isApproved + refactor _checkOnERC721Received

commit 7e9d024d08
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 12 09:31:18 2023 +0200

    Apply suggestions from code review

    Co-authored-by: Ernesto García <ernestognw@gmail.com>

commit 1a9552009b
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Tue Jul 11 21:47:23 2023 +0200

    replace constraints with a simple operator check

commit bd0c52e34a
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Tue Jul 11 18:06:29 2023 +0200

    refactor constraint into an optionalChecks bitmap

commit 5ab254cf95
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 7 16:13:17 2023 +0200

    lint

commit 0bb98cb8c6
Merge: 562ddf56 7ccea54d
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jul 7 16:11:40 2023 +0200

    Merge branch 'master' into feature/Governor-storage

commit 562ddf566a
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jul 5 18:45:42 2023 +0200

    implement hybrid _update

commit 54cb3ca05f
Merge: c7303ec2 bb644589
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Mon Jul 3 21:09:30 2023 +0200

    Merge branch 'master' into refactor/erc721-update-fnPointer

commit c7303ec2ae
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Mon Jul 3 09:37:53 2023 +0200

    fix lint

commit 1cc7f54ab5
Merge: 78c280b5 06861dce
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Mon Jul 3 09:35:35 2023 +0200

    Merge remote-tracking branch 'upstream' into refactor/erc721-update-fnPointer

commit 78c280b537
Merge: e2fdbacd 04342118
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Fri Jun 30 18:40:55 2023 +0200

    Merge branch 'master' into refactor/erc721-update-fnPointer

commit e9f03bd211
Author: Francisco Giordano <fg@frang.io>
Date:   Fri Jun 30 12:09:15 2023 -0300

    Exclude address(0) in ERC721._isApprovedOrOwner

commit e2fdbacd63
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jun 21 22:09:50 2023 +0200

    fix lint

commit 7ec34355ae
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jun 21 17:59:22 2023 +0200

    Apply suggestions from code review

commit 1ed8f9ef2c
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Wed Jun 21 17:56:00 2023 +0200

    use __unsafe_increaseBalance to react to batch minting

commit a3526acdf2
Author: Hadrien Croubois <hadrien.croubois@gmail.com>
Date:   Thu Apr 27 16:37:40 2023 +0200

    Rebase ERC721._update on top of next-v5
2023-07-19 13:11:33 -06:00
2023-07-19 13:11:33 -06:00
2023-07-19 13:11:33 -06:00
2023-07-19 13:11:33 -06:00
2022-12-29 17:08:12 -03:00
2023-03-16 16:08:28 -03:00
2023-01-04 15:03:40 +01:00
2023-01-04 15:03:40 +01:00
2023-07-19 13:11:33 -06:00
2023-02-14 20:03:37 -03:00
2020-08-12 20:51:33 -03:00
2023-07-10 17:26:02 -03:00
2023-02-14 20:03:37 -03:00
2023-02-02 21:08:41 -03:00

Warning

Version 5.0 is under active development. The code in this branch is not recommended for use.

OpenZeppelin

NPM Package Coverage Status GitPOAPs Docs Forum

A library for secure smart contract development. Build on a solid foundation of community-vetted code.

🧙 Not sure how to get started? Check out Contracts Wizard — an interactive smart contract generator.

🏗️ Want to scale your decentralized application? Check out OpenZeppelin Defender — a secure platform for automating and monitoring your operations.

Overview

Installation

Hardhat, Truffle (npm)

$ npm install @openzeppelin/contracts

OpenZeppelin Contracts features a stable API, which means that your contracts won't break unexpectedly when upgrading to a newer minor version.

Foundry (git)

Warning

When installing via git, it is a common error to use the master branch. This is a development branch that should be avoided in favor of tagged releases. The release process involves security measures that the master branch does not guarantee.

Warning

Foundry installs the latest version initially, but subsequent forge update commands will use the master branch.

$ forge install OpenZeppelin/openzeppelin-contracts

Add @openzeppelin/contracts/=lib/openzeppelin-contracts/contracts/ in remappings.txt.

Usage

Once installed, you can use the contracts in the library by importing them:

pragma solidity ^0.8.19;

import {ERC721} from "@openzeppelin/contracts/token/ERC721/ERC721.sol";

contract MyCollectible is ERC721 {
    constructor() ERC721("MyCollectible", "MCO") {
    }
}

If you're new to smart contract development, head to Developing Smart Contracts to learn about creating a new project and compiling your contracts.

To keep your system secure, you should always use the installed code as-is, and neither copy-paste it from online sources nor modify it yourself. The library is designed so that only the contracts and functions you use are deployed, so you don't need to worry about it needlessly increasing gas costs.

Learn More

The guides in the documentation site will teach about different concepts, and how to use the related contracts that OpenZeppelin Contracts provides:

  • Access Control: decide who can perform each of the actions on your system.
  • Tokens: create tradeable assets or collectives, and distribute them via Crowdsales.
  • Utilities: generic useful tools including non-overflowing math, signature verification, and trustless paying systems.

The full API is also thoroughly documented, and serves as a great reference when developing your smart contract application. You can also ask for help or follow Contracts's development in the community forum.

Finally, you may want to take a look at the guides on our blog, which cover several common use cases and good practices. The following articles provide great background reading, though please note that some of the referenced tools have changed, as the tooling in the ecosystem continues to rapidly evolve.

Security

This project is maintained by OpenZeppelin with the goal of providing a secure and reliable library of smart contract components for the ecosystem. We address security through risk management in various areas such as engineering and open source best practices, scoping and API design, multi-layered review processes, and incident response preparedness.

The OpenZeppelin Contracts Security Center contains more details about the secure development process.

The security policy is detailed in SECURITY.md as well, and specifies how you can report security vulnerabilities, which versions will receive security patches, and how to stay informed about them. We run a bug bounty program on Immunefi to reward the responsible disclosure of vulnerabilities.

The engineering guidelines we follow to promote project quality can be found in GUIDELINES.md.

Past audits can be found in audits/.

Smart contracts are a nascent technology and carry a high level of technical risk and uncertainty. Although OpenZeppelin is well known for its security audits, using OpenZeppelin Contracts is not a substitute for a security audit.

OpenZeppelin Contracts is made available under the MIT License, which disclaims all warranties in relation to the project and which limits the liability of those that contribute and maintain the project, including OpenZeppelin. As set out further in the Terms, you acknowledge that you are solely responsible for any use of OpenZeppelin Contracts and you assume all risks associated with any such use.

Contribute

OpenZeppelin Contracts exists thanks to its contributors. There are many ways you can participate and help build high quality software. Check out the contribution guide!

License

OpenZeppelin Contracts is released under the MIT License.

Your use of this Project is governed by the terms found at www.openzeppelin.com/tos (the "Terms").

Description
OpenZeppelin Contracts is a library for secure smart contract development.
Readme MIT 100 MiB
Languages
JavaScript 84.2%
Ruby 14.1%
Python 0.7%
Shell 0.5%
Solidity 0.4%