diff --git a/Shakefile.hs b/Shakefile.hs
index 430c9c4..d5353a0 100644
--- a/Shakefile.hs
+++ b/Shakefile.hs
@@ -13,7 +13,7 @@ main = shakeArgs shakeOptions{shakeFiles="_build"} $ do
removeFilesAfter "_build" ["//*"]
"_build/hydra-spec" <.> "pdf" %> \out -> do
- assets <- getDirectoryFiles "src" ["//*.sty", "Hydra/Protocol/Figures/*.pdf", "//*.bib", "//*.ttf"]
+ assets <- getDirectoryFiles "src" ["//*.sty", "Hydra/Protocol/Figures/*.svg", "//*.bib", "//*.ttf"]
need ["_build/latex" > c | c <- assets]
srcs <- getDirectoryFiles "src" ["//*.lagda", "//*.tex"]
@@ -23,7 +23,7 @@ main = shakeArgs shakeOptions{shakeFiles="_build"} $ do
cmd_ "cp _build/latex/Main.pdf _build/hydra-spec.pdf"
-- Copy assets
- forM ["sty", "pdf", "bib", "ttf"] $ \ext ->
+ forM ["sty", "svg", "bib", "ttf"] $ \ext ->
("_build/latex//*." <> ext) %> \out -> do
let src = "src" > dropDirectory1 (dropDirectory1 out)
copyFile' src out
diff --git a/flake.nix b/flake.nix
index 254094c..e587259 100644
--- a/flake.nix
+++ b/flake.nix
@@ -40,6 +40,7 @@
nativeBuildInputs = with pkgs; [
(agdaPackages.withPackages agdaLibraries)
(haskellPackages.ghcWithPackages (p: [ p.shake ]))
+ inkscape
texlive.combined.scheme-full
];
meta = { };
diff --git a/src/Hydra/Protocol/Figures/abortTx.pdf b/src/Hydra/Protocol/Figures/abortTx.pdf
deleted file mode 100644
index 3846492..0000000
Binary files a/src/Hydra/Protocol/Figures/abortTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/abortTx.svg b/src/Hydra/Protocol/Figures/abortTx.svg
new file mode 100644
index 0000000..2863b1b
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/abortTx.svg
@@ -0,0 +1,731 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/closeTx.pdf b/src/Hydra/Protocol/Figures/closeTx.pdf
deleted file mode 100644
index fc619aa..0000000
Binary files a/src/Hydra/Protocol/Figures/closeTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/closeTx.svg b/src/Hydra/Protocol/Figures/closeTx.svg
new file mode 100644
index 0000000..2b2308b
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/closeTx.svg
@@ -0,0 +1,243 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/collectComTx.pdf b/src/Hydra/Protocol/Figures/collectComTx.pdf
deleted file mode 100644
index 87b7112..0000000
Binary files a/src/Hydra/Protocol/Figures/collectComTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/collectComTx.svg b/src/Hydra/Protocol/Figures/collectComTx.svg
new file mode 100644
index 0000000..637b705
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/collectComTx.svg
@@ -0,0 +1,793 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/commitTx.pdf b/src/Hydra/Protocol/Figures/commitTx.pdf
deleted file mode 100644
index cff578b..0000000
Binary files a/src/Hydra/Protocol/Figures/commitTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/commitTx.svg b/src/Hydra/Protocol/Figures/commitTx.svg
new file mode 100644
index 0000000..f694615
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/commitTx.svg
@@ -0,0 +1,600 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/contestTx.pdf b/src/Hydra/Protocol/Figures/contestTx.pdf
deleted file mode 100644
index 6de0c17..0000000
Binary files a/src/Hydra/Protocol/Figures/contestTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/contestTx.svg b/src/Hydra/Protocol/Figures/contestTx.svg
new file mode 100644
index 0000000..738a46a
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/contestTx.svg
@@ -0,0 +1,258 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/decrementTx.pdf b/src/Hydra/Protocol/Figures/decrementTx.pdf
deleted file mode 100644
index d1e6f29..0000000
Binary files a/src/Hydra/Protocol/Figures/decrementTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/decrementTx.svg b/src/Hydra/Protocol/Figures/decrementTx.svg
new file mode 100644
index 0000000..0536d2c
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/decrementTx.svg
@@ -0,0 +1,451 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/deposit-tx.pdf b/src/Hydra/Protocol/Figures/deposit-tx.pdf
deleted file mode 100644
index 103544c..0000000
Binary files a/src/Hydra/Protocol/Figures/deposit-tx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/depositTx.svg b/src/Hydra/Protocol/Figures/depositTx.svg
new file mode 100644
index 0000000..a69ac56
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/depositTx.svg
@@ -0,0 +1,343 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/fanoutTx.pdf b/src/Hydra/Protocol/Figures/fanoutTx.pdf
deleted file mode 100644
index 3722fe0..0000000
Binary files a/src/Hydra/Protocol/Figures/fanoutTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/fanoutTx.svg b/src/Hydra/Protocol/Figures/fanoutTx.svg
new file mode 100644
index 0000000..0fdbf3a
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/fanoutTx.svg
@@ -0,0 +1,193 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/incrementTx.pdf b/src/Hydra/Protocol/Figures/incrementTx.pdf
deleted file mode 100644
index 47e1b12..0000000
Binary files a/src/Hydra/Protocol/Figures/incrementTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/incrementTx.svg b/src/Hydra/Protocol/Figures/incrementTx.svg
new file mode 100644
index 0000000..a8cfa38
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/incrementTx.svg
@@ -0,0 +1,839 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/initTx.pdf b/src/Hydra/Protocol/Figures/initTx.pdf
deleted file mode 100644
index a04f516..0000000
Binary files a/src/Hydra/Protocol/Figures/initTx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/initTx.svg b/src/Hydra/Protocol/Figures/initTx.svg
new file mode 100644
index 0000000..b07a661
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/initTx.svg
@@ -0,0 +1,645 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/recover-tx.pdf b/src/Hydra/Protocol/Figures/recover-tx.pdf
deleted file mode 100644
index b226844..0000000
Binary files a/src/Hydra/Protocol/Figures/recover-tx.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/recoverTx.svg b/src/Hydra/Protocol/Figures/recoverTx.svg
new file mode 100644
index 0000000..a995ddc
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/recoverTx.svg
@@ -0,0 +1,281 @@
+
+
diff --git a/src/Hydra/Protocol/Figures/utxo-graph.pdf b/src/Hydra/Protocol/Figures/utxo-graph.pdf
deleted file mode 100644
index dafea2f..0000000
Binary files a/src/Hydra/Protocol/Figures/utxo-graph.pdf and /dev/null differ
diff --git a/src/Hydra/Protocol/Figures/utxo-graph.svg b/src/Hydra/Protocol/Figures/utxo-graph.svg
new file mode 100644
index 0000000..10d0c6e
--- /dev/null
+++ b/src/Hydra/Protocol/Figures/utxo-graph.svg
@@ -0,0 +1,523 @@
+
+
diff --git a/src/Hydra/Protocol/OnChain.tex b/src/Hydra/Protocol/OnChain.tex
index 423741a..92aa15c 100644
--- a/src/Hydra/Protocol/OnChain.tex
+++ b/src/Hydra/Protocol/OnChain.tex
@@ -56,7 +56,7 @@ \subsection{Init transaction}\label{sec:init-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/initTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/initTx.svg}
\caption{\mtxInit{} transaction spending a seed UTxO, and producing the head
output in state $\stInitial$ and initial outputs for each participant.}\label{fig:initTx}
\end{figure}
@@ -177,7 +177,7 @@ \subsection{Commit Transaction}\label{sec:commit-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/commitTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/commitTx.svg}
\caption{\mtxCom{} transaction spending an initial output and a single
committed output, and producing a commit output.}\label{fig:commitTx}
\end{figure}
@@ -243,7 +243,7 @@ \subsection{Abort Transaction}\label{sec:abort-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/abortTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/abortTx.svg}
\caption{\mtxAbort{} transaction spending the $\stInitial$ state head
output and collecting all initial and commit outputs, which get reimbursed
by outputs $o_{1} \dots o_{m}$. Note that each $\pt$ may be in either, an
@@ -320,7 +320,7 @@ \subsection{CollectCom Transaction}\label{sec:collect-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/collectComTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/collectComTx.svg}
\caption{\mtxCCom{} transaction spending the head output in $\stInitial$
state and collecting from multiple commit outputs into a single
$\stOpen$ head output.}\label{fig:collectComTx}
@@ -368,7 +368,7 @@ \subsection{Deposit Transaction}\label{sec:deposit-tx}
\]
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/deposit-tx}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/depositTx.svg}
\caption{\mtxDeposit{} transaction spending multiple UTxO into a deposit
output.}\label{fig:depositTx}
\end{figure}
@@ -403,7 +403,7 @@ \subsection{Recover Transaction}\label{sec:recover-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/recover-tx}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/recoverTx.svg}
\caption{\mtxRecover{} transaction restoring UTxO of a deposit
output.}\label{fig:recoverTx}
\end{figure}
@@ -480,7 +480,7 @@ \subsection{Increment Transaction}\label{sec:increment-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/incrementTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/incrementTx.svg}
\caption{\mtxIncrement{} transaction spending an open head output,
producing a new head output which includes the new UTxO.}\label{fig:incrementTx}
\end{figure}
@@ -533,7 +533,7 @@ \subsection{Decrement Transaction}\label{sec:decrement-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/decrementTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/decrementTx.svg}
\caption{\mtxDecrement{} transaction spending an open head output,
producing a new head output and multiple decommitted outputs.}\label{fig:decrementTx}
\end{figure}
@@ -550,7 +550,7 @@ \subsection{Close Transaction}\label{sec:close-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/closeTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/closeTx.svg}
\caption{\mtxClose{} transaction spending the $\stOpen$ head output and producing a $\stClosed$ head output.}\label{fig:closeTx}
\end{figure}
@@ -686,7 +686,7 @@ \subsection{Contest Transaction}\label{sec:contest-tx}
\end{itemize}
\begin{figure}
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/contestTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/contestTx.svg}
\caption{\mtxContest{} transaction spending the $\stClosed$ head output and
producing a different $\stClosed$ head output.}\label{fig:contestTx}
\end{figure}
@@ -825,7 +825,7 @@ \subsection{Fan-Out Transaction}\label{sec:fanout-tx}
\begin{figure}
\centering
- \includegraphics[width=0.8\textwidth]{Hydra/Protocol/Figures/fanoutTx.pdf}
+ \includesvg[width=0.8\textwidth]{Hydra/Protocol/Figures/fanoutTx.svg}
\caption{\mtxFanout{} transaction spending the $\stClosed$ head output and
distributing funds with outputs $o_{1} \dots o_{m+n+n'}$.}\label{fig:fanoutTx}
\end{figure}
diff --git a/src/Hydra/Protocol/Preliminaries.tex b/src/Hydra/Protocol/Preliminaries.tex
index c221a61..b34ad9c 100644
--- a/src/Hydra/Protocol/Preliminaries.tex
+++ b/src/Hydra/Protocol/Preliminaries.tex
@@ -97,7 +97,7 @@ \subsection{Extended UTxO}\label{sec:eutxo}
\begin{figure}[h]
\centering
- \includegraphics[width=0.5\textwidth]{Hydra/Protocol/Figures/utxo-graph.pdf}
+ \includesvg[width=0.5\textwidth]{Hydra/Protocol/Figures/utxo-graph.svg}
\caption{Example of a plain UTxO graph}\label{fig:utxo-graph}
\end{figure}
diff --git a/src/preamble.tex b/src/preamble.tex
index 700140d..2eef1a2 100644
--- a/src/preamble.tex
+++ b/src/preamble.tex
@@ -29,6 +29,7 @@
\usepackage[font=small]{caption}
\usepackage[many]{tcolorbox} % for COLORED BOXES
+\usepackage{svg}
\usepackage{authblk}
% footnotes in table and tabular