<!doctype html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Cradicle Explorer</title>
    <link href="/css/bootstrap/bootstrap.min.css" rel="stylesheet">
    <style>
      .form-control-dark::placeholder {
          color: #aaa;
          opacity: 1;
      }
    </style>
    <link rel="stylesheet" href="/assets/fontawesome/css/all.min.css">
    <link rel="icon" type="image/png" href="/favicon.png">


                <link href="/css/dashboard.css" rel="stylesheet">
                </head>
                <body>
                <header class="navbar navbar-dark sticky-top bg-dark flex-md-nowrap p-0 shadow">
                  <a class="navbar-brand col-md-3 col-lg-2 me-0 px-3 fs-6" href="/">Cradicle Explorer</a>
                  <button class="navbar-toggler position-absolute d-md-none collapsed" type="button" data-bs-toggle="collapse" data-bs-target="#sidebarMenu" aria-controls="sidebarMenu" aria-expanded="false" aria-label="Toggle navigation">
                    <span class="navbar-toggler-icon"></span>
                  </button>
                  <form method="get" action="/cgi-bin/main" style="width:100%;"><input class="form-control form-control-dark w-100 rounded-0 border-0" type="text" name="q" placeholder="Search repos" aria-label="Search"></form>
                  <div class="navbar-nav flex-row">
                    <div class="nav-item text-nowrap">
                      <a class="nav-link px-3 active" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG">fedimint</a>
                    </div>
                  </div>
                </header>
                <div class="container-fluid">
                  <div class="row">
                    <nav id="sidebarMenu" class="col-md-3 col-lg-2 d-md-block bg-dark sidebar collapse">
                      <div class="position-sticky pt-3 sidebar-sticky">
                        <ul class="nav flex-column">
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG">
                              <i class="align-text-bottom fa-solid fa-info"></i>
                              Info
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&issue=list">
                              <i class="align-text-bottom fa-solid fa-layer-group"></i>
                              Issues
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&patch=list">
                              <i class="align-text-bottom fa-solid fa-vest-patches"></i>
                              Patches
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&wallet=list">
                              <i class="align-text-bottom fa-solid fa-wallet"></i>
                              Wallets
                            </a>
                          </li>
                          <li class="nav-item">
                            <a class="nav-link active" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=.">
                              <i class="align-text-bottom fa-solid fa-code"></i>
                              Source
                            </a>
                          </li>
                        <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-4 mb-1 text-muted text-uppercase">
                          <span></span>
                        </h6>
                        <ul class="nav flex-column mb-2">
                        
    <h6 class="sidebar-heading d-flex justify-content-between align-items-center px-3 mt-1 mb-1 text-muted text-uppercase">
      <span>Source</span>
    </h6>
    <li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=.cargo"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> .cargo</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=.config"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> .config</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=.github"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> .github</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=bin"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> bin</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=crypto"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> crypto</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=db"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> db</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=devimint"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> devimint</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=docker"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> docker</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=docs"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> docs</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-api-client"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-api-client</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-bip39"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-bip39</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-bitcoind"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-bitcoind</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-build"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-build</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-cli"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-cli</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-client-wasm"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-client-wasm</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-client"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-client</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-core"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-core</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-dbtool"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-dbtool</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-derive"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-derive</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-eventlog"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-eventlog</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-load-test-tool"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-load-test-tool</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-logging"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-logging</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-metrics"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-metrics</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-recoverytool"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-recoverytool</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-rocksdb"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-rocksdb</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-server"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-server</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-testing-core"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-testing-core</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-testing"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-testing</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimint-wasm-tests"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimint-wasm-tests</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fedimintd"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fedimintd</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=fuzz"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> fuzz</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=gateway"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> gateway</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=misc"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> misc</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=modules"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> modules</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=nix"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> nix</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=releases"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> releases</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> scripts</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fci"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> ci</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> dev</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev%2Fdevimint-env"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> devimint-env</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev%2Fmprocs"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> mprocs</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev%2Frun-isolated-test"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> run-isolated-test</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev%2Frun-test"><i class="fa-solid fa-folder-open" style="color:#f0c040;"></i> run-test</a></li><li><a class="nav-link py-0 active" style="padding-left:64px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Frun-test%2Ffm-run-test"><i class="fa-solid fa-file" style="color:#888;"></i> fm-run-test</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev%2Ftmuxinator"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> tmuxinator</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Faliases.sh"><i class="fa-solid fa-file" style="color:#888;"></i> aliases.sh</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Fbootstrap.sh"><i class="fa-solid fa-file" style="color:#888;"></i> bootstrap.sh</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Fbuild-docs.sh"><i class="fa-solid fa-file" style="color:#888;"></i> build-docs.sh</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Fchange-docker-tags.sh"><i class="fa-solid fa-file" style="color:#888;"></i> change-docker-tags.sh</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Fcompletion.sh"><i class="fa-solid fa-file" style="color:#888;"></i> completion.sh</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Fdevimint-env.sh"><i class="fa-solid fa-file" style="color:#888;"></i> devimint-env.sh</a></li><li><a class="nav-link py-0" style="padding-left:48px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fdev%2Fuser-shell.sh"><i class="fa-solid fa-file" style="color:#888;"></i> user-shell.sh</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fops"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> ops</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Frelease"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> release</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Ftests"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> tests</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2FREADME.md"><i class="fa-solid fa-file" style="color:#888;"></i> README.md</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2F_common.sh"><i class="fa-solid fa-file" style="color:#888;"></i> _common.sh</a></li><li><a class="nav-link py-0" style="padding-left:32px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=scripts%2Fbench-compilation.sh"><i class="fa-solid fa-file" style="color:#888;"></i> bench-compilation.sh</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=utils"><i class="fa-solid fa-folder" style="color:#f0c040;"></i> utils</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.backportrc.json"><i class="fa-solid fa-file" style="color:#888;"></i> .backportrc.json</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.codecov.yml"><i class="fa-solid fa-file" style="color:#888;"></i> .codecov.yml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.dockerignore"><i class="fa-solid fa-file" style="color:#888;"></i> .dockerignore</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.editorconfig"><i class="fa-solid fa-file" style="color:#888;"></i> .editorconfig</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.envrc"><i class="fa-solid fa-file" style="color:#888;"></i> .envrc</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.gitattributes"><i class="fa-solid fa-file" style="color:#888;"></i> .gitattributes</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.gitignore"><i class="fa-solid fa-file" style="color:#888;"></i> .gitignore</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.replit"><i class="fa-solid fa-file" style="color:#888;"></i> .replit</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.rustfmt.toml"><i class="fa-solid fa-file" style="color:#888;"></i> .rustfmt.toml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.semgrepignore"><i class="fa-solid fa-file" style="color:#888;"></i> .semgrepignore</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.tmuxinator.yml"><i class="fa-solid fa-file" style="color:#888;"></i> .tmuxinator.yml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=.typos.toml"><i class="fa-solid fa-file" style="color:#888;"></i> .typos.toml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=CODEOWNERS"><i class="fa-solid fa-file" style="color:#888;"></i> CODEOWNERS</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=CONTRIBUTING.md"><i class="fa-solid fa-file" style="color:#888;"></i> CONTRIBUTING.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=Cargo.lock"><i class="fa-solid fa-file" style="color:#888;"></i> Cargo.lock</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=Cargo.toml"><i class="fa-solid fa-file" style="color:#888;"></i> Cargo.toml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=LICENSE"><i class="fa-solid fa-file" style="color:#888;"></i> LICENSE</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=README.md"><i class="fa-solid fa-file" style="color:#888;"></i> README.md</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=default.nix"><i class="fa-solid fa-file" style="color:#888;"></i> default.nix</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=deny.toml"><i class="fa-solid fa-file" style="color:#888;"></i> deny.toml</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=flake.lock"><i class="fa-solid fa-file" style="color:#888;"></i> flake.lock</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=flake.nix"><i class="fa-solid fa-file" style="color:#888;"></i> flake.nix</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=justfile"><i class="fa-solid fa-file" style="color:#888;"></i> justfile</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=justfile.fedimint.just"><i class="fa-solid fa-file" style="color:#888;"></i> justfile.fedimint.just</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=replit.nix"><i class="fa-solid fa-file" style="color:#888;"></i> replit.nix</a></li><li><a class="nav-link py-0" style="padding-left:16px;" href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&file=shell.nix"><i class="fa-solid fa-file" style="color:#888;"></i> shell.nix</a></li>
    
                        </ul>
                      </div>
                    </nav>
                <main class="col-md-9 ms-sm-auto col-lg-10">
                  <div class="container px-1 py-3">
        
