Skip to content

Commit 269c871

Browse files
committed
Highlight new changes in RED
1 parent 79a5c91 commit 269c871

File tree

5 files changed

+88
-88
lines changed

5 files changed

+88
-88
lines changed

src/Hydra/Protocol/Figures/head-protocol-states.tex

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,8 +21,8 @@
2121
\path[->] (open) edge [bend left=20] node {$\stClose$} (closed);
2222
\path[->] (open) edge [loop above] node {$\mathsf{increment}$} (open);
2323
\path[->] (open) edge [loop below] node {$\mathsf{decrement}$} (open);
24-
\path[->] (closed) edge [bend left=20] node {$\stFanout$ (complete)} (final);
25-
\path[->] (closed) edge [loop right] node {$\stFanout$ (partial)} (closed);
24+
\path[->] (closed) edge [bend left=20] node {\textcolor{red}{$\stFanout$ (complete)}} (final);
25+
\path[->] (closed) edge [loop right] node {\textcolor{red}{$\stFanout$ (partial)}} (closed);
2626
\path[->] (closed) edge [loop above] node {$\stContest$} (closed);
2727
\path[->] (initial) edge [bend right=20] node {$\stAbort$} (final);
2828
\end{tikzpicture}

src/Hydra/Protocol/Figures/offchain-protocol.tex

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -129,9 +129,9 @@
129129
$U \gets U_{\mathsf{active}} \applytx \underline{\tx}_{\mathsf{req}}$ \;
130130
$\hats \gets s$ \;
131131
% TODO: DRY message creation
132-
$\eta \gets \accUTxO(U)$ \;
133-
$\eta_\alpha \gets \accUTxO(U_\alpha)$ \;
134-
$\eta_\omega \gets \accUTxO(\mathsf{outputs}(\tx_\omega))$ \;
132+
\textcolor{red}{$\eta \gets \accUTxO(U)$} \;
133+
\textcolor{red}{$\eta_\alpha \gets \accUTxO(U_\alpha)$} \;
134+
\textcolor{red}{$\eta_\omega \gets \accUTxO(\mathsf{outputs}(\tx_\omega))$} \;
135135
$\msSig_i \gets \msSign(\hydraSigningKey, (\cid || v || \hats || \eta || \eta_\alpha || \eta_\omega))$ \;
136136
% TODO: use a seen snapshot to keep track of things easier
137137
$\hatSigma \gets \emptyset$ \;
@@ -165,11 +165,11 @@
165165
$\msCSig \gets \msComb(\hydraKeys^{setup}, \hatSigma)$ \;
166166

167167
% TODO: DRY message creation
168-
$\eta \gets \accUTxO(\hatmU)$ \;
168+
\textcolor{red}{$\eta \gets \accUTxO(\hatmU)$} \;
169169

