WIP -- generate flow for extensions [DO NOT MERGE]
Problem solved
Short description of the bug fixed or feature added
Changes made
- [ ] Public API changes: list the public API changes made if any
- [ ] Internal API changes: explain the internal logic changes
How to test
- [ ] Automated tests: link to unit test file
- [ ] Manual tests: step by step instructions on how to test
Contributor NFT
Paste in your wallet address below and we will airdrop you a special NFT when your pull request is merged.
Address:
PR-Codex overview
This PR adds ERC721 extension functions and events for ownership management and hooks in Thirdweb.
Detailed summary
- Added ERC721 extension functions for ownership management
- Included events for OwnershipTransferred, Transfer, ApprovalForAll, OwnershipHandoverRequested, OwnershipHandoverCanceled, HooksInstalled, and HooksUninstalled
The following files were skipped due to too many changes:
packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/events/Transfer.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/events/Approval.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/name.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/owner.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/symbol.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/events/ConsecutiveTransfer.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/contractURI.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/totalSupply.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/ON_TOKEN_URI_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/ON_TOKEN_URI_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/ON_ROYALTY_INFO_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/ON_ROYALTY_INFO_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_BURN_ERC20_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_MINT_ERC20_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_BURN_ERC20_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_MINT_ERC20_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_BURN_ERC721_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_MINT_ERC721_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_BURN_ERC721_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_MINT_ERC721_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_BURN_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_MINT_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_BURN_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_MINT_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_APPROVE_ERC20_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_APPROVE_ERC20_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_APPROVE_ERC721_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_TRANSFER_ERC20_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_APPROVE_ERC721_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_TRANSFER_ERC20_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_APPROVE_FOR_ALL_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_TRANSFER_ERC721_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_APPROVE_FOR_ALL_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_TRANSFER_ERC721_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_TRANSFER_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_TRANSFER_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/BEFORE_BATCH_TRANSFER_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/BEFORE_BATCH_TRANSFER_ERC1155_FLAG.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/eip712Domain.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/getHookInfo.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/getAllHooks.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/multicall.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/multicall.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/setContractURI.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/uninstallHook.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/transferOwnership.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/burn.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/approve.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/completeOwnershipHandover.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/tokenURI.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/ownerOf.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/balanceOf.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/getApproved.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/setApprovalForAll.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/mint.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/tokensOfOwner.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/transferFrom.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/_highestBitToZero.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/supportsInterface.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/installHook.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/getHookImplementation.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/getSaleConfig.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/write/safeTransferFrom.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/beforeMintERC20.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/beforeMintERC721.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/royaltyInfo.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/isApprovedForAll.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/ownershipHandoverExpiresAt.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/decodeClaimParams.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/explicitOwnershipOf.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/setSaleConfig.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/explicitOwnershipsOf.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/beforeMintERC1155.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/tokensOfOwnerIn.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/allowlistMint.ts,packages/thirdweb/src/extensions/erc721/__generated__/ERC721Core/read/getHookFallbackFunctionCall.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/getClaimPhaseERC20.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/getClaimPhaseERC721.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/setClaimPhaseERC20.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/setClaimPhaseERC721.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/getClaimPhaseERC1155.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/write/setClaimPhaseERC1155.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/decodeSignatureMintERC20Params.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/decodeSignatureMintERC721Params.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/decodeSignatureMintERC1155Params.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/signatureMintERC20.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/signatureMintERC721.ts,packages/thirdweb/src/extensions/hooks/__generated__/MintHook/read/signatureMintERC1155.ts,packages/thirdweb/scripts/generate/abis/hooks/MintHook.json,packages/thirdweb/scripts/generate/abis/erc721/ERC721Core.json
✨ Ask PR-Codex anything about this PR by commenting with
/codex {your question}
⚠️ No Changeset found
Latest commit: 07d49e439f3d566fc3fa0a37f338e22be41bb5e2
Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.
This PR includes no changesets
When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types
Click here to learn what changesets are, and how to add one.
Click here if you're a maintainer who wants to add a changeset to this PR
CodSpeed Performance Report
Merging #3078 will not alter performance
Comparing nkrishang/generate-for-extensions (07d49e4) with main (d95eb31)
Summary
✅ 9 untouched benchmarks
size-limit report 📦
| Path | Size | Loading time (3g) | Running time (snapdragon) | Total time |
|---|---|---|---|---|
| thirdweb (esm) | 39.24 KB (0%) | 785 ms (0%) | 577 ms (+5.36% 🔺) | 1.4 s |
| thirdweb (cjs) | 88.65 KB (0%) | 1.8 s (0%) | 1.1 s (+12.34% 🔺) | 2.9 s |
| thirdweb (minimal + tree-shaking) | 4.75 KB (0%) | 96 ms (0%) | 19 ms (-72.12% 🔽) | 115 ms |
| thirdweb/chains (tree-shaking) | 423 B (0%) | 10 ms (0%) | 56 ms (+775.95% 🔺) | 66 ms |
| thirdweb/react (minimal + tree-shaking) | 23.11 KB (0%) | 463 ms (0%) | 83 ms (-3.22% 🔽) | 545 ms |