@@ -20,12 +20,13 @@ import "@solady/src/utils/SignatureCheckerLib.sol";
20
20
21
21
import { Initializable } from "../../../extension/Initializable.sol " ;
22
22
import { Ownable } from "../../../extension/Ownable.sol " ;
23
+ import { ContractMetadata } from "../../../extension/ContractMetadata.sol " ;
23
24
24
25
import "../../../eip/interface/IERC20.sol " ;
25
26
import "../../../eip/interface/IERC721.sol " ;
26
27
import "../../../eip/interface/IERC1155.sol " ;
27
28
28
- contract Airdrop is EIP712 , Initializable , Ownable {
29
+ contract Airdrop is EIP712 , Initializable , Ownable , ContractMetadata {
29
30
/*///////////////////////////////////////////////////////////////
30
31
State, constants & structs
31
32
//////////////////////////////////////////////////////////////*/
@@ -127,8 +128,9 @@ contract Airdrop is EIP712, Initializable, Ownable {
127
128
_disableInitializers ();
128
129
}
129
130
130
- function initialize (address _defaultAdmin ) external initializer {
131
+ function initialize (address _defaultAdmin , string memory _contractURI ) external initializer {
131
132
_setupOwner (_defaultAdmin);
133
+ _setupContractURI (_contractURI);
132
134
}
133
135
134
136
/*///////////////////////////////////////////////////////////////
@@ -510,6 +512,11 @@ contract Airdrop is EIP712, Initializable, Ownable {
510
512
return msg .sender == owner ();
511
513
}
512
514
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
+
513
520
/// @dev Domain name and version for EIP-712
514
521
function _domainNameAndVersion () internal pure override returns (string memory name , string memory version ) {
515
522
name = "Airdrop " ;
0 commit comments