@@ -13,6 +13,7 @@ contract XanV2Forwarder {
1313 address internal immutable _PROTOCOL_ADAPTER;
1414 bytes32 internal immutable _CALLDATA_CARRIER_RESOURCE_KIND;
1515
16+ error AddressZero ();
1617 error UnauthorizedCaller (address caller );
1718 error InvalidFunctionSelector (bytes4 expected , bytes4 actual );
1819 error InvalidMintRecipient (address recipient );
@@ -22,6 +23,8 @@ contract XanV2Forwarder {
2223 /// @param protocolAdapter The address of the protocol adapter.
2324 /// @param calldataCarrierLogicRef The logic reference of the associated calldata carrier resource.
2425 constructor (address xanProxy , address protocolAdapter , bytes32 calldataCarrierLogicRef ) {
26+ if (xanProxy == address (0 ) || protocolAdapter == address (0 )) revert AddressZero ();
27+
2528 _XAN_PROXY = XanV2 (xanProxy);
2629 _PROTOCOL_ADAPTER = protocolAdapter;
2730 _CALLDATA_CARRIER_RESOURCE_KIND =
@@ -31,7 +34,10 @@ contract XanV2Forwarder {
3134 /// @notice Forwards mint calls to the XAN proxy contract pointing to the `XanV2` implementation.
3235 /// @param input The `bytes` encoded mint calldata (including the `bytes4` function selector).
3336 /// @return output The empty output of the call.
34- function forwardCall (bytes calldata input ) external returns (bytes memory output ) {
37+ function forwardCall (bytes calldata input /* solhint-disable-line comprehensive-interface*/ )
38+ external
39+ returns (bytes memory output )
40+ {
3541 if (msg .sender != _PROTOCOL_ADAPTER) {
3642 revert UnauthorizedCaller (msg .sender );
3743 }
0 commit comments