Ecosystem metrics

New Repos
14
New
Commits
1,021
up 30.1%
Releases
11
up 10.0%
Contributors
51
down 10.5%
Merges
25
up 212.5%

Repository Explorer

10274 commits in all time May 19, 2026 12:35 – Aug 17, 2026 12:35 UTC
sofinico gGov
Merge 740fd12eb022093a13ecb3ea9145cf689ba3014c into 2a38b9168fcdf2f3cc45afa0193ccb8ba5cb8027
Git Commit 84d38da8 Branch pull/104/merge Document 48/15,316 ++ 10,255 --
sofinico gGov
Merge 9bfc5f9bf9ac97f0443659ae994f23c5f9a4fa82 into 84d38da8e6f601596c8961d24100cd5ea074c382
Git Commit 266d6da6 Branch pull/105/merge Document 16/1,039 ++ 2 --
sofinico gGov
Merge edb4855d453cc48b7ba49dca8fa63060ccdba632 into 2c7e99522ae6f3ad4c17d8a7ac43712d54bb5ab2
Git Commit 2a38b916 Branch pull/103/merge Document 15/269 ++ 133 --
tasosbit gGov
fix(deps): bump nanoid to 3.3.18 to clear GHSA-2v37-7h3g-55p8
pnpm audit --audit-level=high was failing on:

