Repository navigation
v0.9.5 — Changes since v0.9.4
Bug Fixes
-
group.ak — The
Createmint branch now enforces that the script output carries a valid
inlineGroupDatum. Previously any datum (includingNoDatum) was accepted, which would
have permanently locked the Group UTxO if an off-chain client minted it with a malformed datum. -
semaphore.ak — The NFT destination check at mint was upgraded from a weak presence check
(is_policy_on_value) to the stricterpolicies(without_lovelace(value)) == [policy_id],
matching the standard already used ingroup.ak. This prevents foreign tokens from being
locked into the Semaphore UTxO at mint time. -
semaphore_test.ak (HIGH) — All spending tests placed
vkey_inpu ofreference_inputs. The spending validator reads the VKey fromre
happy-path test was silently failing and allfailtests were passin
across all 8 spending tests.
Test Coverage
-
group_test.ak — Added 2 new
failtests: minting two tokens with
under the same policy; minting a valid Group NFT alongside a foreign-
script output. Addedmint_wrong_oref: confirms the one-shot UTxO gu
that does not consume the parameterisedoref. Addedspend_create_r confirms theCreate` redeemer on the spend endpoint is rejected by t -
semaphore_test.ak — Added 10 new
failtests: two tokens with di
mint; foreign token in the script output at mint;DatumHashinstead of inline datum at mint;
wrong-typed inline datum (InlineDatum(42)) at mint; missing Group reference input at mint;
VKey reference input with altered datum at spend; wrongorefat mint;Signalredeemer on
the mint endpoint. Fixedspend_vkey_field_with_incorrect_valueto u
wrong_vk_oref, decoupling the datum-type rejection from the global -
semaphore_test.ak (happy path) — Added `spend_signal_semaphore_
existing happy-path test only covered MPF insertion into an empty tri
from a pre-populated trie (a dummy nullifier already inserted) and uses an off-chain-generated
non-membership proof to insert the real nullifier alongside it, verif -
Test count: 32 → 45, all passing.
Project
- License changed from Apache-2.0 to GPL v3.
- Trusted setup ceremony documented: 20 independent participants, random beacon applied as
contribution #21. Circuit hash and beacon hash recorded in the README
transcript committed atkeys/. - Off-chain SDK (
modp-semaphore-bls12381) added as a git submodule atoff-chain/. - README rewritten with architecture diagram, data type reference, dependencies table,
off-chain SDK section, and ceremony details.