<div class="mb-2" style="font-size:1.1rem;"><a href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=.">/</a> <a href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts">scripts</a> / <a href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev">dev</a> / <a href="/cgi-bin/repo?id=z2eeB9LF8fDNJQaEcvAWxQmU7h2PG&source=scripts%2Fdev%2Frun-test">run-test</a> / fm-run-test</div>
        <div class="list-group">
        <div class="list-group-item">
        <div class="mb-2" style="font-weight:bold;"><i class="fa-solid fa-file"></i> fm-run-test</div>
        <pre style="margin:0; font-size:0.85rem; overflow-x:auto; color:#fafafa;"><span style="color:#666; user-select:none;"> 1</span>  #!/usr/bin/env bash
<span style="color:#666; user-select:none;"> 2</span>  
<span style="color:#666; user-select:none;"> 3</span>  set -eo pipefail
<span style="color:#666; user-select:none;"> 4</span>  
<span style="color:#666; user-select:none;"> 5</span>  test_name=&quot;$1&quot;
<span style="color:#666; user-select:none;"> 6</span>  shift 1
<span style="color:#666; user-select:none;"> 7</span>  
<span style="color:#666; user-select:none;"> 8</span>  if [ -z &quot;$test_name&quot; ]; then
<span style="color:#666; user-select:none;"> 9</span>      &gt;&amp;2 &quot;error: no test name&quot;
<span style="color:#666; user-select:none;">10</span>      exit 1
<span style="color:#666; user-select:none;">11</span>  fi
<span style="color:#666; user-select:none;">12</span>  
<span style="color:#666; user-select:none;">13</span>  version_str=&quot;${FM_RUN_TEST_VERSIONS:+ ($FM_RUN_TEST_VERSIONS)}&quot;
<span style="color:#666; user-select:none;">14</span>  test_out_path=&quot;$(mktemp --tmpdir fm-XXXXX)&quot;
<span style="color:#666; user-select:none;">15</span>  time_out_path=&quot;$(mktemp --tmpdir fm-XXXXX)&quot;
<span style="color:#666; user-select:none;">16</span>  time_fmt=&#x27;%e\t%M\t%w\t%c&#x27;
<span style="color:#666; user-select:none;">17</span>  
<span style="color:#666; user-select:none;">18</span>  export FM_TEST_NAME=&quot;$test_name&quot;
<span style="color:#666; user-select:none;">19</span>  TMPDIR=&quot;$(mktemp -d --tmpdir &quot;${FM_TEST_NAME}-XXXX&quot;)&quot;
<span style="color:#666; user-select:none;">20</span>  FM_RUN_TEST_TMPDIR=&quot;$TMPDIR&quot;
<span style="color:#666; user-select:none;">21</span>  
<span style="color:#666; user-select:none;">22</span>  echo &quot;## RUN:  $test_name$version_str&quot;
<span style="color:#666; user-select:none;">23</span>  
<span style="color:#666; user-select:none;">24</span>  on_error() {
<span style="color:#666; user-select:none;">25</span>    echo &quot;## OUT:  $test_name$version_str&quot;
<span style="color:#666; user-select:none;">26</span>    cat &quot;$test_out_path&quot;
<span style="color:#666; user-select:none;">27</span>    echo &quot;## FAIL: $test_name$version_str&quot;
<span style="color:#666; user-select:none;">28</span>  }
<span style="color:#666; user-select:none;">29</span>  
<span style="color:#666; user-select:none;">30</span>  on_exit() {
<span style="color:#666; user-select:none;">31</span>      exit_status=$?
<span style="color:#666; user-select:none;">32</span>      if [ $exit_status -eq 0 ]; then
<span style="color:#666; user-select:none;">33</span>          # if successful, don&#x27;t waste space keeping the test dir
<span style="color:#666; user-select:none;">34</span>          rm -Rf &quot;$FM_RUN_TEST_TMPDIR&quot;
<span style="color:#666; user-select:none;">35</span>      fi
<span style="color:#666; user-select:none;">36</span>  }
<span style="color:#666; user-select:none;">37</span>  trap on_error ERR
<span style="color:#666; user-select:none;">38</span>  trap on_exit EXIT
<span style="color:#666; user-select:none;">39</span>  
<span style="color:#666; user-select:none;">40</span>  command time -q --format=&quot;$time_fmt&quot; -o &quot;$time_out_path&quot; timeout -k 310 320 &quot;$@&quot; 2&gt;&amp;1 | ts -s &gt; &quot;$test_out_path&quot;
<span style="color:#666; user-select:none;">41</span>  
<span style="color:#666; user-select:none;">42</span>  awk &#x27;BEGIN {FS=&quot;\t&quot;} {printf &quot;## STAT: %8.2fs %8dB %8dW %8dc\n&quot;, $1, $2, $3, $4}&#x27; &lt; &quot;$time_out_path&quot;
<span style="color:#666; user-select:none;">43</span>  echo &quot;## DONE: $test_name$version_str&quot;
</pre>
        </div>
        </div>

</div>
</main>
</div>
</div>


</body>
</html>