170-
$\eta_\alpha \gets \accUTxO(U_\alpha)$ \;
170+
\textcolor{red}{$\eta_\alpha \gets \accUTxO(U_\alpha)$} \;
171171
$U_\omega \gets \mathsf{outputs}(\tx_\omega)$ \;
172-
$\eta_\omega \gets \accUTxO(U_\omega)$ \;
172+
\textcolor{red}{$\eta_\omega \gets \accUTxO(U_\omega)$} \;
173173
% NOTE: Implementation differs here and
174174
% below as it stores seen version in seen
175175
% snapshot and uses that to verify
@@ -261,9 +261,9 @@
261261
\begin{walgo}{0.6}
262262
% CLOSE from client
263263
\On{$(\hpClose)$ from client}{
264-
$\eta \gets \accUTxO(\bar{\mc S}.U)$ \;
265-
$\eta_\alpha \gets \accUTxO(\bar{\mc S}.U_\alpha$) \;
266-
$\eta_\omega \gets \accUTxO(\bar{\mc S}.U_\omega)$ \;
264+
\textcolor{red}{$\eta \gets \accUTxO(\bar{\mc S}.U)$} \;
265+
\textcolor{red}{$\eta_\alpha \gets \accUTxO(\bar{\mc S}.U_\alpha$)} \;
266+
\textcolor{red}{$\eta_\omega \gets \accUTxO(\bar{\mc S}.U_\omega)$} \;
267267
$\xi \gets \bar{\mc S}.\sigma$ \;
268268
% XXX: \hatv needed to distinguish between CloseType redeemer, explain how exactly?
269269
$\PostTx{}~(\mtxClose, \hatv, \bar{\mc S}.v, \bar{\mc S}.s, \eta , \eta_\alpha, \eta_\omega, \xi)$ \;
@@ -275,9 +275,9 @@
275275
% CLOSE TX
276276
\On{$(\gcChainClose, \eta) \lor (\gcChainContest, s_{c}, \eta)$ from chain}{
277277
\If{$\bar{\mc S}.s > s_{c}$}{
278-
$\eta \gets \accUTxO(\bar{\mc S}.U)$ \;
279-
$\eta_\alpha \gets \accUTxO(\bar{\mc S}.U_\alpha$) \;
280-
$\eta_\omega \gets \accUTxO({\bar{\mc S}.U_\omega})$ \;
278+
\textcolor{red}{$\eta \gets \accUTxO(\bar{\mc S}.U)$} \;
279+
\textcolor{red}{$\eta_\alpha \gets \accUTxO(\bar{\mc S}.U_\alpha$)} \;
280+
\textcolor{red}{$\eta_\omega \gets \accUTxO({\bar{\mc S}.U_\omega})$} \;
281281
$\xi \gets \bar{\mc S}.\sigma$ \;
282282
% XXX: \hatv needed to distinguish between CloseType redeemer, explain how exactly?
283283
$\PostTx{}~(\mtxContest, \hatv, \bar{\mc S}.v, \bar{\mc S}.s, \eta , \eta_\alpha, \eta_\omega , \xi)$ \;

src/Hydra/Protocol/OffChain.tex

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,11 +9,11 @@ \section{Off-Chain Protocol}\label{sec:offchain}
99
on- and off-chain semantics. Participants of the protocol are also called Hydra
1010
head members, parties or simply protocol actors.
1111

12-
\noindent The off-chain protocol coordinates BLS accumulator operations (see Section~\ref{sec:bls-accumulators})
12+
\noindent \textcolor{red}{The off-chain protocol coordinates BLS accumulator operations (see Section~\ref{sec:bls-accumulators})
1313
for partial fanout support. When UTxO sets are too large for single transactions (see Section~\ref{sec:bls-accumulators}
1414
for limits details), the off-chain protocol automatically falls back to partial distribution using
1515
exclusion proofs, ensuring all UTxOs can be distributed across multiple transactions
16-
while maintaining cryptographic integrity.
16+
while maintaining cryptographic integrity.}
1717

1818
The protocol is specified as a reactive system that processes three kinds of inputs:
1919

@@ -31,7 +31,7 @@ \section{Off-Chain Protocol}\label{sec:offchain}
3131
\item $\mathtt{decrementTx}$: removes UTxO from an open head
3232
\item $\mathtt{closeTx}$: closes a head
3333
\item $\mathtt{contestTx}$: contests a closed head
34-
\item $\mathtt{fanoutTx}$: distributes UTxOs from a closed head (partial or complete)
34+
\item \textcolor{red}{$\mathtt{fanoutTx}$: distributes UTxOs from a closed head (partial or complete)}
3535
\end{itemize}
3636
Also, a special input when time advanced on chain may be used:
3737
\begin{itemize}
@@ -313,15 +313,15 @@ \subsubsection{Processing transactions off-chain}
313313
is incremented on each \mtxIncrement{} transaction as described in
314314
Section~\ref{sec:increment-tx}
315315

316-
\dparagraph{$\mathtt{fanoutTx}$.}\quad Upon observing a \mtxFanout{}
316+
\textcolor{red}{\dparagraph{$\mathtt{fanoutTx}$.}\quad Upon observing a \mtxFanout{}
317317
transaction, the distributed UTxOs are removed from the local state tracking.
318318
If this was a partial fanout (not all UTxOs were distributed), the head remains
319319
in $\stClosed$ state with updated accumulator containing the remaining UTxOs.
320320
If this was a complete fanout (all UTxOs distributed), the head transitions to
321321
$\stFinal$ state. The off-chain protocol must coordinate partial fanout to
322322
ensure proper selection of UTxO subsets and generation of exclusion proofs.
323323
\todo{Add detailed off-chain protocol for partial fanout coordination, including
324-
selection strategy for UTxO subsets.}
324+
selection strategy for UTxO subsets.}}
325325

326326
\subsubsection{Closing the head}
327327

@@ -405,7 +405,7 @@ \subsection{Rollbacks and protocol changes}\label{sec:rollbacks}
405405
\input{Hydra/Protocol/Figures/offchain-protocol}
406406

407407
\todo{In figure: $\combine$ on UTxO slightly different than on commits}
408-
\todo{Update off-chain protocol to support partial fanout coordination}
408+
\textcolor{red}{\todo{Update off-chain protocol to support partial fanout coordination}}
409409

410410
%%% Local Variables:
411411
%%% mode: latex

src/Hydra/Protocol/OnChain.tex

Lines changed: 39 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
11
\clearpage
22
\section{On-chain Protocol}\label{sec:on-chain}
33
\todo{Update figures}
4-
\todo{Update fanoutTx.svg figure to show partial fanout concept - either complete distribution or partial distribution with remaining UTxOs}
4+
\textcolor{red}{\todo{Update fanoutTx.svg figure to show partial fanout concept - either complete distribution or partial distribution with remaining UTxOs}}
55

66
\todo{Open problem: ensure abort is always possible. e.g. by individual aborts or undoing commits}
77
\todo{Open problem: ensure fanout is always possible, e.g. by limiting complexity of $U_0$}
8-
\todo{Update UTxO set digest mechanism to support partial fanout when transaction size limits are exceeded}
9-
\todo{Update combine function: change from simple hash to commitment scheme that supports partial distribution proofs}
10-
\todo{Implement fallback mechanism: try full fanout first, fall back to partial fanout if transaction size limit exceeded}
11-
\todo{Consider transaction chaining for seamless partial fanout execution}
8+
\textcolor{red}{\todo{Update UTxO set digest mechanism to support partial fanout when transaction size limits are exceeded}}
9+
\textcolor{red}{\todo{Update combine function: change from simple hash to commitment scheme that supports partial distribution proofs}}
10+
\textcolor{red}{\todo{Implement fallback mechanism: try full fanout first, fall back to partial fanout if transaction size limit exceeded}}
11+
\textcolor{red}{\todo{Consider transaction chaining for seamless partial fanout execution}}
1212

1313
\noindent The following sections describe the the \emph{on-chain} protocol
1414
controlling the life-cycle of a Hydra head, which can be intuitively described
@@ -17,12 +17,12 @@ \section{On-chain Protocol}\label{sec:on-chain}
1717
protocol transaction
1818
on-chain: \mtxInit{}~\ref{sec:init-tx}, \mtxCom{}~\ref{sec:commit-tx}, \mtxAbort{}~\ref{sec:abort-tx}, \mtxCollect{}~\ref{sec:collect-tx}, \mtxIncrement{}~\ref{sec:increment-tx}, \mtxDecrement{}~\ref{sec:decrement-tx}, \mtxClose{}~\ref{sec:close-tx}, \mtxContest{}~\ref{sec:contest-tx}, and \mtxFanout{}~\ref{sec:fanout-tx}. \\
1919

20-
\noindent The protocol uses BLS accumulators (see Section~\ref{sec:bls-accumulators}) to enable
20+
\noindent \textcolor{red}{The protocol uses BLS accumulators (see Section~\ref{sec:bls-accumulators}) to enable
2121
partial fanout when UTxO sets exceed transaction size limits (see Section~\ref{sec:bls-accumulators}
2222
for limits details). The \mtxCollect{} transaction
2323
creates BLS accumulator commitments to UTxO sets, and \mtxFanout{} transactions use
2424
exclusion proofs to distribute subsets of UTxOs while maintaining cryptographic guarantees
25-
about the remaining UTxOs. \\
25+
about the remaining UTxOs.} \\
2626

2727
\noindent Besides the main state transitions of the head protocol, there is
2828
the related ``deposit protocol'' with two transactions in support of
@@ -247,7 +247,7 @@ \subsection{Abort Transaction}\label{sec:abort-tx}
247247
\[
248248
\hash(\bigoplus_{j=1}^{m} \bytes(o_{j})) = \combine([C_{i} ~ | ~ \forall [1 \dots |\hydraKeys|], C_{i} \neq \bot])
249249
\]
250-
\todo{Update abort transaction to support partial distribution when all commits together are too big for a single transaction}
250+
\textcolor{red}{\todo{Update abort transaction to support partial distribution when all commits together are too big for a single transaction}}
251251

252252
\item Transaction is signed by a participant $\exists \{\cid \mapsto \keyHash_{i} \mapsto -1\} \in \txMint \Rightarrow \keyHash_{i} \in \txKeys$.
253253
\item All tokens are burnt
@@ -292,13 +292,13 @@ \subsection{CollectCom Transaction}\label{sec:collect-tx}
292292
\]
293293
where $n = |\hydraKeys|$ and
294294
\[
295-
\combine(\underline{C}) = \accUTxO(\mathsf{concat}({\sortOn(1, \mathsf{concat}(\underline{C}))}^{\downarrow2}))
295+
\combine(\underline{C}) = \textcolor{red}{\accUTxO}(\mathsf{concat}({\sortOn(1, \mathsf{concat}(\underline{C}))}^{\downarrow2}))
296296
\]
297-
That is, given a list of committed UTxO $\underline{C}$, where each element is
297+
\textcolor{red}{That is, given a list of committed UTxO $\underline{C}$, where each element is
298298
a list of output references and the serialised representation of what was
299299
committed, $\combine$ first concatenates all commits together, sorts this list
300300
by the output references, and creates a commitment to the UTxO set that supports
301-
partial fanout\footnote{Sorting is required to ensure a canonical representation which
301+
partial fanout}\footnote{Sorting is required to ensure a canonical representation which
302302
can also be reproduced from the UTxO set later in the fanout.}.
303303

304304
\item All committed value captured and no value is extracted
@@ -406,9 +406,9 @@ \subsection{Recover Transaction}\label{sec:recover-tx}
406406
comparing hashes of serialised representations of the $m$ recovering outputs
407407
$o_{1} \dots o_{m}$ with the canonically combined committed UTxOs in $C$:
408408
\[
409-
\hash(\bigoplus_{j=1}^{m} \bytes(o_{j})) = \combine(C)
409+
\hash(\bigoplus_{j=1}^{m} \bytes(o_{j})) = \textcolor{red}{\combine(C)}
410410
\]
411-
\todo{Consider partial recovery for deposit transactions when fractional deposits allow multiple UTxO and some are too small to recover individually}
411+
\textcolor{red}{\todo{Consider partial recovery for deposit transactions when fractional deposits allow multiple UTxO and some are too small to recover individually}}
412412
\item Transaction is posted after the deadline
413413
\[
414414
\txValidityMin > t_{\mathsf{recover}}
@@ -479,9 +479,9 @@ \subsection{Increment Transaction}\label{sec:increment-tx}
479479
where $\eta_\alpha$ is the digest of all deposited UTxO in $C$ sorted by their output
480480
references
481481
\[
482-
\eta_\alpha = \combine(C)
482+
\textcolor{red}{\eta_\alpha = \combine(C)}
483483
\]
484-
\todo{Update increment transaction to support partial distribution if needed}
484+
\textcolor{red}{\todo{Update increment transaction to support partial distribution if needed}}
485485
\item The value in the head output is increased accordingly
486486
\[
487487
\valHead \cup \valDeposit = \valHead'
@@ -534,9 +534,9 @@ \subsection{Decrement Transaction}\label{sec:decrement-tx}
534534
\]
535535
where $\eta_\omega$ is the digest of all removed UTxO
536536
\[
537-
\eta_\omega = \accUTxO(\bigoplus_{j=2}^{m+1} \bytes(o_{j}))
537+
\textcolor{red}{\eta_\omega = \accUTxO(\bigoplus_{j=2}^{m+1} \bytes(o_{j}))}
538538
\]
539-
\todo{Consider partial distribution for decrement transactions when the withdrawal set is too big for a single transaction}
539+
\textcolor{red}{\todo{Consider partial distribution for decrement transactions when the withdrawal set is too big for a single transaction}}
540540
\item The value in the head output is decreased accordingly
541541
\[
542542
\valHead' \cup (\bigcup_{j=2}^{m+1} \val_{j}) = \valHead
@@ -828,59 +828,59 @@ \subsection{Contest Transaction}\label{sec:contest-tx}
828828

829829
\subsection{Fan-Out Transaction}\label{sec:fanout-tx}
830830

831-
Once the contestation phase is over, a head may be finalized by posting one or more
831+
\textcolor{red}{Once the contestation phase is over, a head may be finalized by posting one or more
832832
\mtxFanout{} transactions (see Figure~\ref{fig:fanoutTx}), which
833833
distribute UTxOs from the head according to the latest state. The protocol first attempts
834834
a complete fanout of all UTxOs. If this fails due to transaction size limits (see Section~\ref{sec:bls-accumulators}
835835
for limits details), it automatically falls back to partial fanout, distributing a subset of UTxOs and proving the remaining UTxOs
836-
are still valid. A fanout transaction consists of
836+
are still valid. A fanout transaction consists of}
837837
\begin{itemize}
838-
\item one input spending from $\nuHead$ holding the $\st$, and
839-
\item outputs $o_{1} \dots o_{m+n+n'}$ to distribute a subset of UTxOs.
838+
\item \textcolor{red}{one input spending from $\nuHead$ holding the $\st$, and}
839+
\item \textcolor{red}{outputs $o_{1} \dots o_{m+n+n'}$ to distribute a subset of UTxOs.}
840840
\end{itemize}
841841

842-
Note that \mtxFanout{} may represent either a final transition of the state machine
842+
\textcolor{red}{Note that \mtxFanout{} may represent either a final transition of the state machine
843843
(when all UTxOs are distributed) or an intermediate transition (when only a subset
844844
is distributed). In the latter case, the state machine remains in $\stClosed$ state
845-
with updated accumulator containing the remaining UTxOs.
845+
with updated accumulator containing the remaining UTxOs.}
846846

847847
\begin{figure}
848848
\centering
849849
\includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/fanoutTx.svg}
850850
\caption{\mtxFanout{} transaction spending the $\stClosed$ head output and
851-
distributing funds with outputs $o_{1} \dots o_{m+n+n'}$. The transaction can
851+
distributing funds with outputs $o_{1} \dots o_{m+n+n'}$. \textcolor{red}{The transaction can
852852
distribute either all UTxOs (complete fanout) or a subset (partial fanout) with
853-
proofs that remaining UTxOs are still valid.}\label{fig:fanoutTx}
853+
proofs that remaining UTxOs are still valid.}}\label{fig:fanoutTx}
854854
\end{figure}
855855

856856
\noindent The state-machine validator $\nuHead$ is spent with
857-
$\redeemerHead = (\mathsf{fanout}, m, n, n', \pi_{\eta}, \pi_{\alpha\Delta}, \pi_{\omega\Delta}, \eta'_{remaining})$, where:
857+
\textcolor{red}{$\redeemerHead = (\mathsf{fanout}, m, n, n', \pi_{\eta}, \pi_{\alpha\Delta}, \pi_{\omega\Delta}, \eta'_{remaining})$}, where:
858858
\begin{itemize}
859859
\item $m$, $n$ and $n'$ are outputs to distribute from the $\stClosed$ state
860-
\item $\pi_{\eta}$, $\pi_{\alpha\Delta}$, $\pi_{\omega\Delta}$ are partial distribution proofs for the distributed UTxO sets
861-
\item $\eta'_{remaining}$ is the updated commitment containing remaining UTxOs
860+
\item \textcolor{red}{$\pi_{\eta}$, $\pi_{\alpha\Delta}$, $\pi_{\omega\Delta}$ are partial distribution proofs for the distributed UTxO sets}
861+
\item \textcolor{red}{$\eta'_{remaining}$ is the updated commitment containing remaining UTxOs}
862862
\end{itemize}
863863
The validator checks:
864864
\begin{menumerate}
865-
\item State transition: If all UTxOs are distributed, transition to $\stFinal$; otherwise remain in $\stClosed$ with updated accumulator:
865+
\item \textcolor{red}{State transition: If all UTxOs are distributed, transition to $\stFinal$; otherwise remain in $\stClosed$ with updated accumulator:}
866866
\[
867-
(\stClosed,\cid,\hydraKeys,\Tcontest,v, s,\eta,\eta_\alpha\Delta,\eta_\omega\Delta,\contesters,\tfinal) \xrightarrow[m,n,n',\pi_{\eta},\pi_{\alpha\Delta},\pi_{\omega\Delta}]{\stFanout} \stFinal \text{ or } \stClosed'
867+
\textcolor{red}{(\stClosed,\cid,\hydraKeys,\Tcontest,v, s,\eta,\eta_\alpha\Delta,\eta_\omega\Delta,\contesters,\tfinal) \xrightarrow[m,n,n',\pi_{\eta},\pi_{\alpha\Delta},\pi_{\omega\Delta}]{\stFanout} \stFinal \text{ or } \stClosed'}
868868
\]
869-
\item The first $m$ outputs are distributing a subset of funds according to $\eta$. The exclusion proof $\pi_{\eta}$ proves that the distributed outputs $S_{\eta} = \{o_1, \ldots, o_m\}$ can be removed from accumulator $\eta$:
869+
\item \textcolor{red}{The first $m$ outputs are distributing a subset of funds according to $\eta$. The exclusion proof $\pi_{\eta}$ proves that the distributed outputs $S_{\eta} = \{o_1, \ldots, o_m\}$ can be removed from accumulator $\eta$:}
870870
\[
871-
\accVerifyPartial(\eta, S_{\eta}, \pi_{\eta}) = \true
871+
\textcolor{red}{\accVerifyPartial(\eta, S_{\eta}, \pi_{\eta}) = \true}
872872
\]
873-
\item The following $n$ outputs are distributing a subset of funds according to
874-
$\eta_\alpha\Delta$. The exclusion proof $\pi_{\alpha\Delta}$ proves that the distributed outputs $S_{\alpha\Delta} = \{o_{m+1}, \ldots, o_{m+n}\}$ can be removed from accumulator $\eta_{\alpha\Delta}$:
873+
\item \textcolor{red}{The following $n$ outputs are distributing a subset of funds according to
874+
$\eta_\alpha\Delta$. The exclusion proof $\pi_{\alpha\Delta}$ proves that the distributed outputs $S_{\alpha\Delta} = \{o_{m+1}, \ldots, o_{m+n}\}$ can be removed from accumulator $\eta_{\alpha\Delta}$:}
875875
\[
876-
\accVerifyPartial(\eta_{\alpha\Delta}, S_{\alpha\Delta}, \pi_{\alpha\Delta}) = \true
876+
\textcolor{red}{\accVerifyPartial(\eta_{\alpha\Delta}, S_{\alpha\Delta}, \pi_{\alpha\Delta}) = \true}
877877
\]
878-
\item The next $n'$ outputs are distributing a subset of funds according to
879-
$\eta_\omega\Delta$. The exclusion proof $\pi_{\omega\Delta}$ proves that the distributed outputs $S_{\omega\Delta} = \{o_{m+n+1}, \ldots, o_{m+n+n'}\}$ can be removed from accumulator $\eta_{\omega\Delta}$:
878+
\item \textcolor{red}{The next $n'$ outputs are distributing a subset of funds according to
879+
$\eta_\omega\Delta$. The exclusion proof $\pi_{\omega\Delta}$ proves that the distributed outputs $S_{\omega\Delta} = \{o_{m+n+1}, \ldots, o_{m+n+n'}\}$ can be removed from accumulator $\eta_{\omega\Delta}$:}
880880
\[
881-
\accVerifyPartial(\eta_{\omega\Delta}, S_{\omega\Delta}, \pi_{\omega\Delta}) = \true
881+
\textcolor{red}{\accVerifyPartial(\eta_{\omega\Delta}, S_{\omega\Delta}, \pi_{\omega\Delta}) = \true}
882882
\]
883-
\item If not all UTxOs are distributed, the remaining accumulator $\eta'_{remaining}$ is correctly computed by removing the distributed UTxOs from the original accumulators.
883+
\item \textcolor{red}{If not all UTxOs are distributed, the remaining accumulator $\eta'_{remaining}$ is correctly computed by removing the distributed UTxOs from the original accumulators.}
884884
\item Transaction is posted after contestation deadline $\txValidityMin > \tfinal$.
885885
\item All tokens are burnt
886886
$|\{\cid \mapsto \cdot \mapsto -1\} \in \txMint| = n + 1$.

0 commit comments

Comments
 (0)