@@ -20,12 +20,13 @@ import "@solady/src/utils/SignatureCheckerLib.sol";
2020
2121import { Initializable } from "../../../extension/Initializable.sol " ;
2222import { Ownable } from "../../../extension/Ownable.sol " ;
23+ import { ContractMetadata } from "../../../extension/ContractMetadata.sol " ;
2324
2425import "../../../eip/interface/IERC20.sol " ;
2526import "../../../eip/interface/IERC721.sol " ;
2627import "../../../eip/interface/IERC1155.sol " ;
2728
28- contract Airdrop is EIP712 , Initializable , Ownable {
29+ contract Airdrop is EIP712 , Initializable , Ownable , ContractMetadata {
2930 /*///////////////////////////////////////////////////////////////
3031 State, constants & structs
3132 //////////////////////////////////////////////////////////////*/
@@ -127,8 +128,9 @@ contract Airdrop is EIP712, Initializable, Ownable {
127128 _disableInitializers ();
128129 }
129130
130- function initialize (address _defaultAdmin ) external initializer {
131+ function initialize (address _defaultAdmin , string memory _contractURI ) external initializer {
131132 _setupOwner (_defaultAdmin);
133+ _setupContractURI (_contractURI);
132134 }
133135
134136 /*///////////////////////////////////////////////////////////////
@@ -510,6 +512,11 @@ contract Airdrop is EIP712, Initializable, Ownable {
510512 return msg .sender == owner ();
511513 }
512514
515+ /// @dev Checks whether contract metadata can be set in the given execution context.
516+ function _canSetContractURI () internal view virtual override returns (bool ) {
517+ return msg .sender == owner ();
518+ }
519+
513520 /// @dev Domain name and version for EIP-712
514521 function _domainNameAndVersion () internal pure override returns (string memory name , string memory version ) {
515522 name = "Airdrop " ;
0 commit comments