feat(dao): scaffold aldabra-dao crate (Phase 1 reads)
Adds a 4th workspace crate `aldabra-dao` for native Agora-on-Cardano DAO interaction. Multi-DAO from day one — DaoConfig per DAO at \$ALDABRA_DATA/daos/<name>.json + .active selector. Sulkta DAO and any community Agora deployment (Bob's DAO, Alice's DAO) are first-class. Phase 0 type port complete: - StakeDatum, StakeRedeemer, ProposalAction, ProposalLock, Credential - ProposalDatum, ProposalRedeemer, ProposalStatus, ProposalThresholds, ProposalTimingConfig, ProposalVotes - GovernorDatum, GovernorRedeemer - All Constr indices verified against Agora source makeIsDataIndexed + EnumIsData declarations (Stake/Proposal/Governor/Action/Status all cross-referenced) - Round-trip tests for every type Phase 1 read surface (this commit): - DaoStore: DaoConfig load/save/list/remove + active-DAO selector with first-register-becomes-active UX. 8 unit tests. - DaoReader trait + KoiosDaoReader impl for get_governor + list_stakes. list_proposals stubbed pending Phase 4 proposal-script-address discovery. - Stake address sharing handled: list_stakes filters on gov_token_policy (the shared MLabs stakes addr serves many DAOs). Stubs for upcoming phases: - agora/treasury.rs (Phase 4 — treasury spend helpers) - agora/authority_token.rs (Phase 4 — GAT mint/burn) - agora/reference_scripts.rs (Phase 2/3 — independent script-hash discovery per Sulkta's choice 2026-05-05; computed locally, never trust MLabs registry) - builder/mod.rs (per-operation Plutus tx builders, populated phase-by-phase) Spec doc + decisions: internal notes in workspace. Effects map (`ProposalDatum.effects`) kept as raw PlutusData for round-trip integrity until Phase 4 (proposal create) needs typed access. ExUnits strategy locked: Koios tx_evaluate from day one (no hardcoded values). Wired up in Phase 2 alongside reference-script discovery.
This commit is contained in:
parent
0a658cc4de
commit
50658ea51b
15 changed files with 2018 additions and 3 deletions
|
|
@ -1,16 +1,17 @@
|
|||
# Cargo workspace root for aldabra.
|
||||
#
|
||||
# Three crates:
|
||||
# Four crates:
|
||||
# aldabra-core — key derivation, signing, types, mnemonic handling
|
||||
# aldabra-chain — pluggable chain backends (Koios, Ogmios). Trait-first.
|
||||
# aldabra-mcp — binary; the MCP server, glues core+chain together.
|
||||
# aldabra-dao — Agora-on-Cardano DAO interaction; multi-DAO from day 1.
|
||||
# aldabra-mcp — binary; the MCP server, glues core+chain+dao together.
|
||||
#
|
||||
# Named for the Aldabra giant tortoise (Aldabrachelys gigantea) — endemic
|
||||
# to the Aldabra atoll in the Seychelles, up to 250 kg, 150-year lifespan.
|
||||
# Long-lived, defended, slow but unstoppable. Fitting metaphor for a
|
||||
# wallet that holds your money.
|
||||
#
|
||||
# Workspace deps are pinned here so all three crates use the same versions.
|
||||
# Workspace deps are pinned here so all crates use the same versions.
|
||||
# Add a dep here, then reference it in each crate's Cargo.toml as
|
||||
# foo = { workspace = true }
|
||||
[workspace]
|
||||
|
|
@ -18,6 +19,7 @@ resolver = "2"
|
|||
members = [
|
||||
"crates/aldabra-core",
|
||||
"crates/aldabra-chain",
|
||||
"crates/aldabra-dao",
|
||||
"crates/aldabra-mcp",
|
||||
]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue