ETH Price: $3,611.71 (+1.11%)

Transaction Decoder

Block:
21857885 at Feb-16-2025 08:51:23 AM +UTC
Transaction Fee:
0.001116735805970736 ETH $4.03
Gas Used:
986,844 Gas / 1.131623444 Gwei

Emitted Events:

119 Mint721.OwnershipTransferred( oldOwner=0x00000000...000000000, newOwner=[Sender] 0x9cdbfc6dec3ddd7ea438204e5f9df3caa736455a )
120 Mint721.MetadataRendererUpdated( renderer=IPFSEditionRenderer )
121 Mint721.ModuleAdded( module=BasicMintModule )
122 BasicMintModule.ConfigurationUpdated( _contract=Mint721, _config=[{name:price, type:uint256, order:1, indexed:false, value:200000000000000, valueString:200000000000000}, {name:mintStart, type:uint64, order:2, indexed:false, value:0, valueString:0}, {name:mintEnd, type:uint64, order:3, indexed:false, value:1740300675, valueString:1740300675}, {name:maxPerWallet, type:uint32, order:4, indexed:false, value:0, valueString:0}, {name:maxPerTransaction, type:uint32, order:5, indexed:false, value:10, valueString:10}, {name:maxForModule, type:uint32, order:6, indexed:false, value:0, valueString:0}, {name:maxSupply, type:uint32, order:7, indexed:false, value:0, valueString:0}] )
123 IPFSEditionRenderer.ConfigurationUpdated( mintContract=Mint721, config=[{name:tokenName, type:string, order:1, indexed:false, value:Azure Grin, valueString:Azure Grin}, {name:tokenDescription, type:string, order:2, indexed:false, value:u0022Azure Grinu0022 is a unique digital art piece that captures the warm and genuine smile of a man. Rendered in a striking palette of blue hues, the artwork uses abstract and expressive brushstrokes to outline the subjectu0027s features and convey a sense of optimism and joy. The artist skillfully employs color and line to create a contemporary and emotionally resonant visual experience.nThis NFT is not just a piece of art; it is a profound expression of human emotion. It invites viewers to pause and feel the power of a smile, to experience the simple yet profound happiness it brings. u0022Azure Grinu0022 is a prime example of the perfect fusion of digital art and human sentiment, making it an invaluable collectible for connoisseurs and art enthusiasts alike., valueString:u0022Azure Grinu0022 is a unique digital art piece that captures the warm and genuine smile of a man. Rendered in a striking palette of blue hues, the artwork uses abstract and expressive brushstrokes to outline the subjectu0027s features and convey a sense of optimism and joy. The artist skillfully employs color and line to create a contemporary and emotionally resonant visual experience.nThis NFT is not just a piece of art; it is a profound expression of human emotion. It invites viewers to pause and feel the power of a smile, to experience the simple yet profound happiness it brings. u0022Azure Grinu0022 is a prime example of the perfect fusion of digital art and human sentiment, making it an invaluable collectible for connoisseurs and art enthusiasts alike.}, {name:imageIPFSHash, type:string, order:3, indexed:false, value:QmdoARPe2yWWU8GKFhxHnigXGrg3vH3LWWs6oVXJPv2E9H, valueString:QmdoARPe2yWWU8GKFhxHnigXGrg3vH3LWWs6oVXJPv2E9H}, {name:animationIPFSHash, type:string, order:4, indexed:false, value:, valueString:}, {name:animationMimeType, type:string, order:5, indexed:false, value:, valueString:}] )
124 MintFactory.ContractCreated( _contract=Mint721, _creator=[Sender] 0x9cdbfc6dec3ddd7ea438204e5f9df3caa736455a )

Account State Difference:

  Address   Before After State Difference Code
0x00000000...06947759C
0x00000000...b03C1F44F
0x00000000...5EA6242ac
0x7Fb67505...35Cfd897d
0 Eth
Nonce: 0
0 Eth
Nonce: 1
From: 0 To: 2194563381516407626324453258647895718881490096273196743212749812227806294851905513819536846018595392412659
(beaverbuild)
18.216019488005026635 Eth18.216512910005026635 Eth0.000493422
0x9CDbfc6D...Aa736455a
0.008392834148682918 Eth
Nonce: 3
0.007276098342712182 Eth
Nonce: 4
0.001116735805970736

