hey, i am reading aave v2 codebase and trying to understand each user flow and architecture of the protocol. But while exploring _transfer function in IncentivisedERC20 contract i got this two function calls.
``function _transfer(
address sender,
address recipient,
uint256 amount
) internal virtual {
require(sender != address(0), ‘ERC20: transfer from the zero address’);
require(recipient != address(0), ‘ERC20: transfer to the zero address’);
@> _beforeTokenTransfer(sender, recipient, amount);
uint256 oldSenderBalance = _balances[sender];
_balances[sender] = oldSenderBalance.sub(amount, 'ERC20: transfer amount exceeds balance');
uint256 oldRecipientBalance = _balances[recipient];
_balances[recipient] = _balances[recipient].add(amount);
if (address(_getIncentivesController()) != address(0)) {
uint256 currentTotalSupply = _totalSupply;
@> _getIncentivesController().handleAction(sender, currentTotalSupply, oldSenderBalance);
if (sender != recipient) {
@> _getIncentivesController().handleAction(recipient, currentTotalSupply, oldRecipientBalance);
}
}
}``
the line marked as `@>` is the function call for which i am not sure about like what they are for how they work and where actually they are implemented. Can anyone here who can help me regarding this issue?