-
Notifications
You must be signed in to change notification settings - Fork 842
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Add ERC721ABatchTransferable
and ERC721ABatchBurnable
#486
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
* added comments on transfer hooks * added sort * added clearApprovalsAndEmitTransferEvent * added tokenBatchTransfer hooks * added _batchTransferFrom and safe variants * added ERC721ABatchTransferable extension and interface * formatting * added interface and ERC721ABatchTransferableMock * added ERC721ABatchTransferable tests (wip) * added approvalCheck * fixed duplicate call * comment * fixed next initialized * refactored lastInitPackedOwnership to use prevPackedOwnership * comments * ensured correctness of nextInitialized in slots of transferred token Ids * renamed variables * reverted to leave nextInitialized unchanged * comment * replace sort -> insertion sort * bump: prettier-plugin-solidity * prettier * added prettier-ignore * fixed nextTokenId in last array element * tests wip * refactor * updated BatchTransferable mock and extension * updated tests * add approval tests * lint * lint fix * restore original .prettierrc * fix * comments and refactor * added _batchBurn * added ERC721ABatchBurnable extension, interfaces and mock * fixed _batchBurn * fixed update of last tokenId + 1 * batchBurnable tests wip * refactor * fix * add auto-clearing of consecutive ids and set `nextInitialized` to false * batchTransfer tests refactor * tests wip * tests wip * comments * added extraData logic to batch mocks * updated batch tests * refactored ERC721A to use _updateTokenId * wip * comment * Add ERC721ABatchBurnableMock (#450) * change tokenIds in ascending order in test * removal of unneeded internal functions * prettier * removed batch transfer logic * changed _updateTokenId * fixed mock * fixed extension and mock * fixed tests and cleaned unused functions in mock * removed _updateTokenId * minor gas optimizations * comment * optimize: avoid potential double read from storage * removed bulkBurn from mock * optimization: reset _packedOwnerships for initialized sequential IDs * added tests for sequential ID clearing * added test for tokenIds in strictly ascending order * comment * optimize: keep track of prevTokenOwner to bypass duplicated logic * revert: resetting _packedOwnerships in initialized sequential IDs * cleanup * optimize: avoid potential double read from storage * refactor _batchTransfer logic * optimized and stacked not too deep * optimize: removed unneeded exists() via getApproved * removed unneeded functions and batchBurn
Vectorized
force-pushed
the
batchTransferable
branch
from
August 21, 2024 01:50
6cba3fa
to
7b3d048
Compare
Vectorized
changed the title
Add
Add Aug 21, 2024
batchTransferFrom
and ERC721ABatchTransferable
extensionERC721ABatchTransferable
and ERC721ABatchBurnable
chiru-labs
approved these changes
Sep 6, 2024
This is huuuge!!! Thanks a lot @jjranalli @Vectorized @chiru-labs @cygaar amazing job 🔥🔥🔥 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Continued from #458 and #444.
Notes:
uint256
instead ofaddress
.== 0
to== uint256(0)
helps the compiler produce more efficient bytecode.