- nanoid <3.3.18 (GHSA-2v37-7h3g-55p8, "custom generators can loop
  indefinitely when size is zero") -> 3.3.17 bumped to 3.3.18

nanoid is only in the tree transitively via postcss (>vite>vitest etc.),
whose ^3.3.11 range already admits the fix, so this is a lockfile-only
bump with no override — same as the previous 3.3.16 -> 3.3.17 bump.
3.3.18 was published 2026-08-07 and is now past the workspace
minimumReleaseAge, so no exclude is needed either.

pnpm install --frozen-lockfile and pnpm audit --audit-level=high verified
locally (0 high; 4 low / 5 moderate remain, below the threshold).
Git Commit edb4855d Branch chore/improvements-on-manage-ui Document 1/4 ++ 4 --
sofinico gGov
Merge 9bfc5f9bf9ac97f0443659ae994f23c5f9a4fa82 into 343b5c8aceaa060fbb3df257b7166f78f838a5b1
Git Commit 68a0b683 Branch pull/105/merge Document 16/1,043 ++ 6 --
sofinico gGov
Merge 740fd12eb022093a13ecb3ea9145cf689ba3014c into 48e94e1cb8389f34805d14b5c7fcb0a45d10d03b
Git Commit 343b5c8a Branch pull/104/merge Document 48/15,316 ++ 10,255 --
sofinico gGov
Merge 2c7e99522ae6f3ad4c17d8a7ac43712d54bb5ab2 into d5e740c4f38df55c0230b3571fa18401b65695ef
Git Commit ac1295a9 Branch pull/55/merge Document 300/446,738 ++ 144,630 --
sofinico gGov
feat: init frac pipeline project
- Implements Stage 1 of ***The Doc***: escrow/instance recognition + on-chain reconciliation (admin).

- New layer of abstraction: staking sources; defined as the pipeline-integrated pooling protocols, i.e. "reti", "talgo" and soon "xalgo". A source like reti can have multiple instances. Sources like LSTs are typically single-instance.

Steps:
1. Does an escrow/instance discovery phase, specific for each source.
2. Then, escrow recognition: intersection of committee govs and fetched escrows.
3. On-chain reconciliation: create instances and register escrows as needed.
4. Call `importFracDelegationsAll` on ggov registry.

Missing:
- `xalgo` (as staking source) implementation
- Stage 2: integrate AQ calculation scripts from `ggov-algoquarters`
- Stage 3: call `uploadAqFile` which orchestrates the AQ primitives from an `AlgoQuartersFile`

There's some patches on the build and node stuff. Does not intersect with the logic, but nice to adjust when possible:

- `node --experimental-strip-types` as we are under ^22.18.0 (currently ^22.15.0);
- conflicts between csj and esm builds: reti-ghost-sdk builds different than frac-delegation-sdk and ggov-sdk. See workaround in `scripts/test-run.ts`.
Git Commit d758b301 Branch feat/frac-pipeline Document 10/810 ++ 0 --
sofinico gGov
chore: add useful context prop to the pipeline + readme
Git Commit 9bfc5f9b Branch feat/frac-pipeline Document 2/32 ++ 16 --
sofinico gGov
fix(deps): override nanoid to clear pnpm high audit advisory
Git Commit 374c892b Branch feat/frac-pipeline Document 2/7 ++ 4 --
sofinico gGov
build: use commonjs module output for SDKs
Git Commit 1c9ea232 Branch feat/frac-pipeline Document 2/2 ++ 2 --
sofinico gGov
chore: test run with committee iteration
Git Commit 0e49c704 Branch feat/frac-pipeline Document 6/390 ++ 182 --
sofinico gGov
feat: sdk: ggov MBR vault support for live voting, with tests
Git Commit 3b1ad9ab Branch feat/frac-pipeline Document 8/338 ++ 3 --
sofinico gGov
test: cover delegated-vote MBR top-up on both registries
Git Commit b8898882 Branch feat/frac-pipeline Document 2/48 ++ 0 --
sofinico gGov
chore: nit: correct JSDoc
Git Commit 331cef1c Branch feat/frac-pipeline Document 5/15 ++ 15 --
sofinico gGov
refactor: sdk: hardcode box names in both SDKs, guarded by a spec-derived test
- Converges frac-delegation-sdk on ggov-sdk's style. `instanceBoxName` was deriving prefix + key encoding from the ARC-56 spec at call time; it now hardcodes 'i' + big-endian uint16, matching gGov's `periodBoxName`/`topicBodyBoxName`. Drops the ABIType, APP_SPEC and Buffer dependencies from the util.

- New `smart_contracts/boxNames.spec.ts` derives the expected bytes from the compiled specs and compares them against every helper, at 0 / 1 / key-type max. Deriving there and nowhere in the SDKs is what makes drift visible. Plain `.spec.ts`, no contract code and no chain.

- Also guards the cross-app near-collision: the period app's `periodBody` key is 'P', the registry's `periodApprovalBox` key is 'Pap'. Same leading byte, different apps, and `asciiBoxName` is single-byte by construction.

- Stops four places re-implementing the helpers by hand — `getPeriodBody` and `getTopicBody` in ggov-sdk's period reader were building 'P' and 'T' + uint32 inline, and both vote e2e tests were assembling the expected box name byte by byte. The e2e tests keep their own job: proving the ref is emitted on both the top-up and no-top-up branches.
Git Commit e91273f0 Branch feat/frac-pipeline Document 5/93 ++ 26 --
sofinico gGov
feat: sdk: frac MBR vault support for live voting, with tests
- `makeVoteTxns` now names the frac registry app and its `instances` box on every vote, top-up or not, given the state-conditional inner call on `checkNeedMBR`.

- Ref-slot padding goes `numEscrows * 5 + 20` -> `+ 21` for the extra box.

- `extraFee` is deliberately unchanged. Both MBR hops pay their own fee, so the voter's group fee is invariant to whether the top-up fires.

- New `instanceBoxName` in util/boxes.ts, deriving prefix and key encoding from the ARC-56 spec rather than hardcoding 'i' + uint16.

- Test coverage includes regression-like cases for the whole MBR top-up flow.
Git Commit 05cdbdd9 Branch feat/frac-pipeline Document 8/297 ++ 9 --
sofinico gGov
fix: sdk: frac votes declare the ggov registry's periods box
- A frac vote nests a GGovPeriod.vote per re-cast escrow, and that inner vote runs its own checkNeedMBR — which reads `periods` on the gGov registry. Population resolves refs by simulating, so a period that dropped under its minimum balance between simulate and execution failed the whole vote.

- Same fix as the frac registry's `instances` box, one layer down. One slot, not one per escrow: every cast hits the same box. Padding 21 -> 22, fees unchanged.
Git Commit 740fd12e Branch feat/frac-pipeline Document 4/165 ++ 14 --
sofinico gGov
feat: contracts: periods self-fund MBR from the registry on vote
Analogous to fractional delegation. Same registry as a vault + MBR post-condition pattern.
Git Commit db7d569c Branch feat/frac-pipeline Document 14/7,066 ++ 5,217 --
sofinico gGov
chore: test: cover getVoters and getAccounts box-name scans
- Neither reader had a single test. Both scan box names by prefix, so a contract-side prefix change made them return [] with nothing going red — and `getVoters` feeds the frontend's voter list, so that silence reached the UI.

- `getVoters` asserts empty before any vote, then exactly the govs who voted. The period's 'o'/'t' boxes already exist at that point, so it also pins that the 'v' filter excludes them.

- Verified by sabotage: flipping 'v' to 0x77 and 'a' to 'b' fails both.
Git Commit aa4249d8 Branch feat/frac-pipeline Document 2/33 ++ 0 --
sofinico gGov
feat: contracts: instances self-fund MBR from the registry on vote
- The registry becomes an MBR vault. `vote()` ends with `checkNeedMBR()` subroutine: if the instance app account is at or below its minimum balance, it inner-calls the registry's new `requestMBR`, which pays it `mbrTopUp` (new global, 5 A, settable via `setMBRTopUp`). Users never pay vote-record MBR, and instances no longer need hand-funding.

- Post-condition, not a threshold. The AVM updates `min_balance` the instant a box is allocated but enforces the requirement only after each (outer) transaction, so the account may sit underwater mid-execution as long as the top-up lands first. However, MBR do is enforced between intermediate states of a group transaction, so a sibling payment later in the same group would be too late.

Nits: `checkNeedMBR()` could sit in more than one place:
- periodVoteCache is always an overwrite, so the call could go before it
- on a re-vote the record write is an overwrite too, so the call could be skipped

Left plain at the end for clarity; the saving would be a handful of opcodes. What is not flexible is that it must stay after the vote record write - that write is the allocation it repairs.
Git Commit 046c95ee Branch feat/frac-pipeline Document 14/7,307 ++ 5,018 --
sofinico gGov
Merge f255762f1dbe9f4992e2b041d2a687b89766634a into 2c7e99522ae6f3ad4c17d8a7ac43712d54bb5ab2
Git Commit 48e94e1c Branch pull/103/merge Document 15/269 ++ 133 --
sofinico gGov
chore: collapse sdk generated clients on github diffs
Git Commit 4f60d9fa Branch feat/frac-pipeline Document 1/1 ++ 0 --
sofinico gGov
chore: frontend: period title in manage list with UTC date range + sample data update
- Show the period title in the /manage list. New Title column, and the whole row is now one `PeriodTableRow` component so the period body is read once per row instead of twice — the title and the ballot label both come from it, and the list query doesn't include it.

- The voting window column now shows dates only, with the full UTC times on hover. This needed a new `formatDateRangeUTC`: the existing `formatDateRange` uses the viewer's timezone, and the manage panel works in UTC, so it could show a different day than the tooltip below it.

- Sample data: election ballots read Support / Veto / Abstain, matching what the manage UI writes.
Git Commit e7d8a568 Branch chore/improvements-on-manage-ui Document 3/93 ++ 46 --
sofinico gGov
fix: frontend: tooltip focus + title loading state in manage periods
Git Commit 82538914 Branch chore/improvements-on-manage-ui Document 2/15 ++ 6 --