EspressoSystems / cape

Configurable Asset Privacy for Ethereum
https://cape.docs.espressosys.com/
GNU General Public License v3.0
93 stars 16 forks source link

No TODO comments, but Git Hub issues are fine #914

Open philippecamacho opened 2 years ago

philippecamacho commented 2 years ago

See discussion: https://espresso.zulipchat.com/#narrow/stream/311645-Engineering/topic/.60TODO.60s.20and.20issues

pictographer commented 2 years ago

We have 21 TODO comments. None are alarming. Most are minor technical debt or code quality desiderata.

corbett@nao:~/tri/cape$ ag -C TODO
docker-compose.yml
12-services:
13-  wallet-api:
14:    # TODO mount a store path from the host for persistence (?)
15-    image: ${CAPE_WALLET_IMAGE:-ghcr.io/espressosystems/cape/wallet:main}
16-    ports:

wallet/src/mocks.rs
705-
706-fn cape_to_wallet_err(err: CapeValidationError) -> WalletError<CapeLedger> {
707:    //TODO Convert CapeValidationError to WalletError in a better way. Maybe WalletError should be
708-    // parameterized on the ledger type and there should be a ledger trait ValidationError.
709-    WalletError::Failed {

wallet/src/bin/random-wallet.rs
121-        create_test_network(&mut rng, universal_param, None).await;
122-    // Spawn our own EQS since we have our own relayer and contract connection.
123:    // TODO connect to an existing EQS.
124-    let (eqs_url, _eqs_dir, _join_eqs) = spawn_eqs(contract_address).await;
125-    println!("Ledger Created");

wallet/public/index.html
58-    <textarea id="events" name="events" rows="10" style="width:100%;min-width:300px;margin:16px;padding:4px"></textarea>
59-    </div>
60:    <!-- TODO !corbett One of these will work. Need a better way. -->
61-    <script src="public/js/ws.js"></script>
62-    <script src="../../../public/js/ws.js"></script>

wallet/public/js/ws.js
54-    webSocket.send(msg);
55-  } else {
56:    // TODO !corbett Happens when browsing to http://127.0.0.1:8080/
57-    status("Unable to open WebSocket connection.");
58-  }
--
123-        break;
124-      case "TRANSFER":
125:        // TODO !corbett Currently unused.
126-        status("TRANSFER " + data.xfr);
127-        break;

contracts/rust/src/model.rs
465-                        }
466-
467:                        // TODO: fee-collection records
468-                        let (vkey, merkle_root, new_records, note) = match t {
469-                            CapeModelTxn::CAP(TransactionNote::Mint(mint)) => {

contracts/rust/src/cape/note_types.rs
55-        .unwrap());
56-
57:    // TODO test with a valid note
58-    // let mut rng = ark_std::test_rng();
59-    // let note = TransferNote::...
--
96-}
97-
98:// TODO Add test for check_burn that passes
99-
100-#[tokio::test]

contracts/rust/src/ethereum.rs
196-}
197-
198:// TODO: why do we need 'static ?
199-// https://docs.rs/anyhow/1.0.44/anyhow/struct.Error.html ?
200-#[async_recursion]

contracts/rust/src/test_utils.rs
39-}
40-
41:// TODO try to parametrize the struct with the trait M:Middleware
42-impl ContractsInfo {
43-    pub async fn new(

address_book/tests/tests.rs
22-//
23-async fn round_trip<T: Store + 'static>(store: T) {
24:    // TODO !corbett find an unused port rather than assuming 50078 is free.
25-    init_web_server(store).await.expect("Failed to run server.");
26-    wait_for_server().await;

eqs/src/api_server.rs
116-                    arg_doc.push_str("(Parse failed)\n");
117-                    argument_parse_failed = true;
118:                    // TODO !corbett capture parse failures documentation
119-                    // UrlSegmentValue::ParseFailed(segment_type, req_segment)
120-                }
--
129-                    ));
130-                }
131:                // TODO !corbett else capture the matching literal in bindings
132:                // TODO !corebtt if the edit distance is small, capture spelling suggestion
133-            }
134-        }

eqs/src/routes.rs
35-
36-/// Verify that every variant of enum ApiRouteKey is defined in api.toml
37:// TODO !corbett Check all the other things that might fail after startup.
38-pub fn check_api(api: toml::Value) -> bool {
39-    let mut missing_definition = false;

eqs/src/configuration.rs
47-}
48-
49:// TODO: migrate to clap; clap 3.0 incorporates most of StructOpt
50-#[derive(Debug, StructOpt)]
51-#[structopt(

eqs/src/eth_polling.rs
182-                        .0;
183-
184:                    // TODO Instead of panicking here we need to handle cases of missing memos gracefully
185-                    let num_txn = model_txns.len();
186-                    let num_txn_memo = fetched_block_with_memos.memos.len();

flake.nix
189-            SOLC_VERSION = mySolc.version;
190-            SOLC_PATH = "${mySolc}/bin/solc";
191:            # TODO: increase this when contract size limit is not a problem
192-            SOLC_OPTIMIZER_RUNS = "20";
193-

bin/cape-demo-docker
119-set | grep "CAPE_.*_PATH=" | sort >> "$TMP_FILE"
120-set | grep "CAPE_.*_MNEMONIC=" | sort | tee >> "$TMP_FILE"
121:# TODO it would be better to let docker compose handle the ports
122-set | grep "CAPE_.*_PORT=" | sort | tee >> "$TMP_FILE"
123-echo ADDRESS_LIST=$ADDRESS_LIST >> "$TMP_FILE"

bin/cape-test-rinkeby
9-set -euo pipefail
10-
11:# TODO sometimes fails with
12-#       message: replacement transaction underpriced
13-