Releases: chiru-labs/ERC721A
Releases · chiru-labs/ERC721A
v4.3.0
What's Changed
- create an internal
_approve
function allowing extensions and EIPs to do approvals without check by @dievardump in #427 - 0xInu~
_packedOwnershipOf
optimization, saving 2143 gas on transfers by @0xInuarashi in #433 - Optimize
_packedOwnershipOf
by @Vectorized in #435 - Optimize
_approve
and add test by @Vectorized in #436 - Gas optimizations for reverts and transfer events by @codeislight1 in #441
- Optimize ERC721AQueryable for smaller bytecode size by @Arkay92 in #431
- Test Coverage: Branch coverage for
_packedOwnershipOf
by @ahbanavi in #439 - Preparation for efficient consecutive burns by @Vectorized in #447
- Preparation for efficient consecutive burns 2 by @Vectorized in #449
- Non-sequential minting (a.k.a spot-minting) support by @Vectorized in #479
New Contributors
- @dievardump made their first contribution in #427
- @0xInuarashi made their first contribution in #433
- @codeislight1 made their first contribution in #441
- @Arkay92 made their first contribution in #431
- @coderr19 made their first contribution in #459
Full Changelog: v4.2.3...v4.3.0
v4.2.3
What's Changed
- caller or token owner should be able to approve self as operator for … by @jrkosinski in #407
- Add trailing zeros padding to _toString by @Vectorized in #415
- Add payable gas optimization by @Vectorized in #418
New Contributors
- @KamaDeFi made their first contribution in #400
- @jrkosinski made their first contribution in #407
Full Changelog: v4.2.2...v4.2.3
v4.2.2
What's Changed
- Fix "error:0308010C:digital envelope routines::unsupported" by @nazariyv in #388
- Simplify _toString by @Vectorized in #392
- Add overrides to ERC4907 by @Vectorized in #397
New Contributors
Full Changelog: v4.2.0...v4.2.2
v.4.2.0
What's Changed
- Make all public and internal functions virtual by @Vectorized in #359
- Use calldata for queryable extension by @cygaar in #361
- Change tokenApproval slot calculation to avoid compiler error by @jameswenzel in #364
- Fix casting to bytes1 in ERC721ReceiverMock for solc v0.8.4 by @Vectorized in #366
- Assembly mint loop by @Vectorized in #347
- ERC4907 by @Vectorized in #370
New Contributors
- @theshadowagent made their first contribution in #346
- @christian561 made their first contribution in #352
- @metawizartDev made their first contribution in #357
- @foglerek made their first contribution in #360
- @jameswenzel made their first contribution in #364
- @fosgate29 made their first contribution in #373
- @JoeLopez333 made their first contribution in #378
Full Changelog: v4.1.0...v4.2.0
v4.1.0
What's Changed
- Minor transfer optimization by @Vectorized in #295
- Delete unnecessary space character by @0xdagarn in #305
- Minor optimization tests by @Vectorized in #316
- Remove check for
owner == to
in approve by @Vectorized in #320 - Remove code duplication in
_safeMint
by @Vectorized in #318 - Use 'ownerOf' function within approve. by @laplace-daemon in #333
- Small gas optimization for burn/transfers/mint by @kadenzipfel in #334
- Add a generic interface for ownership storage hitchhiking by @cxkoda in #323
- Add ERC-2309 support for mints during contract creation by @Vectorized in #311
- Zero out tokenApprovals using assembly by @cygaar in #335
- Some minor optimizations and refactors by @Vectorized in #337
- Minor tidy up by @Vectorized in #339
- Add function to directly set extra data by @Vectorized in #336
- Add stricter timestamp tests by @Vectorized in #341
- Update to v4.1.0 by @cygaar in #342
Bug Fixes
- Fix
startTimestamp
for burned tokens being larger than their correct values.
Castinguint256
toaddress
in Solidity does not necessarily set the upper 96 bits of the word to zero,
causing dirty old bits to overlap with the newer bits.
Addresses are now explicitly masked to clear the upper 96 bits when packed into auint256
.
New Contributors
- @0xdagarn made their first contribution in #305
- @caffeinum made their first contribution in #313
- @mirkopezo made their first contribution in #325
- @laplace-daemon made their first contribution in #333
- @kadenzipfel made their first contribution in #334
- @cxkoda made their first contribution in #323
- @jorrsh made their first contribution in #340
Full Changelog: v4.0.0...v4.1.0
v4.0.0
What's Changed
- Remove OpenZeppelin by @Vectorized in #275
- Use uint packing instead of structs by @Vectorized in #272
- Remove Approval event in _transfer by @Vectorized in #274
- Rename _msgSender to _msgSenderERC721A by @Vectorized in #280 #281
- Name changes and read-only wrappers for consistency by @Vectorized in #284
- Assembly for _toString by @Vectorized in #283
- Remove ERC721ASetOwnersExplicit extension by @cygaar in #290
- Remove setOwnersExplicit from the docs by @cygaar in #291
- Docs: add interface by @ahbanavi in #279
- Docs: Update for v4 by @Vectorized in #294
- Update to 4.0 by @cygaar in #293
Breaking Changes
- Removed ERC721ASetOwnersExplicit extension. Use
_initializeOwnershipAt(uint256 index)
instead. - Removed ERC721APausable extension
- Diamond storage(for ERC721A-Upgradeable).
_burnedCounter
made private. Replaced with internal_totalBurned()
._currentIndex
made private. Replaced with internal_nextTokenId()
._addressData
made private. Use_ownershipOf(uint256 tokenId)
or_ownershipAt(uint256 index)
instead.
New Contributors
- @gurza made their first contribution in #268
- @web3isthefuture made their first contribution in #273
Full Changelog: v3.3.0...v4.0.0
v3.3.0
What's Changed
- Add _mint(to, quantity) function by @Vectorized in #235
- Feat: Add Interface by @ahbanavi in #243
- add override and remove immutable in function to fit version under v0.8.8 by @tn606024 in #255
- Remove Pausable by @Vectorized in #257
Breaking Changes
- Changed the function signature of _mint
- Removed Pausable. Please check your contracts to make sure you are not using this extension as it has been removed in this version.
New Contributors
- @AlecPapierniak made their first contribution in #237
- @BrantBaca made their first contribution in #244
- @bios42eth made their first contribution in #250
- @maximedegreve made their first contribution in #248
- @tn606024 made their first contribution in #255
Full Changelog: v3.2.0...v3.3.0
v3.2.0
What's Changed
This release brings support to ERC721AUpgradeable which can be found here.
- Add ERC721AQueryable by @Vectorized in #224
- Add ERC721APausable as equivalent to ERC721Pausable by @johnnyshankman in #205
- Add correct function signature for _setAux by @beneisnr in #201
- Add upgradeable trigger by @cygaar in #229
- Minor doc fixes
ERC721A Upgradeable Contributors
- https://github.com/IpastorSan
- https://github.com/iainnash
- https://github.com/naomsa
- https://github.com/MrMcGoats
- https://github.com/f4111222
- https://github.com/Vectorized
- https://github.com/cygaar
New Contributors
- @ihorbond made their first contribution in #182
- @dominikkeller made their first contribution in #186
- @NFTGConsultoria made their first contribution in #197
- @beneisnr made their first contribution in #201
- @e98877331 made their first contribution in #206
- @johnnyshankman made their first contribution in #205
- @andrewkmin made their first contribution in #217
- @blankey1337 made their first contribution in #225
- @Austinhs made their first contribution in #114
- @scumbugs made their first contribution in #228
Full Changelog: v3.1.0...v3.2.0
v3.1.0
What's Changed
- Marks setApprovalForAll as virtual by @KirienzoEth in #149
- Remove unused errors (#157) by @potrepka in #158
- Unify internal function style by @antoncoding in #161
- Add approvalCheck argument in _burn by @ahbanavi in #165
- Removed zero address check on _numberMinted by @BenSparksCode in #160
- Removed other zero address checks by @Vectorized in #167
- Minor optimization tricks by @Vectorized in #168
- Remove unused IERC721Enumerable import by @broliver12 in #178
Breaking Changes
ownershipOf
was renamed to_ownershipOf
. If you were using this function, please change to_ownershipOf
.
Full Changelog: v3.0.0...v3.1.0
v3.0.0
#107 is a backwards incompatible change, so please update your contracts if you have not deployed yet.
What's Changed
- Remove unnecessary optimizations by @fulldecent in #109
- Remove tokenOfOwnerByIndex by @fulldecent in #107
- Add aux to AddressData by @Vectorized in #98
- New maintainer by @chiru-labs in #133
- Start Sequentially Minting at
_startTokenId()
instead of hardcoded 0 by @Pczek in #66 - Mint re-entrancy guard with optimizations. by @Vectorized in #131
New Contributors
- @CapsuleMachine made their first contribution in #100
- @Mysthereum made their first contribution in #105
- @bulbasoureth made their first contribution in #112
- @isaiahgrey93 made their first contribution in #118
- @royalrekt made their first contribution in #121
- @lalanza808 made their first contribution in #125
- @Pczek made their first contribution in #66
Full Changelog: v2.2.0...v3.0.0