Ecosystem metrics
- New Repos
- 17
- New
- Commits
- 720
- down 2.4%
- Releases
- 3
- down 62.5%
- Contributors
- 64
- up 28.0%
- Merges
- 11
- down 54.2%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
8744 commits in all time
Jul 21, 2026 14:29 – Oct 19, 2026 14:29 UTC
Merge 0ea6068d2aef17bc1ab9bee7164accc6a4416ed1 into 6110ab468f909720dce0539036aa83e650c96a8b
b393f9f7
pull/617/merge
40/3,912 ++ 310 --
chore: update contribution guide dropping references to alpha branch
030bec6b
chore/contribution-guide-update
1/2 ++ 3 --
Merge origin/main: ARC-60 signing schemes (#239)
Ports the Falcon-1024 scheme support onto the refactored layout: isEd25519Scheme and the scheme-aware signer encoding in arc60Wire, SIGN_DATA_VERIFICATION_UNSUPPORTED in signArc60Data, the scheme field on the models, and the version bump to 1.9.0. Its tests move into the corresponding *.spec.ts files. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
797c7edd
yasince/chore/repo-standards
10/275 ++ 7 --
test: add a Playwright e2e smoke on the built bundle
e2e/ bundles dist/ into a small Vite dApp, the way an integrator's bundler would, and drives it in Chromium with all external traffic stubbed or dropped: the modal elements and legacy globals register, the version shows in the header, the rendered QR decodes back to the WalletConnect pairing URI, closing the modal rejects CONNECT_MODAL_CLOSED, and the extension connect runs inside a real user gesture (the stub refuses without navigator.userActivation). Runs as its own CI job (pnpm test:e2e) and uploads traces on failure. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
cd515137
yasince/chore/repo-standards
14/402 ++ 11 --
test: add an integration suite for the public flows
src/__integration__ drives the SDK only through its entry point, with the real modal elements, storage and algosdk keys, and fakes only the outside world: a WalletConnect v1 client modelled on the real one, a Pera Mobile that scans the rendered QR and signs with a real key, a window.pera extension that only connects inside a user click, and the config/algod endpoints. Covers connect (QR, extension, modal closed), reconnect after reload, signing (toast, redirect modal, transaction match, TransactionSigner), signData/ARC-60 verification, wallet-side disconnect, empty signatures and disconnect. Vitest now runs unit and integration as two projects (pnpm test:unit / test:integration); coverage over both is gated at 95% lines/functions/statements and 90% branches. Known-wrong behaviour found on the way is recorded as it.todo. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
db91dae5
yasince/chore/repo-standards
26/2,906 ++ 13 --
test: cover the modal components, transports and utilities
Behavioural unit tests for every modal custom element (attribute wiring, conditional views, the extension option event, close and download actions) and for the gaps in util/ and transport/: the Pera Web new-tab flows, the webview bridge, deep links, the signed-transaction match check, ARC-60 signer resolution and the extension provider. Third-party renderers (qr-code-styling, Lottie) are faked at the module boundary; everything else runs for real. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
feac2181
yasince/chore/repo-standards
35/3,216 ++ 7 --
Merge 0c4591a8f21720f9a7d516d124bd35159d33c5be into de7688341303c19d51cbcd0f8962bee2a086836d
ac04bca7
pull/6781/merge
2/91 ++ 1 --
Merge 50b6dc1f80f54fc4b010f72397c1e241222af514 into de7688341303c19d51cbcd0f8962bee2a086836d
8f1a1034
pull/6784/merge
2/6 ++ 6 --
build(deps): bump github.com/getkin/kin-openapi from 0.144.0 to 0.149.0
Bumps [github.com/getkin/kin-openapi](https://github.com/getkin/kin-openapi) from 0.144.0 to 0.149.0. - [Release notes](https://github.com/getkin/kin-openapi/releases) - [Commits](https://github.com/getkin/kin-openapi/compare/v0.144.0...v0.149.0) --- updated-dependencies: - dependency-name: github.com/getkin/kin-openapi dependency-version: 0.149.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] <support@github.com>
50b6dc1f
dependabot/go_modules/github.com/getkin/kin-openapi-0.149.0
2/6 ++ 6 --
fix: keep plain-JS signData input and corrupted storage working
Two edges found in review of the refactor: - signData and ARC-60 authenticatorData encoded through algosdk's bytesToBase64, which turns an ArrayBuffer into an empty string in browsers. Plain-JS dApps that pass ArrayBuffers, number arrays or strings now get the encoding the global Buffer gave them before. - Unparseable wallet details in localStorage made reconnectSession() fail inside its own cleanup and leave the entry behind. It now clears the storage and rejects with SESSION_RECONNECT. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
48e78eef
yasince/chore/repo-standards
7/55 ++ 7 --
Notes added by 'git notes add'
a1d45eba
notes/semantic-release-v9.2.3-beta.2
1/1 ++ 0 --
Merge 7440c9548da399f3f261915e1d1512604ec3d3e3 into 6110ab468f909720dce0539036aa83e650c96a8b
ad61be9a
pull/623/merge
2/145 ++ 145 --
Merge pull request #625 from algorandfoundation/docs/readme-migration-links
docs: fix migration guide links in README and JSDoc typos
6110ab46
main
8/22 ++ 17 --
fix(modal): give two letter-spacing values their unit
Unitless letter-spacing is invalid CSS. The old pipeline passed it through and browsers dropped it; Vite's CSS minifier reads it as px, so spell that out. Also stop shipping declaration maps, which point at sources the package does not include. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
5f00f3ea
yasince/chore/repo-standards
3/8 ++ 5 --
ci(repo): adopt the pera-react-native repo standards
- CI / Pre-Merge runs lint, type-aware lint, format, typecheck, tests with an 80% coverage gate, the build and publint/attw, plus a lockfile drift check, pnpm audit and the gitleaks history scan. - Release / Publish repeats those gates before publishing, and scans the built bundle. - Workflow files follow the ci-/security-/release- naming; actions move to the same pinned SHAs as pera-react-native. - Dependabot groups updates by risk, keeps @types/node on the runtime's major and holds pnpm/action-setup at v5. - Hooks: commit-msg enforces Conventional Commits, pre-push runs lint, format check and typecheck; pnpm run setup:hooks enables them (the repo's ignore-scripts means install alone does not). - CLAUDE.md, a rewritten CONTRIBUTING.md, a PR template and .git-blame-ignore-revs for the formatting commit. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
391a4dda
yasince/chore/repo-standards
12/359 ++ 196 --
fix(types): resolve the published declarations under node16/nodenext
The emitted .d.ts files imported each other without extensions, which TypeScript projects on moduleResolution node16/nodenext cannot resolve (arethetypeswrong: InternalResolutionError, present since 1.x). Relative imports now carry .js, and oxlint's import/extensions keeps it that way; check:package (publint + attw) guards the result in CI. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
3f19f228
yasince/chore/repo-standards
92/334 ++ 302 --
Merge df722dc4798a3029f433d13dab62ed29dda3e784 into 1fe489a705458fc5485418bf56bc3f3e4da3f0ba
4c1bc298
pull/733/merge
300/36,610 ++ 33,588 --
docs(src): keep comments to the why
Applies the comment rules from pera-react-native: drop JSDoc that repeats signatures, banners, file narration and commented-out code; keep rationale, traps and units. Comment-only apart from two fixes found on the way: - webviewBridge removed its message listener with a fresh bind(), so the removal never matched; it now keeps one bound handler. - The window.pera provider docs sat on PeraAccount in the published types; they now document PeraProvider. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
1991ff79
yasince/chore/repo-standards
18/57 ++ 303 --
refactor: remove dead code and tighten small utilities
- Drop the sign-txn modal and its open/close helpers; nothing has mounted it since Pera Web signing moved to a new tab. - Drop detectPlatform/isMobileMethodAvailable from the webview bridge (unused) and waitForElementCreatedAtShadowDOM, whose observer never re-queried the shadow root. - fetcher rejects on an HTTP error status instead of parsing the error body as config; getPeraConnectConfig is typed and still never rejects. - Shared appendTemplateWithStyles for the modal components. - Remove ESLint directives left behind by the toolchain move, the triple-slash reference and banner comments. - Tests for the new modules (signature checks, signer slot mapping, event emitter, algod pool, font loader, vh variable). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
d7f4b150
yasince/chore/repo-standards
34/164 ++ 499 --
refactor: split PeraWalletConnect into focused modules
PeraWalletConnect.ts drops from ~1,350 to ~980 lines; the class keeps the public surface and orchestration, and delegates to modules that can be read and tested on their own: - util/transaction/signedTransactionMatch: the check that the wallet returned the transactions that were asked for - util/transaction/transactionSignerUtils: TransactionSigner slot mapping - util/signature/signatureVerification: MX and ARC-60 signature checks - util/arc60/arc60Signer: SIWA origin binding and signer resolution - util/events/SessionEventEmitter: typed disconnect/networkChanged events - util/algod: AlgodClientPool replaces AlgodManager and the unused provider-type indirection Also: - connect() and reconnectSession() no longer use async promise executors, so an unexpected throw can no longer leave the promise pending forever. - MobileTransport shares one request path and types its connector from WalletConnect instead of any. - Named exports only; no explicit any; no floating promises. - PeraWalletConnectOptions and the event types are now exported. No change to the public API or to wire behaviour; the existing suite passes unchanged apart from following the moved internals. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
516ee177
yasince/chore/repo-standards
62/1,624 ++ 1,384 --
Merge 5ff47a64be7dfec3140b8981ccaf752d314e62b0 into 341b14ba688565b30e7dc7373c2e3ef4ded5a7e2
4666fed1
pull/235/merge
2/189 ++ 133 --