Latest Repo Discovered
wen-tools
TypeScript
·
MIT License
Top Contributor of the Month
10868 commits in all time
Jan 20, 2026 02:32 – Apr 20, 2026 02:32 UTC
test: add regression test for OOB shl/shr constant folding
The intrinsic simplifier folds shl and shr even when the shift amount is >= 64 (valid range 0–63). The AVM panics with "shl arg too big" / "shr arg too big", but the optimizer silently folds to 0. Two separate contracts (ShlFoldOOB, ShrFoldOOB) allow the on-chain tests to verify both error messages independently.
e731e489
fix/shift-fold-oob
103/959 ++ 0 --
fix: guard shl/shr constant fold against OOB shift amount
The shl/shr folding paths had no bounds check on the shift amount. For shift >= 64, the AVM panics with "shl/shr arg too big", but the optimizer computed (a << b) % 2^64 or a >> b, silently producing 0. Now the match cases have guard clauses `if b_const < 64`, skipping the fold when the shift would be out of bounds.
749dcff7
fix/shift-fold-oob
2/44 ++ 2 --
fix: guard setbit uint64 constant fold against OOB index
The setbit uint64 folding path had no bounds check on the bit index. For index >= 64, the AVM panics with "setbit index > 63 with Uint", but the optimizer computed source | (1 << index) or source & ~(1 << index), producing either an oversized value or silently returning the source. Now returns None (skip fold) when index >= 64, preserving the runtime panic.
c09ad06e
main
2/44 ++ 0 --
fix: guard setbit uint64 constant fold against OOB index
The setbit uint64 folding path had no bounds check on the bit index. For index >= 64, the AVM panics with "setbit index > 63 with Uint", but the optimizer computed source | (1 << index) or source & ~(1 << index), producing either an oversized value or silently returning the source. Now returns None (skip fold) when index >= 64, preserving the runtime panic.
baa460fd
pull/698/head
2/44 ++ 0 --
fix: bind mint service to canonical app id instead of per-wallet deploy
Frontend was calling factory.deploy() on every wallet, which is per-sender — each new wallet deployed its own forked Algoku app, fragmenting mints across apps the leaderboard never queries. Now binds via factory.getAppClientById when a canonical app id is configured (testnet/mainnet); deploy fallback is preserved for localnet/dev. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
6d632506
main
2/25 ++ 14 --
ANGULAR: Whale Watcher free and plan
79925a67
master
8/232 ++ 26 --
test: generate with new names
537493ce
test/wallet_utils_stories
6/24 ++ 24 --
Merge branch 'main' of https://github.com/code-alexander/algoku
afa3262d
main
1/3 ++ 53 --
refactor: UI improvements + mint state machine
4e0ac2a7
main
18/1,212 ++ 319 --
Merge d11d43897d1fcc045fed5f3d349bc4cf8379456e into 1ad715d077326f7bde11a896b084351b712e6302
6e19293c
pull/6615/merge
2/70 ++ 22 --
protocol: find allocbound directives from module root
d11d4389
pull/6615/head
2/70 ++ 22 --