diff --git a/src/CentrifugeRouter.sol b/src/CentrifugeRouter.sol index b961c886..42d05456 100644 --- a/src/CentrifugeRouter.sol +++ b/src/CentrifugeRouter.sol @@ -220,6 +220,11 @@ contract CentrifugeRouter is Auth, ICentrifugeRouter { IERC7540Vault(vault).claimCancelRedeemRequest(REQUEST_ID, receiver, controller); } + /// @inheritdoc ICentrifugeRouter + function distributeInterest(address vault, address controller) external payable protected { + interestDistributor.distribute(vault, controller); + } + /// @inheritdoc ICentrifugeRouter function distributeInterest(address vault, address controller, uint256 topUpAmount) external payable protected { _pay(topUpAmount); diff --git a/src/interfaces/ICentrifugeRouter.sol b/src/interfaces/ICentrifugeRouter.sol index d32f9eb4..d8ba4196 100644 --- a/src/interfaces/ICentrifugeRouter.sol +++ b/src/interfaces/ICentrifugeRouter.sol @@ -154,6 +154,12 @@ interface ICentrifugeRouter is IRecoverable { /// @param controller Check IERC7540CancelRedeem.claimCancelRedeemRequest.controller function claimCancelRedeemRequest(address vault, address receiver, address controller) external payable; + /// @notice TODO + /// @dev This method is to be used when the pending interest is 0, since no redemption request is required then. + /// If pending is non-zero, then the overloaded distributeInterest() method with the `topUpAmount` parameter + /// should be used, to pay for the requestRedeem call to Centrifuge. + function distributeInterest(address vault, address controller) external payable; + /// @notice TODO function distributeInterest(address vault, address controller, uint256 topUpAmount) external payable;