```\nfinalise() --> \n  status == MinipoolStatus.Withdrawable  //<-- true\n  withdrawalBlock > 0  //<-- true\n  _finalise() -->\n     !finalised  //<-- true\n        _refund()\n            nodeRefundBalance = 0  //<-- reset refund balance\n              ---> extCall: nodeWithdrawalAddress\n                     ---> reenter: finalise()\n                        status == MinipoolStatus.Withdrawable  //<-- true\n                        withdrawalBlock > 0  //<-- true\n                        _finalise() -->\n                             !finalised  //<-- true\n                             nodeRefundBalance > 0  //<-- false; no refund()\n                             address(this).balance to RETH\n                             RocketTokenRETHInterface(rocketTokenRETH).depositExcessCollateral()\n                             rocketMinipoolManager.incrementNodeFinalisedMinipoolCount(nodeAddress)  //<-- 1st time\n                             eventually call rocketDAONodeTrusted.decrementMemberUnbondedValidatorCount(nodeAddress); \n                             finalised = true;\n                   <--- return from reentrant call\n        <--- return from _refund()\n     address(this).balance to RETH  //<-- NOP as balance was sent to RETH already\n     RocketTokenRETHInterface(rocketTokenRETH).depositExcessCollateral();   //<-- does not revert\n     rocketMinipoolManager.incrementNodeFinalisedMinipoolCount(nodeAddress);  //<-- no revert, increases\n     'node.minipools.finalised.count', 'minipools.finalised.count', reduces 'eth.matched.node.amount' one to\n     many times\n     eventually call rocketDAONodeTrusted.decrementMemberUnbondedValidatorCount(nodeAddress);  //<-- manipulates\n     'member.validator.unbonded.count' by +1\n     finalised = true;  //<-- is already 'true', gracefully continues\n<--- returns      \n```\n