Ecosystem metrics
- Commits
- 861
- up 12.7%
- Releases
- 8
- down 20.0%
- Contributors
- 52
- down 1.9%
- Merges
- 38
- up 72.7%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
6529 commits in all time
May 27, 2026 14:50 – Aug 25, 2026 14:50 UTC
docs: correct the upload fee and page-ceiling comments
The SDK constants' fee docstring still described coverAppCallInnerTransactionFees; the upload actually probes with simulate() and derives the fee from groupUsage. Both registries claimed the three-page read covers the 12288 bytes a v13 approval program can reach. The upload carries 3 x 4094 = 12282 (ARC-4 length prefix), and v13's 7 extra pages allow 16384 — so it is short of a program that fills them.
43c63630
feat/avm13-computed-pages
4/18 ++ 12 --
feat: registries open their boxes to foreign reads at create
AVM v13 relaxes box isolation: an app can opt its boxes into reads by any other app. Both registries now do that in a new createApplication, which runs app_params_set(appForeignBoxReads, true). Verified on localnet that the opcode is permitted during the creating call itself, so no separate post-create step is needed - the v13 notes describe enabling access as update-then-run, but that is for apps already deployed. Reads only; writes stay exclusive to the owning app. app_params_set is run by an app on itself, so a contract that is not updatable can never opt in later, which is what preserves intentional immutability. The create is a real ABI method rather than a bare one. It lands in the ARC-56 and the generated clients, it can take arguments later without changing the create shape a second time, and it matches the house style - FracDelegationInstance already has an ABI createApplication invoked by selector from the registry factory. Both createRegistry paths switch from create.bare() to the method call; every other caller routes through createRegistry. Two consequences of the create no longer being bare, both found by the suite: - deployRegistryWithoutBytecode in the period e2e spec deploys a registry directly and was still doing a bare create, which is no longer routed and fails with an err on the OnCompletion match. - The ATST unit specs. ATST holds a contract with any create method in `isCreating` and rejects every ABI call with "method can not be called while creating" until a create method runs - but ATST 1.2.0 predates v13 and cannot execute app_params_set, so the real body cannot run in the emulator. The registry test subclass overrides createApplication with a no-op and calls it after construction; the opt-in itself is covered e2e. Follow-up worth taking: with foreign reads on, much of the registries' readonly getter and log-dumping surface (getDelegation, getPeriodSummary, logCommitteePages, getEscrow, ...) exists only because cross-app box reads used to be impossible. Not touched here. Suite green: 539 passed (2 new).
9893837d
feat/avm13-foreign-box-reads
22/6,652 ++ 6,099 --
docs: give the frac SDK's extraProgramPages comment its own numbers
The block was copied verbatim from the ggov SDK and still named GGovRegistry and its ~5.6KB program / 6144-byte exact ceiling. FracDelegationRegistry is ~2.9KB, so exact sizing gives it a 4096-byte ceiling; the argument for the spare page is unchanged, only the figures were wrong. Also narrows the parenthetical to instance apps, which are the only children this registry spawns.
b7f8375e
feat/avm13-computed-pages
1/7 ++ 7 --
feat: registries open their boxes to foreign reads at create
AVM v13 relaxes box isolation: an app can opt its boxes into reads by any other app. Both registries now do that in a new createApplication, which runs app_params_set(appForeignBoxReads, true). Verified on localnet that the opcode is permitted during the creating call itself, so no separate post-create step is needed - the v13 notes describe enabling access as update-then-run, but that is for apps already deployed. Reads only; writes stay exclusive to the owning app. app_params_set is run by an app on itself, so a contract that is not updatable can never opt in later, which is what preserves intentional immutability. The create is a real ABI method rather than a bare one. It lands in the ARC-56 and the generated clients, it can take arguments later without changing the create shape a second time, and it matches the house style - FracDelegationInstance already has an ABI createApplication invoked by selector from the registry factory. Both createRegistry paths switch from create.bare() to the method call; every other caller routes through createRegistry. Two consequences of the create no longer being bare, both found by the suite: - deployRegistryWithoutBytecode in the period e2e spec deploys a registry directly and was still doing a bare create, which is no longer routed and fails with an err on the OnCompletion match. - The ATST unit specs. ATST holds a contract with any create method in `isCreating` and rejects every ABI call with "method can not be called while creating" until a create method runs - but ATST 1.2.0 predates v13 and cannot execute app_params_set, so the real body cannot run in the emulator. The registry test subclass overrides createApplication with a no-op and calls it after construction; the opt-in itself is covered e2e. Follow-up worth taking: with foreign reads on, much of the registries' readonly getter and log-dumping surface (getDelegation, getPeriodSummary, logCommitteePages, getEscrow, ...) exists only because cross-app box reads used to be impossible. Not touched here. Suite green: 539 passed (2 new).
a8f77252
feat/avm13-foreign-box-reads
22/6,652 ++ 6,099 --
fix: mirror the 7-page guard into the frac SDK's extraProgramPages copy
The guard landed on the ggov-sdk copy only; the two files are meant to be identical, so the frac registry deploy would still have asked for more extra program pages than AVM v13 allows and been rejected by the network instead of by the SDK.
93319e30
feat/avm13-computed-pages
1/3 ++ 2 --
feat: fill and read back all three approval pages
The third page reached the ABI but nothing could use it: createPeriod still read the box back as two pages, a single app call could only buy 8192 bytes of box write budget, and both SDK wrappers passed page3 empty. - createPeriod reads three pages, like createInstance, so a program over 8192 bytes is no longer truncated at appcreate time. Both read at the running offset, so an empty trailing page stays a no-op. - splitApprovalPages fills all three. Its ceiling is 12282 bytes (3 * 4094), which is as much as v13's 16KB total-application-arguments cap allows: four encoded pages plus a method selector is over it. - Box I/O budget is pooled across the group, so the upload spreads the references it needs over the upload call plus no-op increaseBudget companions — 12 references, two app calls, for a full three-page program. - addPeriod/addInstance size the group's reference slots from the length of the box actually deployed, padding the same way when the read outgrows one call's 8 slots. At today's sizes (period 4066, instance 6310) neither group gains a transaction. Tests upload a 10000-byte program on both registries — past the 8188 two arguments carry and past the 8192 one call's references buy — and read the box back byte-for-byte. Creating an app from a >8192-byte box is not covered: that needs a valid 12KB TEAL program, which nothing here has.
88ea4878
feat/avm13-computed-pages
23/5,660 ++ 4,088 --
Merge 24242cb001acc2328900a9bb8663595ae65cc2d6 into 543110998c63b82a7f517c631c32ae62b9fbe9e3
67431c29
pull/943/merge
No file changes
Merge 37c276a4d489684d8859b98a6cbc1f81ad3f18a3 into 543110998c63b82a7f517c631c32ae62b9fbe9e3
364fd788
pull/938/merge
No file changes
Merge 9b55220693665bfc9e0027957402a6e0b439c54c into 543110998c63b82a7f517c631c32ae62b9fbe9e3
0683bb23
pull/908/merge
No file changes
Merge 0fb747f3e1701d52e1a888978f50cdc9478ed233 into 543110998c63b82a7f517c631c32ae62b9fbe9e3
379843da
pull/914/merge
No file changes
Merge c3c8c50e4cb624fe7965be546800c74771819b90 into 543110998c63b82a7f517c631c32ae62b9fbe9e3
005d9d22
pull/939/merge
No file changes