\section{ActionPrepareDistributedCommitedTransfer} The clients will reply to a request with an acknowlegment if one of two cases occur. In the first case the Supervisor (bank) will send FUCoins to a user. Otherwise the client would need to know the sender, who also needs to have sufficient funds. \\ \begin{lstlisting} protected void onAction(ActorRef sender, ActorRef self, UntypedActorContext context, Wallet wallet) { // sender is supervisor (bank) and always has funds boolean granted = sender.compareTo(source) == 0 // sender is unknown, might be valid ||(wallet.amounts.containsKey(source) // sender have enough money &&wallet.amounts.getOrDefault(source,0)>=amount); sender.tell(new ActionPrepareDistributedCommitedTransferAnswer (source, target, amount, timestamp, granted, id), self); } \end{lstlisting}