* 'main' of https://github.com/vitorpamplona/amethyst:
always show playback speed and position/duration text in white regardless of theme
New Crowdin translations by GitHub Action
extract rememberSaveMediaAction to eliminate toast/permission duplication
restore download toast and permission check fix overflow button background to solid
Code review fixes: reduce duplicate code
Code review fixes: Skip-forward clamps against unknown duration Share dropdown is no longer anchored to the overflow button simplify: keep skip amount fixed at 10
Code review fixes: Redundant Box in SkipButton Unused string resources remember { fadeIn() } pattern
Code review fixes: skipSeconds duplication + stale duration read pointerInput(Unit) stale capture ShareMediaAction composed unconditionally Overflow menu background opaque in dark theme
simplify top buttons, move to overflow add skip buttons add gradient overlays and double-tap gesture support
add skip button component, overflow menu component, gradient overlay
* 'main' of https://github.com/vitorpamplona/amethyst:
New Crowdin translations by GitHub Action
localize hardcoded Navigate string in UserSearchCard
add user avatar content descriptions in shared components
add content description to poll deadline date icon
correct pause button accessibility label
unrelated code cleanup
New Crowdin translations by GitHub Action
New Crowdin translations by GitHub Action
Query current block height via blockchain.headers.subscribe and reject
names that have expired (>= 36000 blocks since last update). Populate
expiresIn field in NameShowResult for downstream use.
Unconfirmed transactions (height <= 0) are treated as active.
- ElectrumxClient accepts injected SocketFactory (lambda) so connections
respect the user's Tor/proxy settings instead of leaking their IP
through raw sockets
- Add ProxiedSocketFactory for SOCKS5 proxy routing
- Add .onion ElectrumX server as primary when Tor is enabled, with
electrumx.testls.space as clearnet fallback
- NamecoinNameResolver accepts serverListProvider lambda for dynamic
server selection based on current Tor settings
- RoleBasedHttpClientBuilder.socketFactoryForNip05() bridges Amethyst's
Tor settings to the socket factory
- NamecoinNameService now requires explicit init with proxy-aware client
- Remove dead code: Nip05NamecoinAdapter (never referenced),
NamecoinVerificationDisplay (never called)
- Update design documentation
Resolve .bit, d/, and id/ identifiers from the search bar via
ElectrumX blockchain lookups. Typing any Namecoin identifier format
(m@testls.bit, testls.bit, d/testls, id/alice) now queries the
Namecoin blockchain and shows the resolved user at the top of results.
The namecoinResolvedUser flow in SearchBarViewModel detects Namecoin
identifiers, resolves them through NamecoinNameService, and prepends
the result to the standard local cache search results.
Updated docs with search integration details and manual testing guide.
Add censorship-resistant NIP-05 verification using the Namecoin blockchain.
Users can set their nip05 field to a .bit domain (e.g. alice@example.bit)
or direct Namecoin name (d/example, id/alice) and Amethyst will resolve
the pubkey mapping via ElectrumX instead of HTTP.
Resolution uses the standard Electrum protocol (scripthash-based lookups):
- Build canonical name index script matching ElectrumX-NMC indexing
- Query blockchain.scripthash.get_history for the name's tx history
- Parse NAME_UPDATE script from the latest transaction output
- Extract Nostr pubkey from the name's JSON value
Supports both d/ (domain) and id/ (identity) Namecoin namespaces,
simple and extended NIP-05-like value formats with relay hints,
LRU caching with 1h TTL, and self-signed TLS certificates.
New files:
- quartz: ElectrumxClient, NamecoinNameResolver, NamecoinLookupCache
- amethyst: NamecoinNameService, Nip05NamecoinAdapter, NamecoinVerificationDisplay
- docs: namecoin-nip05-design.md
- tests: NamecoinNameResolverTest
Modified:
- Nip05Client: optional namecoinResolver routes .bit to blockchain
- AppModules: wire up resolver
See docs/namecoin-nip05-design.md for full architecture and protocol details.