Ecosystem metrics

New Repos
24
New
Commits
756
up 7.7%
Releases
3
down 50.0%
Contributors
63
up 28.6%
Merges
10
down 58.3%

Repository Explorer

8617 commits in all time Jul 21, 2026 18:30 – Oct 19, 2026 18:30 UTC
yasin-ce connect
Merge 41cb84c32db373ba48fce35f462b042d5293693e into 341b14ba688565b30e7dc7373c2e3ef4ded5a7e2
Git Commit fc4a58d8 Branch pull/240/merge Document 249/23,467 ++ 19,049 --
yasin-ce connect
fix(signature): hash ARC-60 input with the same bytes the wire sends
Git Commit 2b265da7 Branch yasince/chore/repo-standards Document 2/25 ++ 1 --
yasin-ce connect
docs(readme): name the newly exported option and event types
Git Commit 41cb84c3 Branch yasince/chore/repo-standards Document 1/3 ++ 1 --
yasin-ce connect
refactor: drop the unused isCompactMode flow parameter
Git Commit 34c15f07 Branch yasince/chore/repo-standards Document 3/0 ++ 3 --
yasin-ce connect
fix(build): keep the integration suite out of the published declarations
Git Commit a3af2785 Branch yasince/chore/repo-standards Document 1/2 ++ 1 --
yasin-ce connect
Merge f15fdf8193639df7e0f231a650ddd200839aa9c3 into 341b14ba688565b30e7dc7373c2e3ef4ded5a7e2
Git Commit e92a3a14 Branch pull/240/merge Document 249/23,442 ++ 19,048 --
yasin-ce 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.
Git Commit f15fdf81 Branch yasince/chore/repo-standards Document 10/275 ++ 7 --
yasin-ce connect
build: refresh the lockfile for the new overrides
Git Commit 5fc7e051 Branch yasince/chore/repo-standards Document 1/10 ++ 21 --
yasin-ce connect
chore: point .git-blame-ignore-revs at the formatting commit
Git Commit 53af3c03 Branch yasince/chore/repo-standards Document 1/1 ++ 1 --
yasin-ce connect
fix(build): type-check bytesToBase64 without Node's Buffer types
Git Commit f5a7c9f4 Branch yasince/chore/repo-standards Document 1/1 ++ 3 --
yasin-ce 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.
Git Commit f904a532 Branch yasince/chore/repo-standards Document 26/2,906 ++ 13 --
yasin-ce 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.
Git Commit 1c86e14f Branch yasince/chore/repo-standards Document 14/402 ++ 11 --
yasin-ce 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.
Git Commit d33615cd Branch yasince/chore/repo-standards Document 35/3,216 ++ 7 --
yasin-ce 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.
Git Commit 11626496 Branch yasince/chore/repo-standards Document 3/8 ++ 5 --
yasin-ce 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.
Git Commit 86de7fb3 Branch yasince/chore/repo-standards Document 92/334 ++ 302 --
yasin-ce 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).
Git Commit dfaaf42e Branch yasince/chore/repo-standards Document 34/164 ++ 499 --
yasin-ce connect
style: format with oxfmt
Mechanical: the pera-react-native oxfmt config applied to every TypeScript,
SCSS and Markdown file. No behaviour change. Listed in
.git-blame-ignore-revs so blame skips it.
Git Commit 2518afde Branch yasince/chore/repo-standards Document 113/13,012 ++ 11,736 --
yasin-ce 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.
Git Commit 2768bf68 Branch yasince/chore/repo-standards Document 7/55 ++ 7 --
yasin-ce 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.
Git Commit 9644f140 Branch yasince/chore/repo-standards Document 18/57 ++ 303 --
yasin-ce 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.
Git Commit 2756b5b9 Branch yasince/chore/repo-standards Document 62/1,624 ++ 1,384 --
yasin-ce 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.
Git Commit 9059065a Branch yasince/chore/repo-standards Document 12/359 ++ 196 --
yasin-ce connect
build: move to Vite, TypeScript 7, Vitest 5 and oxlint/oxfmt
Replaces the Rollup 2 / rollup-plugin-typescript2 / ESLint 8 / Prettier 2
toolchain with the one pera-react-native uses: Vite library mode for the
bundle, tsc for declarations, Vitest 5 on jsdom 30, oxlint and oxfmt.

- Dependencies are now external to the bundle, so consumers dedupe them;
  the Node polyfill bundle is gone.
- Our own code no longer relies on the global Buffer polyfill.
- tweetnacl-ts (unmaintained since 2018) is replaced by tweetnacl, which
  algosdk already depends on.
- Runtime deps: @perawallet/walletconnect 1.0.3, bowser 2.14.1,
  qr-code-styling 1.9.2, lottie-web-light 5.13.0.
- Test files move to the *.spec.ts naming.
- The modal font is loaded with a <link> in the document instead of
  injecting every component's CSS into <head>; @font-face does not apply
  inside shadow roots, which is the only reason the global copy was needed.
Git Commit 78a4d8d0 Branch yasince/chore/repo-standards Document 104/2,650 ++ 5,942 --
Argimirodelpozo puya-ts
Merge dc5ee465dc3567c6d7b138583151778c3ec925e0 into ba321bafca1d7ac0245d8e2aa972def9b686b763
Git Commit 432c298c Branch pull/409/merge Document 7/595 ++ 692 --
Argimirodelpozo puya-ts
chore: npm audit fixes
Git Commit dc5ee465 Branch chore/contribution-guide-update Document 6/593 ++ 689 --
ipaleka frontend
Daphne restarts with new code through asgir script
Git Commit 9031b16a Branch main Document 8/152 ++ 5 --