Extension-based deploy form

When you're deploying a contract on thirdweb.com, before, we used to have a pretty separated experience between thirdweb contracts and your own published contracts.

This makes it a much better and easier experience to deploy contracts, for example, if your contract implements ContractMetadata, it's much easier to upload an image, set name, description and symbol, rather than upload an IPFS hash of a JSON with that data (with the image also uploaded to IPFS).

For something like royalties, it's much easier for the user to set the percentage than basis points (which is percentage * 100).

This detections we're only available for thirdweb contracts, but now, if we detect any of the supported extensions, it'll show for any published contract. This makes it very easy to use our base contracts and start from there instead of writing your contracts from scratch.

We'll work to add more detections and capabilities for the most common functions and workflows developers have when publishing contracts.

If you have any suggestions, don't hesitate to tell us on our Discord.