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%

Repository Explorer

8744 commits in all time Jul 21, 2026 14:29 – Oct 19, 2026 14:29 UTC
yasin-ce connect
Merge 797c7edde115a2b84b5b7991c5c2b7f7f887597b into 341b14ba688565b30e7dc7373c2e3ef4ded5a7e2
Git Commit f8e2e2cd Branch pull/240/merge Document 249/23,442 ++ 19,048 --
Merge 0ea6068d2aef17bc1ab9bee7164accc6a4416ed1 into 6110ab468f909720dce0539036aa83e650c96a8b
Git Commit b393f9f7 Branch pull/617/merge Document 40/3,912 ++ 310 --
Argimirodelpozo puya-ts
chore: update contribution guide dropping references to alpha branch
Git Commit 030bec6b Branch chore/contribution-guide-update Document 1/2 ++ 3 --
peraone connect
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
Git Commit 797c7edd Branch yasince/chore/repo-standards Document 10/275 ++ 7 --
peraone connect
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
Git Commit cd515137 Branch yasince/chore/repo-standards Document 14/402 ++ 11 --
peraone connect
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
Git Commit db91dae5 Branch yasince/chore/repo-standards Document 26/2,906 ++ 13 --
peraone connect
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
Git Commit feac2181 Branch yasince/chore/repo-standards Document 35/3,216 ++ 7 --
algorandskiy go-algorand
Merge 0c4591a8f21720f9a7d516d124bd35159d33c5be into de7688341303c19d51cbcd0f8962bee2a086836d
Git Commit ac04bca7 Branch pull/6781/merge Document 2/91 ++ 1 --
Merge 50b6dc1f80f54fc4b010f72397c1e241222af514 into de7688341303c19d51cbcd0f8962bee2a086836d
Git Commit 8f1a1034 Branch pull/6784/merge Document 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>
Git Commit 50b6dc1f Branch dependabot/go_modules/github.com/getkin/kin-openapi-0.149.0 Document 2/6 ++ 6 --
peraone connect
fix(build): type-check bytesToBase64 without Node's Buffer types
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
Git Commit c7411fe6 Branch yasince/chore/repo-standards Document 1/1 ++ 3 --
peraone connect
build: refresh the lockfile for the new overrides
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
Git Commit f0f7e21d Branch yasince/chore/repo-standards Document 1/10 ++ 21 --
peraone connect
chore: point .git-blame-ignore-revs at the formatting commit
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AUJASfdAAc5HNUZoEkPjAd
Git Commit 6656ee29 Branch yasince/chore/repo-standards Document 1/1 ++ 1 --
peraone connect
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
Git Commit 48e78eef Branch yasince/chore/repo-standards Document 7/55 ++ 7 --
Merge 7440c9548da399f3f261915e1d1512604ec3d3e3 into 6110ab468f909720dce0539036aa83e650c96a8b
Git Commit ad61be9a Branch pull/623/merge Document 2/145 ++ 145 --
Merge pull request #625 from algorandfoundation/docs/readme-migration-links
docs: fix migration guide links in README and JSDoc typos
Git Commit 6110ab46 Branch main Document 8/22 ++ 17 --
peraone connect
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
Git Commit 5f00f3ea Branch yasince/chore/repo-standards Document 3/8 ++ 5 --
peraone connect
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
Git Commit 391a4dda Branch yasince/chore/repo-standards Document 12/359 ++ 196 --
peraone connect
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
Git Commit 3f19f228 Branch yasince/chore/repo-standards Document 92/334 ++ 302 --
daniel-makerx puya
Merge df722dc4798a3029f433d13dab62ed29dda3e784 into 1fe489a705458fc5485418bf56bc3f3e4da3f0ba
Git Commit 4c1bc298 Branch pull/733/merge Document 300/36,610 ++ 33,588 --
peraone connect
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
Git Commit 1991ff79 Branch yasince/chore/repo-standards Document 18/57 ++ 303 --
peraone connect
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
Git Commit d7f4b150 Branch yasince/chore/repo-standards Document 34/164 ++ 499 --
peraone connect
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
Git Commit 516ee177 Branch yasince/chore/repo-standards Document 62/1,624 ++ 1,384 --
dependabot[bot] connect
Merge 5ff47a64be7dfec3140b8981ccaf752d314e62b0 into 341b14ba688565b30e7dc7373c2e3ef4ded5a7e2
Git Commit 4666fed1 Branch pull/235/merge Document 2/189 ++ 133 --