audit: cargo fmt + clippy --fix across workspace + retract_votes cooldown bug fix
Surfaced by Track #38 code audit (2026-05-09): 1. cargo fmt --all: 217 formatting diffs across 35 files. Pure whitespace; no semantic changes. 2. cargo clippy --fix: 30 warnings -> 10. Auto-applied: - useless format!() (3 sites in builder/proposal_*.rs) - needless_borrow_for_generic_args (4 sites) - cloned_ref_to_slice_refs (1 site, builder/proposal_cosign.rs) - derivable_impls (1 site, dao/config.rs) - unused imports/variables (3 sites) Remaining 10 warnings are non-trivial (too_many_arguments on a constructor at 8 args, FromStr trait shadow, doc_lazy_continuation on a few comment blocks). Filed as tech-debt; no action this pass. 3. cargo audit: 0 vulnerabilities. 2 unmaintained advisories on transitive deps: - paste 1.0.15 (RUSTSEC-2024-0436) via rmcp + pallas-traverse - proc-macro-error 1.0.4 (RUSTSEC-2024-0370) via age->i18n-embed-fl Both upstream; tracked but no action needed locally. 4. Test failure surfaced: builder::proposal_retract_votes::tests:: voting_ready_in_window_subtracts_vote_weight failed — cooldown check was applied unconditionally for RemoveVoterLockOnly mode, blocking the legitimate 'retract during voting window' path where the proposal datum mutates (vote weight subtraction). Per Agora's premoveLocks rule, cooldown only applies when retracting AFTER voting closed but BEFORE Finished — not during the active voting window. Fixed by gating cooldown on '!proposal_datum_will_change' so the in-window retract path bypasses cooldown the same way RemoveAllLocks does. Test: 87/87 aldabra-dao lib tests pass post-fix (was 86/87).
This commit is contained in:
parent
0987d5de12
commit
03b5efb3b2
35 changed files with 1125 additions and 1072 deletions
65
Cargo.lock
generated
65
Cargo.lock
generated
|
|
@ -97,6 +97,30 @@ dependencies = [
|
|||
"zeroize",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aldabra-dao"
|
||||
version = "0.0.1"
|
||||
dependencies = [
|
||||
"aldabra-chain",
|
||||
"aldabra-core",
|
||||
"async-trait",
|
||||
"bech32",
|
||||
"hex",
|
||||
"pallas-addresses",
|
||||
"pallas-codec",
|
||||
"pallas-crypto",
|
||||
"pallas-primitives",
|
||||
"pallas-traverse",
|
||||
"pallas-txbuilder",
|
||||
"reqwest",
|
||||
"serde",
|
||||
"serde_json",
|
||||
"tempfile",
|
||||
"thiserror 1.0.69",
|
||||
"tokio",
|
||||
"tracing",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "aldabra-mcp"
|
||||
version = "0.0.1"
|
||||
|
|
@ -104,7 +128,10 @@ dependencies = [
|
|||
"age",
|
||||
"aldabra-chain",
|
||||
"aldabra-core",
|
||||
"aldabra-dao",
|
||||
"anyhow",
|
||||
"hex",
|
||||
"pallas-addresses",
|
||||
"rmcp",
|
||||
"rpassword",
|
||||
"serde",
|
||||
|
|
@ -482,6 +509,12 @@ dependencies = [
|
|||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "fastrand"
|
||||
version = "2.4.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "9f1f227452a390804cdb637b74a86990f2a7d7ba4b7d5693aac9b4dd6defd8d6"
|
||||
|
||||
[[package]]
|
||||
name = "fiat-crypto"
|
||||
version = "0.2.9"
|
||||
|
|
@ -1130,6 +1163,12 @@ version = "0.2.186"
|
|||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "68ab91017fe16c622486840e4c83c9a37afeff978bd239b5293d61ece587de66"
|
||||
|
||||
[[package]]
|
||||
name = "linux-raw-sys"
|
||||
version = "0.12.1"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53"
|
||||
|
||||
[[package]]
|
||||
name = "litemap"
|
||||
version = "0.8.2"
|
||||
|
|
@ -1800,6 +1839,19 @@ dependencies = [
|
|||
"semver",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustix"
|
||||
version = "1.1.4"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190"
|
||||
dependencies = [
|
||||
"bitflags",
|
||||
"errno",
|
||||
"libc",
|
||||
"linux-raw-sys",
|
||||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "rustls"
|
||||
version = "0.23.40"
|
||||
|
|
@ -2128,6 +2180,19 @@ dependencies = [
|
|||
"syn 2.0.117",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "tempfile"
|
||||
version = "3.27.0"
|
||||
source = "registry+https://github.com/rust-lang/crates.io-index"
|
||||
checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
|
||||
dependencies = [
|
||||
"fastrand",
|
||||
"getrandom 0.3.4",
|
||||
"once_cell",
|
||||
"rustix",
|
||||
"windows-sys 0.61.2",
|
||||
]
|
||||
|
||||
[[package]]
|
||||
name = "thiserror"
|
||||
version = "1.0.69"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue