@@ -208,12 +208,36 @@ contract ClaimableERC721 is ModularExtension, EIP712, BeforeMintCallbackERC721,
208208
209209 /// @dev Called by a Core into an Extension during the installation of the Extension.
210210 function onInstall (bytes calldata data ) external {
211- _claimableStorage ().saleConfig = SaleConfig (msg .sender );
211+ address primarySaleRecipient = abi.decode (data, (address ));
212+ _claimableStorage ().saleConfig = SaleConfig (primarySaleRecipient);
212213 }
213214
214215 /// @dev Called by a Core into an Extension during the uninstallation of the Extension.
215216 function onUninstall (bytes calldata data ) external {}
216217
218+ /*//////////////////////////////////////////////////////////////
219+ Encode install / uninstall data
220+ //////////////////////////////////////////////////////////////*/
221+
222+ /// @dev Returns bytes encoded install params, to be sent to `onInstall` function
223+ function encodeBytesOnInstall (address primarySaleRecipient ) external pure returns (bytes memory ) {
224+ return abi.encode (primarySaleRecipient);
225+ }
226+
227+ /// @dev Returns bytes encoded uninstall params, to be sent to `onUninstall` function
228+ function encodeBytesOnUninstall () external pure returns (bytes memory ) {
229+ return "" ;
230+ }
231+
232+ /*//////////////////////////////////////////////////////////////
233+ Encode mint params
234+ //////////////////////////////////////////////////////////////*/
235+
236+ /// @dev Returns bytes encoded mint params, to be used in `beforeMint` fallback function
237+ function encodeBytesBeforeMintERC721 (ClaimParamsERC721 memory params ) external pure returns (bytes memory ) {
238+ return abi.encode (params);
239+ }
240+
217241 /*//////////////////////////////////////////////////////////////
218242 FALLBACK FUNCTIONS
219243 //////////////////////////////////////////////////////////////*/
0 commit comments