A BNS name costs cents but is still a gate — someone discovering Prometheus
for the first time shouldn't have to go register sirius.x before they can
publish. Accept a raw cashaddress in the `publisher` field: the sign path
skips the BNS owner-of lookup and treats the field itself as the signing
address, which is still an ECDSA pubkey the chain verifies against.
- listings.js: PUBLISHER_RE = BNS name OR cashaddress; isCashaddr() helper;
verify branch skips lookupName() and uses the address directly as
expectedAddress (recovery-is-not-verification still holds — we compare
the recovered address to the claimed one, both sides)
- pages.js submit form: pattern + placeholder + hint explain both options,
with the trade-off (address publishers display as truncated hex instead
of a readable name)
- pages-browse.js: shortenPublisher() collapses raw addresses to
bchtest:qpumq…sh478 on cards + detail page + <title>; full address kept
in title attribute for hover, and in the URL path. BNS names are
untouched.