Ecosystem metrics
- New Repos
- 25
- New
- Commits
- 720
- down 2.4%
- Releases
- 5
- up 66.7%
- Contributors
- 47
- down 17.5%
- Merges
- 26
- up 36.8%
Activity Overview
Commits and releases over time
- Commits
- Releases
- Authors
Repository Explorer
No repositories match that filter.
10719 commits in all time
May 07, 2026 16:40 – Aug 05, 2026 16:40 UTC
Merge ffd0657c6c8db9e612ca713966b2393bcb2d03c5 into dda085879f1868c14ccb115fb5f92f2b4f75c741
d61511fb
pull/6690/merge
38/2,518 ++ 3,923 --
Doc: Derive txn Note size limit from consensus bounds
The Note field doc hardcoded 1024 bytes, which went stale when v42 raised MaxAbsoluteTxnNoteBytes to 4096. Build it with Sprintf from bounds.MaxTxnNoteBytes, the same cross-version maximum the decoder uses, so the generated docs cannot drift again. Unlike the limits derived from evaluator constants, this changes generated output: 1024 becomes 4096 everywhere the Note doc appears.
ffd0657c
pull/6690/head
27/78 ++ 76 --
Merge 573f35ca525792c41bfcb0daad0bf5641f61856e into b8f983bbc7ec0565bb02686dff661b8d694c3ae5
884c341e
pull/594/merge
2/159 ++ 307 --
Merge e3967c6814e681eb68c57079d47a393387b7e948 into dda085879f1868c14ccb115fb5f92f2b4f75c741
09e3ca90
pull/6696/merge
7/10 ++ 10 --
agreement: bump sortition dependency to v1.1.1
e3967c68
pull/6696/head
7/10 ++ 10 --
docs: rewrite assets concept page around the runnable examples
573f35ca
feat/docs-assets
2/159 ++ 307 --
Doc: Correct README, tutorial, and jsonspec
These files are hand-maintained, not generated, and had drifted from the implementation: - tutorial.md described the pre-v41 LogicSig world. It now covers the four signature methods including post-quantum signatures, the LMsig and PQsig LogicSig fields and how they bind the authorizer's address into the signed message, that at most one delegation signature may be present, that validation is against the authorizer (AuthAddr when rekeyed), and that legacy Msig is rejected from consensus v41 onward, with goal's --legacy-msig escape hatch. Also fixes the "LogicSic" typo. - jsonspec.md conflated rules that json_ref enforces while parsing the whole text with rules enforced only on the extracted value. Classify each rule as whole-text or extraction. In particular, the old "Raw non-unicode characters not accepted" claim was wrong: invalid utf-8 parses, and becomes U+FFFD when a string value containing it is extracted. A \u escape with non-hex digits parses but errors on extraction (it becomes U+FFFD only in a key), and a null value parses but always errors on extraction. - TestParseRawNonUnicodeChar never tested invalid utf-8 (its input was valid utf-8 and its error cases failed for other reasons). It now feeds a genuine invalid byte through parse and extraction and asserts the U+FFFD replacement. - README.md points at the generated stack-types table and lists the assembler pseudo-ops (int, byte, addr, method) that appear in no opcode table.
fa5cc851
pull/6690/head
4/84 ++ 25 --
Doc: Correct and expand opcode descriptions
Document behavior that the descriptions omitted or got wrong: - The v13 box opcodes: shared boxAccessExtra text states the name length rule (1-64 bytes, MaxAppKeyLen), the availability rule, and the ClearState ban for every box opcode, not only those whose short description mentioned them. foreignBoxExtra spells out the app_box_* authorization matrix (AppForeignBoxReads for reads, AppFamilyBoxAccess plus same creator for everything else) and the family reentrancy rule; boxFamilyExtra applies the same reentrancy rule to an app's own boxes once it opts in. app_params_set explains what setting each flag grants. - itxn_begin's Fee description matched neither the group-based fee logic nor when fees are checked. Describe the actual default: the amount that would make the group's fees sufficient so far, with the new transaction counted as one base fee, and note that the real check happens at itxn_submit. - bnz documents the v13 varint offset encoding (previously it described only the two-byte form), including the forward/back reference points and that a branch to the start of its own instruction cannot be encoded. callsub points at bnz for the encoding. - State failure conditions: shl/shr fail if B > 63, divmodw fails on a zero divisor, bzero fails above 4096. - balance/min_balance params claimed an application id argument they do not take. voter_params_get and online_stake answer as of the balance round (320 rounds back), not the agreement round. - json_ref links to the JSON spec by URL (the relative link only worked in the repo) and assorted typo/spacing fixes, including the ec_multi_scalar_mul naming note that compared the opcode to itself.
fa60387d
pull/6690/head
27/832 ++ 497 --
opdoc: Return docVersion to a hand-bumped constant
Deriving docVersion from the current consensus LogicSigVersion meant new opcodes could not be documented or checked in CI until their consensus version was released. Make it a manually bumped package constant again, as it was before, so in-progress opcodes can be documented during development. The LogicSigVersion field in the langspec files stays consensus-derived, since it reports what the chain currently accepts, which can lag docVersion. Generated output is unchanged.
5090bc5e
pull/6690/head
1/8 ++ 4 --
Doc: Derive size limits in opcode docs from evaluator constants
The 4096 and 1024 byte limits in the bzero, concat, log, ec_pairing_check, and ec_multi_scalar_mul descriptions were hardcoded. Build them with Sprintf from maxStringSize and maxLogSize, the same constants the evaluator enforces, so the generated docs cannot drift if those values ever change. Generated output is unchanged.
f5cc69a8
pull/6690/head
1/6 ++ 5 --
opdoc: Derive ArgEnum from OpSpecs, fail on undocumented fields
The ArgEnum table in langspec was built from a hand-maintained switch on opcode names, which had drifted from reality: ec_add and the other ec_* opcodes, mimc, poseidon2, voter_params_get, itxnas, and gitxnas had field groups but no documented enum. Derive the enum from the field group attached to the spec's immediates instead, so a new opcode with a FieldGroup is documented without anyone remembering to update opdoc. itxn_field keeps an explicit override because its spec deliberately carries the full TxnFields (for assembler errors) while only the settable fields belong in the docs. Consequently the txn-family opcodes (txn, gtxn, gtxns, itxn, gitxn) no longer list array fields in their ArgEnum. That is more accurate: their single-immediate forms reject array fields at assembly, and the array opcodes (txna et al.) still list them. Downstream langspec consumers will see this change. Other opdoc fixes: - fieldGroupMarkdown exits nonzero on an undocumented field, as integerConstantsTableMarkdown already did, instead of emitting an empty NOTES cell. This is how every block field shipped undocumented. - docVersion comes from ConsensusCurrentVersion's LogicSigVersion instead of a hardcoded 13, so it tracks future promotions without publishing vFuture opcodes. - avm-appendix-a.md is written by opdoc for the newest version, rather than the Makefile picking a file out of a glob, which could not tell a stale TEAL_opcodes_v99.md from a real one. - The Makefile no longer claims the hand-maintained README.md as a generated target, and clean removes all doc intermediates. - .gitignore explains the intermediate scheme and negates the hand-written markdown files so new ones are visible to git add.
69061386
pull/6690/head
16/1,337 ++ 3,150 --
Merge 480415040887db2cfd25dc16f2196156d4b5c8ae into 95d55a9b81145fcbc0a09023680b96b684f57b64
5a4460e6
pull/595/merge
20/1,759 ++ 8 --
Merge 2130c2fd0826b5e8b15d16979455b15a4a5e8a19 into 5a4460e64971e45ca321f2ece48d5e1dce36e97a
64802c86
pull/596/merge
8/345 ++ 63 --
AVM: Distinguish varint branch labels from int16 labels
v13 branches (bnz, bz, b, callsub) encode their offset as a binary.Varint, but their OpSpecs reused immLabel, the two-byte big-endian kind. That forced the disassembler to consult spec.Version to pick a decoder, and the generated docs described the v13 branch immediate as "int16 (big-endian)". Give the varint encoding its own immediate kind, immVarintLabel, so the encoding is a property of the immediate itself, and key disassembly on the kind rather than the version. switch and match keep two-byte offsets at every version, so immLabels is unchanged. Only regenerated v13 docs change: the branch immediates now read "varint (zigzag)".
81bc8cc7
pull/6690/head
5/19 ++ 13 --
AVM: gitxn takes scalar txn fields, like txn/gtxn/itxn
gitxn's field immediate carried the full TxnFields group even though array fields fail at runtime (fetchField rejects them when no index is supplied). txn, gtxn, gtxns, and itxn all use TxnScalarFields for the same reason. FieldGroup.SpecByName respects the sparse names array, so "gitxn 0 Accounts" now fails at assembly with a helpful error instead of assembling into bytecode that always fails at runtime. Disassembly of such (always-invalid) bytecode now errors, matching the other txn opcodes. In the generated docs, gitxn's field immediate now references the same "txn Fields" table the other txn opcodes point at.
ecd021bc
pull/6690/head
17/17 ++ 17 --
Doc: Document every opcode immediate field
Several field groups shipped with empty notes because their specs had no doc string at all (the "no doc list?" stubs): every block field, the base64_decode encodings, the json_ref return types, and the vrf_verify standard. Add a doc field to each spec so the generated NOTES columns are populated. Also correct VotePK and SelectionPK, which were described as "32 byte address": they are a participation public key and a VRF public key. And fix two copy-paste comments that said VrfStandards and BlockFields describe the json_ref immediate.
542c03ee
pull/6690/head
14/142 ++ 141 --
test: rename the pq address test to canonical_address_from_pq_key
48041504
feat/pq
1/1 ++ 1 --
Merge 9d2172f5606cf49efd4670676ee049ec3f83cb54 into 4938ea23a3c03b815d217fd4a7c673684cfdba5e
7f9d78c5
pull/1689/merge
2/62 ++ 60 --
Merge 3f7765d8c636d0bbdb5d41e410c9cdb1ac6194ae into dda085879f1868c14ccb115fb5f92f2b4f75c741
caee95dd
pull/6695/merge
4/35 ++ 4 --
Fix reversed costs arguments
Added a test so that one can easily insert some costs checks that ensure you've got the roughly the right costs.
3f7765d8
pull/6695/head
4/35 ++ 4 --
Merge fdb2530f2a8bbac64a91e6226e0425e56382d70c into dda085879f1868c14ccb115fb5f92f2b4f75c741
8f3d6021
pull/6674/merge
27/2,099 ++ 1,387 --
network: replace PeersP2PConnectionsIn/Out with transport connection views
Address review feedback: PeerOption now gains PeersTransportConnectionsIn/Out, a transport-level view implemented symmetrically by both networks instead of a libp2p-only option. WebsocketNetwork returns a proxy for each connected peer; P2PNetwork returns a proxy for each libp2p connection (including pubsub-/DHT- only peers). Since the transport view enumerates every connection exactly once, the REST handler no longer combines gossip and transport options or deduplicates by address. Also renames peerStatuses to convertPeers and maps network types via a lookup table with a ws default.
fdb2530f
pull/6674/head
9/105 ++ 76 --
Merge 4fb7d5a74e855225413c33831502e171122cbad8 into dda085879f1868c14ccb115fb5f92f2b4f75c741
7998dfe5
pull/6659/merge
13/2,549 ++ 168 --
Merge 8716f2e53c07576a588b86fb4dcc3901284e4b5a into 95d55a9b81145fcbc0a09023680b96b684f57b64
5fcaefa0
pull/595/merge
20/1,759 ++ 8 --
Merge 2130c2fd0826b5e8b15d16979455b15a4a5e8a19 into 5fcaefa09a2b14631d88271dcb021c18d9068b31
04e7baef
pull/596/merge
8/345 ++ 63 --