Ecosystem metrics
- New Repos
- 5
- down 80.0%
- Commits
- 760
- up 1.3%
- Releases
- 12
- up 200.0%
- Contributors
- 61
- up 19.6%
- Merges
- 13
- down 56.7%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
10659 commits in all time
May 13, 2026 10:19 – Aug 11, 2026 10:19 UTC
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.
461e5246
feat/live-voting-mbr
2/33 ++ 0 --
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.
04800ff9
feat/live-voting-mbr
5/93 ++ 26 --
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.
2c2a5b0b
feat/live-voting-mbr
8/297 ++ 9 --
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.
478dd1ee
feat/live-voting-mbr
14/7,307 ++ 5,018 --
Merge 612c104d162d8d7ddfa2ad28fba39c696191e1d2 into 5073ca134b7c4c5721fcfbe976d5c364a5cc777a
8b073007
pull/444/merge
1/3,258 ++ 2,724 --
Merge 6f07c68e03ed7e2380dc76dc0b634048e550fad6 into 68e036affd9e62d0a64dcdb3f252eb0ee2e052d3
6d2248c2
pull/6689/merge
2/3 ++ 3 --
Merge 134f6b50caa904c055ddfbf9448a87ffff806db7 into 68e036affd9e62d0a64dcdb3f252eb0ee2e052d3
a8e48aa0
pull/6688/merge
2/3 ++ 3 --
Merge 991c77b886ea0c88c469cf8c56e44f7ac117a008 into 68e036affd9e62d0a64dcdb3f252eb0ee2e052d3
a9d781f8
pull/6687/merge
2/12 ++ 12 --
Merge d8e9246113f1c399ddf12d705c554309af12e841 into 0dfa4474062d89f435e29aef93d44dd6d8277d5a
ff894eaf
pull/402/merge
5/125 ++ 91 --
Merge e1b0f17c27ad12571000b4e1d5357f788c746db8 into d1dfc389785d4cbd0fe3252d98387875c625bcc5
f84f0a32
pull/899/merge
1/1 ++ 1 --
build(deps-dev): update eslint requirement from ^10.8.0 to ^10.8.1
Updates the requirements on [eslint](https://github.com/eslint/eslint) to permit the latest version. - [Release notes](https://github.com/eslint/eslint/releases) - [Commits](https://github.com/eslint/eslint/compare/v10.8.0...v10.8.1) --- updated-dependencies: - dependency-name: eslint dependency-version: 10.8.1 dependency-type: direct:development ... Signed-off-by: dependabot[bot] <support@github.com>
e1b0f17c
dependabot/npm_and_yarn/eslint-tw-10.8.1
1/1 ++ 1 --
build(deps-dev): bump @typescript-eslint/parser from 8.67.0 to 8.66.0
Bumps [@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser) from 8.67.0 to 8.66.0. - [Release notes](https://github.com/typescript-eslint/typescript-eslint/releases) - [Changelog](https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md) - [Commits](https://github.com/typescript-eslint/typescript-eslint/commits/v8.66.0/packages/parser) --- updated-dependencies: - dependency-name: "@typescript-eslint/parser" dependency-version: 8.66.0 dependency-type: direct:development update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
aae43563
dependabot/npm_and_yarn/typescript-eslint/parser-8.66.0
1/1 ++ 1 --
Merge 09daa85adf7a25448412c6b9fc309f09a832d39a into 7d2d52615e262b1e35612c8890f0001f480f3758
2f2fe5e3
pull/385/merge
23/1,170 ++ 336 --
refactor: fix progress bars
09daa85a
pull/385/head
3/79 ++ 35 --
feat: sdk: 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.
864ae1af
feat/live-voting-mbr
17/543 ++ 261 --
Merge 3c0a7c2c0b415cb926d6d67204a2168dbd7a3be8 into 967fcacfacdf0b3c91efdcc5239ef0360acb99cf
ddaa80cb
pull/835/merge
11/70 ++ 0 --