argus/test
Local Dev 9f6dd69bf3 registry covenant v1: the contract that holds a name and enforces its lifecycle (draft)
Expiry was always going to be the chain refusing, not resolvers agreeing. This
is that contract: a certificate sits in a covenant whose address encodes its
owner and expiry, and five paths move it. The owner renews, transfers,
releases or migrates; anyone takes over an expired name at a price that
glides from a premium to a floor, paying the previous owner a share while the
grace period lasts and committing to the name a block ahead.

The two changing values are the last constructor arguments, so they sit first
in the redeem script and the contract re-creates itself by swapping 26 bytes.
A resolver that knows the code can check any claimed owner and expiry against
the address.

Every number comes from registry-lifecycle.js, which was written as the
fixture for this. The tests run each path in libauth's VM under the 2025 and
2026 rules, compare price and split to that model along the glide, and then
break one rule at a time with valid signatures; the suite counts that the VM
itself refused them.

Draft, not reviewed, and not wired into any resolver. REGISTRY-COVENANT-v1.md
says where it departs from the design: script cannot bound a height from
above, so reclaim has no deadline and a commit cannot expire, which leaves
commit hoarding open. That is the first thing a reviewer should read.
2026-10-04 15:42:36 +02:00
..
blocklist.test.mjs blocklist: write side, operator tool, and the tests the roadmap asks for 2026-10-04 02:32:59 +02:00
bns-indexer.test.mjs Theseus navigator UI overhaul, BNS-only indexer, site restructure 2026-07-30 08:16:55 +02:00
chipnet-acceptance.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
chipnet-escrow-refund.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
chipnet-paybyqr.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
connect-shape.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
dns-server.test.mjs resolver: echo EDNS OPT record so strict clients stop failing 2026-08-02 01:19:09 +02:00
electrum-pool.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
manifest-hosts.test.mjs feat(gateway): a name's owner decides what its subdomains serve 2026-09-28 01:04:36 +02:00
orders.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
password-vault.test.mjs Snapshot in-progress work: Ariadne mobile, Theseus password manager, Hephaestus 2026-08-14 23:17:18 +02:00
plans.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
portfolio-index.test.mjs Theseus navigator UI overhaul, BNS-only indexer, site restructure 2026-07-30 08:16:55 +02:00
record-picker.test.mjs feat(bns): 'p' reverse-proxy record type — mirror an upstream URL under a BNS name 2026-09-07 00:18:07 +02:00
register-tx.test.mjs Initial commit — Silent Mode baseline (2026-07-29) 2026-07-29 13:54:34 +02:00
registry-covenant.test.mjs registry covenant v1: the contract that holds a name and enforces its lifecycle (draft) 2026-10-04 15:42:36 +02:00
registry-lifecycle.test.mjs Theseus navigator UI overhaul, BNS-only indexer, site restructure 2026-07-30 08:16:55 +02:00
release.test.mjs registrar: build and send a release, and keep registration closed until it confirms 2026-10-04 01:55:14 +02:00
tld-enforcement.test.mjs BNS: per-TLD on-chain registry, multi-beacon indexer, enforcement gate 2026-08-29 17:11:02 +02:00
tld-index.test.mjs BNS: per-TLD on-chain registry, multi-beacon indexer, enforcement gate 2026-08-29 17:11:02 +02:00