Execution Trace

MintFactory.createBasicEdition_efficient_d3ea1b36( mint721Configuration=[{name:name, type:string, order:1, indexed:false, value:Azure Grin, valueString:Azure Grin}, {name:symbol, type:string, order:2, indexed:false, value:AZU, valueString:AZU}], metadataRenderer=0x000000000000771c0DF6De1451d9175b03C1F44F, metadataRendererData=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000E0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000A417A757265204772696E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002EF22417A757265204772696E22206973206120756E69717565206469676974616C20617274207069656365207468617420636170747572657320746865207761726D20616E642067656E75696E6520736D696C65206F662061206D616E2E2052656E646572656420696E206120737472696B696E672070616C65747465206F6620626C756520687565732C2074686520617274776F726B207573657320616273747261637420616E6420657870726573736976652062727573687374726F6B657320746F206F75746C696E6520746865207375626A656374277320666561747572657320616E6420636F6E76657920612073656E7365206F66206F7074696D69736D20616E64206A6F792E205468652061727469737420736B696C6C66756C6C7920656D706C6F797320636F6C6F7220616E64206C696E6520746F20637265617465206120636F6E74656D706F7261727920616E6420656D6F74696F6E616C6C79207265736F6E616E742076697375616C20657870657269656E63652E0A54686973204E4654206973206E6F74206A7573742061207069656365206F66206172743B20697420697320612070726F666F756E642065787072657373696F6E206F662068756D616E20656D6F74696F6E2E20497420696E7669746573207669657765727320746F20706175736520616E64206665656C2074686520706F776572206F66206120736D696C652C20746F20657870657269656E6365207468652073696D706C65207965742070726F666F756E642068617070696E657373206974206272696E67732E2022417A757265204772696E222069732061207072696D65206578616D706C65206F6620746865207065726665637420667573696F6E206F66206469676974616C2061727420616E642068756D616E2073656E74696D656E742C206D616B696E6720697420616E20696E76616C7561626C6520636F6C6C65637469626C6520666F7220636F6E6E6F6973736575727320616E642061727420656E74687573696173747320616C696B652E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E516D646F41525065327957575538474B466878486E696758477267337648334C575773366F56584A50763245394800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, salt=9CDBFC6DEC3DDD7EA438204E5F9DF3CAA736455A52FD2DBFE10B1D523844EF2D, mintModuleAddresses=[0x000000000f30984DE6843bBC1d109c95EA6242ac], mintModuleData=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC15iD0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnuuGDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=] )
  • Mint721.602c3d81( )
  • Mint721.initialize( config=[{name:name, type:string, order:1, indexed:false, value:Azure Grin, valueString:Azure Grin}, {name:symbol, type:string, order:2, indexed:false, value:AZU, valueString:AZU}], mintModuleRegistry_=0x0000000000005f12A17E1aF428824484B97a1a82, _metadataRenderer=0x000000000000771c0DF6De1451d9175b03C1F44F, metadataRendererConfig=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000E0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000A417A757265204772696E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002EF22417A757265204772696E22206973206120756E69717565206469676974616C20617274207069656365207468617420636170747572657320746865207761726D20616E642067656E75696E6520736D696C65206F662061206D616E2E2052656E646572656420696E206120737472696B696E672070616C65747465206F6620626C756520687565732C2074686520617274776F726B207573657320616273747261637420616E6420657870726573736976652062727573687374726F6B657320746F206F75746C696E6520746865207375626A656374277320666561747572657320616E6420636F6E76657920612073656E7365206F66206F7074696D69736D20616E64206A6F792E205468652061727469737420736B696C6C66756C6C7920656D706C6F797320636F6C6F7220616E64206C696E6520746F20637265617465206120636F6E74656D706F7261727920616E6420656D6F74696F6E616C6C79207265736F6E616E742076697375616C20657870657269656E63652E0A54686973204E4654206973206E6F74206A7573742061207069656365206F66206172743B20697420697320612070726F666F756E642065787072657373696F6E206F662068756D616E20656D6F74696F6E2E20497420696E7669746573207669657765727320746F20706175736520616E64206665656C2074686520706F776572206F66206120736D696C652C20746F20657870657269656E6365207468652073696D706C65207965742070726F666F756E642068617070696E657373206974206272696E67732E2022417A757265204772696E222069732061207072696D65206578616D706C65206F6620746865207065726665637420667573696F6E206F66206469676974616C2061727420616E642068756D616E2073656E74696D656E742C206D616B696E6720697420616E20696E76616C7561626C6520636F6C6C65637469626C6520666F7220636F6E6E6F6973736575727320616E642061727420656E74687573696173747320616C696B652E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E516D646F41525065327957575538474B466878486E696758477267337648334C575773366F56584A50763245394800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, mintModules=[0x000000000f30984DE6843bBC1d109c95EA6242ac], mintModuleData=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC15iD0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnuuGDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=], creator=0x9CDbfc6DeC3ddD7eA438204E5F9dF3CAa736455a )
    • Mint721.initialize( config=[{name:name, type:string, order:1, indexed:false, value:Azure Grin, valueString:Azure Grin}, {name:symbol, type:string, order:2, indexed:false, value:AZU, valueString:AZU}], mintModuleRegistry_=0x0000000000005f12A17E1aF428824484B97a1a82, _metadataRenderer=0x000000000000771c0DF6De1451d9175b03C1F44F, metadataRendererConfig=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000E0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000A417A757265204772696E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002EF22417A757265204772696E22206973206120756E69717565206469676974616C20617274207069656365207468617420636170747572657320746865207761726D20616E642067656E75696E6520736D696C65206F662061206D616E2E2052656E646572656420696E206120737472696B696E672070616C65747465206F6620626C756520687565732C2074686520617274776F726B207573657320616273747261637420616E6420657870726573736976652062727573687374726F6B657320746F206F75746C696E6520746865207375626A656374277320666561747572657320616E6420636F6E76657920612073656E7365206F66206F7074696D69736D20616E64206A6F792E205468652061727469737420736B696C6C66756C6C7920656D706C6F797320636F6C6F7220616E64206C696E6520746F20637265617465206120636F6E74656D706F7261727920616E6420656D6F74696F6E616C6C79207265736F6E616E742076697375616C20657870657269656E63652E0A54686973204E4654206973206E6F74206A7573742061207069656365206F66206172743B20697420697320612070726F666F756E642065787072657373696F6E206F662068756D616E20656D6F74696F6E2E20497420696E7669746573207669657765727320746F20706175736520616E64206665656C2074686520706F776572206F66206120736D696C652C20746F20657870657269656E6365207468652073696D706C65207965742070726F666F756E642068617070696E657373206974206272696E67732E2022417A757265204772696E222069732061207072696D65206578616D706C65206F6620746865207065726665637420667573696F6E206F66206469676974616C2061727420616E642068756D616E2073656E74696D656E742C206D616B696E6720697420616E20696E76616C7561626C6520636F6C6C65637469626C6520666F7220636F6E6E6F6973736575727320616E642061727420656E74687573696173747320616C696B652E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E516D646F41525065327957575538474B466878486E696758477267337648334C575773366F56584A50763245394800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, mintModules=[0x000000000f30984DE6843bBC1d109c95EA6242ac], mintModuleData=[AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC15iD0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnuuGDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA=], creator=0x9CDbfc6DeC3ddD7eA438204E5F9dF3CAa736455a )
      • MintModuleRegistry.checkModule( mintModule=0x000000000f30984DE6843bBC1d109c95EA6242ac )
      • BasicMintModule.updateConfiguration( args=0x0000000000000000000000000000000000000000000000000000B5E620F4800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000067BAE1830000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
      • IPFSEditionRenderer.updateConfiguration( args=0x000000000000000000000000000000000000000000000000000000000000002000000000000000000000000000000000000000000000000000000000000000A000000000000000000000000000000000000000000000000000000000000000E0000000000000000000000000000000000000000000000000000000000000040000000000000000000000000000000000000000000000000000000000000004600000000000000000000000000000000000000000000000000000000000000480000000000000000000000000000000000000000000000000000000000000000A417A757265204772696E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002EF22417A757265204772696E22206973206120756E69717565206469676974616C20617274207069656365207468617420636170747572657320746865207761726D20616E642067656E75696E6520736D696C65206F662061206D616E2E2052656E646572656420696E206120737472696B696E672070616C65747465206F6620626C756520687565732C2074686520617274776F726B207573657320616273747261637420616E6420657870726573736976652062727573687374726F6B657320746F206F75746C696E6520746865207375626A656374277320666561747572657320616E6420636F6E76657920612073656E7365206F66206F7074696D69736D20616E64206A6F792E205468652061727469737420736B696C6C66756C6C7920656D706C6F797320636F6C6F7220616E64206C696E6520746F20637265617465206120636F6E74656D706F7261727920616E6420656D6F74696F6E616C6C79207265736F6E616E742076697375616C20657870657269656E63652E0A54686973204E4654206973206E6F74206A7573742061207069656365206F66206172743B20697420697320612070726F666F756E642065787072657373696F6E206F662068756D616E20656D6F74696F6E2E20497420696E7669746573207669657765727320746F20706175736520616E64206665656C2074686520706F776572206F66206120736D696C652C20746F20657870657269656E6365207468652073696D706C65207965742070726F666F756E642068617070696E657373206974206272696E67732E2022417A757265204772696E222069732061207072696D65206578616D706C65206F6620746865207065726665637420667573696F6E206F66206469676974616C2061727420616E642068756D616E2073656E74696D656E742C206D616B696E6720697420616E20696E76616C7561626C6520636F6C6C65637469626C6520666F7220636F6E6E6F6973736575727320616E642061727420656E74687573696173747320616C696B652E0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002E516D646F41525065327957575538474B466878486E696758477267337648334C575773366F56584A50763245394800000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000 )
        createBasicEdition_efficient_d3ea1b36[MintFactory (ln:33)]
        File 1 of 6: MintFactory
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity ^0.8.21;
        import {IMetadataRenderer} from "create/interfaces/v1/IMetadataRenderer.sol";
        import {LibClone} from "solady/utils/LibClone.sol";
        import {Ownable} from "solady/auth/Ownable.sol";
        import {Pausable} from "openzeppelin/security/Pausable.sol";
        import {IMintFactory} from "create/interfaces/v1/IMintFactory.sol";
        import {Mint721Configuration} from "create/interfaces/v1/Mint721Configuration.sol";
        import {IMint721} from "create/interfaces/v1/IMint721.sol";
        contract MintFactory is IMintFactory, Ownable, Pausable {
        /// @notice The mint module registry.
        address public mintModuleRegistry;
        /// @notice The implementation of Mint721 to be cloned here.
        address public mint721Implementation;
        error InvalidAddress();
        constructor() {
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 2 of 6: Mint721
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity ^0.8.21;
        import {ERC721AUpgradeable} from "erc721a-upgradeable/ERC721AUpgradeable.sol";
        import {ERC721AStorage} from "erc721a-upgradeable/ERC721AStorage.sol";
        import {Ownable} from "solady/auth/Ownable.sol";
        import {IERC2981} from "openzeppelin/interfaces/IERC2981.sol";
        import {IERC165} from "openzeppelin/interfaces/IERC165.sol";
        import {IMetadataRenderer} from "create/interfaces/v1/IMetadataRenderer.sol";
        import {IMintContract} from "create/interfaces/v1/IMintContract.sol";
        import {IMint721} from "create/interfaces/v1/IMint721.sol";
        import {Mint721Configuration} from "create/interfaces/v1/Mint721Configuration.sol";
        import {IMintModuleRegistry} from "create/interfaces/v1/IMintModuleRegistry.sol";
        import {IERC4906} from "create/interfaces/v1/IERC4906.sol";
        import {Version} from "create/contracts/v1/Version.sol";
        contract Mint721 is ERC721AUpgradeable, IMintContract, IMint721, IERC4906, IERC2981, Ownable, Version {
        bytes4 private constant _updateConfigurationSelector = bytes4(keccak256("updateConfiguration(bytes)"));
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 3 of 6: BasicMintModule
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity ^0.8.21;
        import {IBasicMintModule, IConfigurable} from "create/interfaces/v1/IBasicMintModule.sol";
        import {IMintPayout} from "create/interfaces/v1/IMintPayout.sol";
        import {IMintContract} from "create/interfaces/v1/IMintContract.sol";
        import {BasicMintConfiguration} from "create/interfaces/v1/BasicMintConfiguration.sol";
        import {Version} from "create/contracts/v1/Version.sol";
        contract BasicMintModule is IBasicMintModule, Version {
        IMintPayout public immutable mintPayout;
        mapping(address => BasicMintConfiguration) private _configurations;
        mapping(address => mapping(address => uint256)) private _mintedByAddress;
        mapping(address => uint256) public mintedByContract;
        /// @notice Emitted when quantity is zero.
        error InvalidQuantity();
        /// @notice Emitted if the collector is minting too many tokens per transaction.
        error TooManyTokensPerTransaction();
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 4 of 6: IPFSEditionRenderer
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity ^0.8.21;
        import {Strings} from "openzeppelin/utils/Strings.sol";
        import {Base64} from "openzeppelin/utils/Base64.sol";
        import {IMetadataRenderer} from "create/interfaces/v1/IMetadataRenderer.sol";
        import {IIPFSEditionRenderer, IConfigurable} from "create/interfaces/v1/IIPFSEditionRenderer.sol";
        import {IPFSEditionRendererConfiguration} from "create/interfaces/v1/IPFSEditionRendererConfiguration.sol";
        import {Version} from "create/contracts/v1/Version.sol";
        contract IPFSEditionRenderer is IMetadataRenderer, IIPFSEditionRenderer, Version {
        mapping(address => IPFSEditionRendererConfiguration) _configurations;
        constructor() Version(1) {}
        /// @inheritdoc IConfigurable
        function updateConfiguration(bytes calldata args) external {
        IPFSEditionRendererConfiguration memory config = abi.decode(args, (IPFSEditionRendererConfiguration));
        _configurations[msg.sender] = config;
        emit ConfigurationUpdated(msg.sender, config);
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 5 of 6: Mint721
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity ^0.8.21;
        import {ERC721AUpgradeable} from "erc721a-upgradeable/ERC721AUpgradeable.sol";
        import {ERC721AStorage} from "erc721a-upgradeable/ERC721AStorage.sol";
        import {Ownable} from "solady/auth/Ownable.sol";
        import {IERC2981} from "openzeppelin/interfaces/IERC2981.sol";
        import {IERC165} from "openzeppelin/interfaces/IERC165.sol";
        import {IMetadataRenderer} from "create/interfaces/v1/IMetadataRenderer.sol";
        import {IMintContract} from "create/interfaces/v1/IMintContract.sol";
        import {IMint721} from "create/interfaces/v1/IMint721.sol";
        import {Mint721Configuration} from "create/interfaces/v1/Mint721Configuration.sol";
        import {IMintModuleRegistry} from "create/interfaces/v1/IMintModuleRegistry.sol";
        import {IERC4906} from "create/interfaces/v1/IERC4906.sol";
        import {Version} from "create/contracts/v1/Version.sol";
        contract Mint721 is ERC721AUpgradeable, IMintContract, IMint721, IERC4906, IERC2981, Ownable, Version {
        bytes4 private constant _updateConfigurationSelector = bytes4(keccak256("updateConfiguration(bytes)"));
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

        File 6 of 6: MintModuleRegistry
        1
        2
        3
        4
        5
        6
        7
        8
        9
        10
        11
        12
        13
        14
        15
        16
        // SPDX-License-Identifier: MIT
        pragma solidity ^0.8.21;
        import {Ownable} from "solady/auth/Ownable.sol";
        import {Version} from "create/contracts/v1/Version.sol";
        import {IMintModuleRegistry} from "create/interfaces/v1/IMintModuleRegistry.sol";
        contract MintModuleRegistry is IMintModuleRegistry, Ownable, Version {
        constructor() Version(1) {
        _initializeOwner(tx.origin);
        }
        /// @inheritdoc IMintModuleRegistry
        mapping(address => bool) public isRegistered;
        /// @inheritdoc IMintModuleRegistry
        function addModule(address module) external onlyOwner {
        if (module == address(0)) revert InvalidAddress();
        if (isRegistered[module]) revert AlreadyRegistered();
        isRegistered[module] = true;
        XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX