aldabra/crates
Kayos b7074fd81b fix(dao): prepend (cons) Created lock instead of append in proposal_create
Agora's stake validator (ppermitVote) enforces output_locks =
pcons NEW_LOCK old_locks (head-cons, not append). proposal_create
was using Vec::push which appends, so when the stake had any
pre-existing locks the output lock order didn't match what the
validator expected and the chain rejected with CekError on the
stake validator (5178-byte script, hash 57d6b17f...).

The bug went undetected on 2026-05-07 because that day's first
proposal_create ran on a stake with locked_by = [], where push
and prepend produce the same single-element vector. Today's
proposal #1 attempt — stake already holding a Created lock for #0 —
flushed it out.

Mirror the prepend pattern that proposal_cosign and proposal_vote
already use: build new_locks with the new lock at index 0, then
extend with the old locks.
2026-05-07 19:43:10 -07:00
..
aldabra-chain v0.2: 8 chain_* read-only Koios passthrough MCP tools 2026-05-05 07:01:32 -07:00
aldabra-core plutus_mint: thread additional_signers into tx body's required_signers 2026-05-07 10:33:55 -07:00
aldabra-dao fix(dao): prepend (cons) Created lock instead of append in proposal_create 2026-05-07 19:43:10 -07:00
aldabra-mcp fix(dao): anchor proposal-create validity range on starting_time_slot 2026-05-07 17:31:45 -07:00