Ecosystem metrics
- New Repos
- 14
- New
- Commits
- 817
- up 28.9%
- Releases
- 3
- up 0.0%
- Contributors
- 51
- up 18.6%
- Merges
- 30
- up 20.0%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
8206 commits in all time
Jul 08, 2026 20:37 – Oct 06, 2026 20:37 UTC
Merge 4618e13da27d93e324a771af4c6413b336a3ab30 into a57ad64788568d1f76f63f52af499e3e30fa9149
4255d4f4
pull/6752/merge
19/7,405 ++ 1,448 --
chore(frontend): bump escreg-sdk to 1.0.0
The SDK's default registry moved from Fnet to Testnet (app 773212345), which serves every network. Update the comments and .env templates that still named Fnet, and drop the misleading escregAppId comparison in fracReaderSdk.
c3d07d15
develop
8/30 ++ 24 --
Merge a21e1fafb2520bad22c6cede34295da6b3bbd729 into ba321bafca1d7ac0245d8e2aa972def9b686b763
5c8e1764
pull/407/merge
300/21,900 ++ 837 --
Accept the verified origin's host (with port) as the ARC-0060 domain
use-wallet sends location.host as the ARC-0060 domain, which includes a
non-default port ("localhost:5173"); the wallet compared only the hostname, so
sign_data was refused for any dApp on a non-default port, including the
documented localhost development case. Accept the origin's host or hostname
(another host or port is still refused). The check moves to an import-free
module with a unit spec; an E2E test signs a port-bearing domain.
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
049cb82a
feat/direct-popup-transport
5/82 ++ 22 --
Merge 884e859b539f78570e75f0d64b5fe8c0eb2a5c5b into ba321bafca1d7ac0245d8e2aa972def9b686b763
880ffd95
pull/407/merge
300/18,610 ++ 837 --
Cap account names sent in the Direct enable response
The dApp library rejects names longer than 128 characters, which would make a valid grant fail on the dApp side while the wallet kept it. Bound the name at the source and omit it when empty. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
1210675b
feat/direct-popup-transport
3/20 ++ 1 --
Address fourth-round review findings on Biatec Direct (wallet side)
- Never wait on the remote genesis list for well-known networks or custom nodes (a stalled connection to the list host could leave the popup waiting). - Docs name the right shared-item action (wcUpdateItemFresh). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
6c953151
feat/direct-popup-transport
4/26 ++ 6 --
Address third-round review findings on Biatec Direct (wallet side)
- Grant updates are now one atomic critical section: wallet/wcUpdateItemFresh runs read, update and write inside the cross-tab Web Lock, so concurrent updates (popup approve vs main-tab revoke) can neither restore a revoked grant nor drop a new one. The shared-item merge is a pure, unit-tested module. - direct/reset runs first and in its own try/catch on logout and wallet destruction, so a pending request is always answered 4001 even if another transport's teardown throws. - Only the four known peer fields are persisted (no dApp-controlled extra keys). - A refused second channel start no longer tears down the live channel. - Tests: merge unit spec, concurrent-update atomicity and lock-mid-request E2E. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
b43ddd53
feat/direct-popup-transport
7/175 ++ 42 --
test: various abstract method scenarios
884e859b
feat/abstract-methods
3/75 ++ 2 --
feat: require impls of abstract ABI methods to keep declared selector + abstract overrides inherit ARC4 config
c52fc9d0
feat/abstract-methods
3/115 ++ 6 --
Address second-round review findings on Biatec Direct (wallet side)
- approveEnable restores the pending request when persisting the grant fails, so the popup can retry or reject instead of going blank. - Connect page: a Direct-tab load failure no longer aborts the page init. - startPopup load failure shows the "start over" state rather than "refused". - changePassword takes the cross-tab wallet write lock and keeps shared items persisted by other tabs (shared serializer with saveWallet). - Document the dApp-implementer rules (unique window name, accepted origins). Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
98e6c1af
feat/direct-popup-transport
4/86 ++ 39 --
Address review findings on Biatec Direct (wallet side)
- Stale tab: saveWallet now takes the persisted value of shared wc items (direct:sessions) and wallet-record writes are serialized across tabs with a Web Lock, so a stale main tab can neither restore a revoked grant nor drop a new one. - Single-use channel: a reload or lock/unlock cycle never announces ready again. - handleRequest answers 4000 and ends the request on unexpected failure; the popup shows a "refused" state; approve/send/cancel responses are idempotent. - The built-in table of well-known networks wins over the remote genesis list; grants are bound to the network they were made on; sign_data validates an optional genesisHash. - Reject trailing-dot origins; /payWC inside a popup uses the minimal layout. - Document the wire contract (wallet providerId, normalized genesisHash). - Tests: wire-shape contract, stale-tab regression, disable, reload replay, ARC-60 unapproved signer / domain mismatch / approved signer, poisoned list. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
b428be30
feat/direct-popup-transport
20/425 ++ 57 --
Add Biatec Direct: relay-free popup + postMessage dApp transport (#192)
A third dApp transport next to WalletConnect and Liquid Auth. The dApp opens /direct in a popup and exchanges ARC-0027 messages over window.postMessage; nothing passes through a relay or the internet, so it works for localhost dApps and offline installs. Security: the dApp identity is the browser-verified event.origin (https or loopback only), every message must come from both the hinted origin and window.opener, replies use that origin as targetOrigin (never "*"), exactly one request per popup within 30 s of ready, refuses to run framed or without an opener, network-binds every request and transaction to the active genesis hash, and reuses the shared sender/signer admission guards. Site grants live in the encrypted wallet blob and are written with a read-modify-write against the persisted record so a stale tab cannot overwrite another tab's data. Also: Connect page "Direct" tab (list/revoke sites), frame-ancestors CSP in the nginx config, connect.direct.* strings in all 10 locales, docs/DIRECT.md, changelog, unit tests and a Playwright E2E spec using a cross-origin fixture dApp. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
c4f4bb5f
feat/direct-popup-transport
32/2,773 ++ 14 --
Merge 33f86bfe96bc076b8c8588e88f104b7fe5efe3a4 into ed58280f6b67388d3ce7a2e81c9673aa1c7b6ee2
2519e3dc
pull/4/merge
62/8,978 ++ 2,669 --
Merge f6bb0c202c8bfc97d7e664b0ff639900ef02ea2f into d467f20a240473fcb95663a98c3dd04159485a38
540d097d
pull/437/merge
3/94 ++ 196 --
refactor: fido2ApiClient replaced with CredentialManager (#422)
Co-authored-by: Michael T Chuang <github@michaeltchuang.com>
b2e5c538
main
70/1,831 ++ 1,396 --