\documentclass[a4paper,fleqn,10pt,oneside]{book}
\usepackage{Settings/IUT-Thesis}
%-----------------------------
% دستورهای مورد نیاز را در این قسمت اضافه نمایید:
\allowdisplaybreaks
%-----------------------------

\begin{document}

\pagestyle{plain}
\pagenumbering{adadi}
\setcounter{page}{2}


\begin{algorithm}
\renewcommand{\algorithmicrequire}{\textbf{function 1}}
\renewcommand{\algorithmicensure}{\textbf{end function 1}}
\onehalfspacing
\begin{latin}
\caption{Open New Payment Channel} \label{alg3}
\begin{algorithmic}[1]
\REQUIRE Make Funding \_Tx (g\_out\textsubscript{B} , f\_out\textsubscript{C} , $C'$ , t)\\
\STATE P\textsubscript{B}  Sends $K\textsubscript{\textit{pu1B}}$ , $K\textsubscript{\textit{pu2B}}$  to P\textsubscript{C}\\
\STATE P\textsubscript{C}  Sends $K\textsubscript{\textit{pu1C}}$ , $K\textsubscript{\textit{pu2C}}$  to P\textsubscript{B}\\
\STATE P\textsubscript{B}  Funds $g\_out.X_b$ to a 2 of 2 multisig address \\
\IF {$g\_out \in L$}
\STATE P\textsubscript{C}  Funds $f\_out.X_c$ to that 2 of 2 multisig address \\
\ELSE 
\STATE P\textsubscript{C}  Reject $P\textsubscript{C}'s$ request to open a payment channel\\
\EndIF

\STATE Tx\textsubscript{\textit{0,$F'$}}  \leftarrow \, Funding \_Tx (P\textsubscript{B} , P\textsubscript{C} , g\_out.X_b ,  f\_out.X_c  ,  Addr\textsubscript{multisig})\\
\STATE call function 2 \\
\STATE P\textsubscript{B}  Signs Funding \_Tx \\
\STATE P\textsubscript{C}  Signs Funding \_Tx \\
\STATE ($\gamma'$\textsubscript{\textit{B},\textit{C}} , Tx\textsubscript{$F'$,C})  \leftarrow \, open new channel (P\textsubscript{B} , P\textsubscript{C} , $C'$ , $\Sigma$)\\
\STATE P\textsubscript{B} or P\textsubscript{C}  Commit Funding \_Tx  to the Bitcoin network \\
\RETURN{$\gamma'$}

\ENSURE 
\renewcommand{\algorithmicrequire}{\textbf{function 2}}
\renewcommand{\algorithmicensure}{\textbf{end function 2}}
\REQUIRE Make Return \_Tx (f\_out\textsubscript{BC} , $X_b , X_c $, t)\\
\STATE Tx\textsubscript{\textit{0,$C'$}}  \leftarrow \, Return \_Tx (P\textsubscript{B} , P\textsubscript{C} , Tx\textsubscript{0,$F'$} , t)\\
\STATE P\textsubscript{B}  Signs Return \_Tx \\
\STATE P\textsubscript{C}  Signs Return \_Tx \\
\STATE Tx\textsubscript{\textit{$R',C'$}} \leftarrow \, Made Return \_Tx (P\textsubscript{B} , P\textsubscript{C} , Out(Tx\textsubscript{$F'$\textsubscript{\textit{B,C}}}) , balance(b , P\textsubscript{B1}) , balance(c , P\textsubscript{C1})) \\
\RETURN{Tx\textsubscript{\textit{$R',C'$}}}

\ENSURE  
\end{algorithmic}
\end{latin}
\end{algorithm}

\end{document} 
