Skip to content

refactor:sas bpf loader instruction slices - #1369

Open
amilz wants to merge 1 commit into
masterfrom
refactor/HOO-1308-sas-bpf-loader-instruction-slices
Open

amilz wants to merge 1 commit into
masterfrom
refactor/HOO-1308-sas-bpf-loader-instruction-slices

Conversation

@amilz

@amilz amilz commented Oct 1, 2026 •

Copy link
Copy Markdown
Collaborator

Continuing work on kit migration phase 2. Migrating decoder. includes latest sas lib
Closes hoo 1308

@vercel

vercel Bot commented Oct 1, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
explorer Ready Ready Preview Oct 9, 2026 3:07pm UTC

Request Review

@linear

linear Bot commented Oct 1, 2026

Copy link
Copy Markdown

HOO-1308

@greptile-apps

greptile-apps Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Medium impact] The PR appears safe to merge; no actionable new issue was established.

Summary

Moves BPF Loader and Solana Attestation decoding into feature slices and registers both parsers with the shared dispatcher.

  • BPF Loader 2 instructions now reach the same detail card from parsed data or raw bytes.
  • SAS instructions now flow through the shared parser to their detail card.

Reviews (3) · Last reviewed commit: "refactor(instructions): route bpf loader..." · Reviewed by Greptile

Comment thread app/tx/instruction-parser-dispatcher.ts
@github-actions

github-actions Bot commented Oct 1, 2026 •

Copy link
Copy Markdown
Contributor

📦 Bundle change vs master

No route size changes.

Full route table (fresh build)

Gzipped first-load sizes from .next/diagnostics/route-bundle-stats.json, rounded to reduce noise; a cell keeps its previous value while fresh bytes round within one step of it. Size is First Load JS minus the chunks shared by all routes; routes with no client JS show —.

Type Route Size First Load JS
Static / 140 kB 550 kB
Static /_not-found 0 B 420 kB
Dynamic /address/[address] 470 kB 890 kB
Dynamic /address/[address]/account-data 480 kB 900 kB
Dynamic /address/[address]/anchor-account 440 kB 850 kB
Dynamic /address/[address]/attestation 440 kB 850 kB
Dynamic /address/[address]/attributes 440 kB 850 kB
Dynamic /address/[address]/blockhashes 440 kB 850 kB
Dynamic /address/[address]/compression 440 kB 850 kB
Dynamic /address/[address]/concurrent-merkle-tree 440 kB 850 kB
Dynamic /address/[address]/domains 440 kB 850 kB
Dynamic /address/[address]/entries 440 kB 850 kB
Dynamic /address/[address]/feature-gate 440 kB 850 kB
Dynamic /address/[address]/idl 550 kB 970 kB
Dynamic /address/[address]/instructions 450 kB 860 kB
Dynamic /address/[address]/metadata 440 kB 850 kB
Dynamic /address/[address]/nftoken-collection-nfts 440 kB 850 kB
Dynamic /address/[address]/program-multisig 440 kB 850 kB
Dynamic /address/[address]/rewards 440 kB 850 kB
Dynamic /address/[address]/security 440 kB 860 kB
Dynamic /address/[address]/slot-hashes 440 kB 850 kB
Dynamic /address/[address]/stake-history 440 kB 850 kB
Dynamic /address/[address]/subscriptions 440 kB 850 kB
Dynamic /address/[address]/token-extensions 440 kB 860 kB
Dynamic /address/[address]/tokens 450 kB 870 kB
Dynamic /address/[address]/transfers 450 kB 860 kB
Dynamic /address/[address]/verified-build 440 kB 860 kB
Dynamic /address/[address]/vote-history 440 kB 850 kB
Dynamic /api/ans-domains/[address] — —
Dynamic /api/domain-info/[domain] — —
Dynamic /api/geo-location — —
Dynamic /api/idl-latest — —
Dynamic /api/log-drain — —
Dynamic /api/metadata/proxy — —
Dynamic /api/ping/[network] — —
Dynamic /api/search — —
Dynamic /api/security-txt — —
Dynamic /api/slot-time — —
Dynamic /api/sns-domains/[address] — —
Dynamic /api/stake-rewards/[address] — —
Dynamic /api/supply — —
Dynamic /api/token-image/[mintAddress] — —
Dynamic /api/token-info — —
Dynamic /api/token-market-data/[address] — —
Dynamic /api/token-price/[mintAddress] — —
Dynamic /api/verification/coingecko/[address] — —
Dynamic /api/verification/jupiter/[mintAddress] — —
Dynamic /api/verification/rugcheck/[mintAddress] — —
Dynamic /block/[slot] 170 kB 590 kB
Dynamic /block/[slot]/accounts 150 kB 570 kB
Dynamic /block/[slot]/programs 160 kB 570 kB
Dynamic /block/[slot]/rewards 160 kB 580 kB
Dynamic /epoch/[epoch] 20 kB 430 kB
Static /feature-gates 50 kB 470 kB
Dynamic /mcp — —
Static /mcp/start 30 kB 440 kB
Dynamic /og/feature-gate/[address] — —
Dynamic /og/receipt/[signature] — —
Dynamic /og/tx/[signature] — —
Static /opengraph-image.png — —
Dynamic /robots.txt — —
Static /tos 10 kB 430 kB
Dynamic /tx/[signature] 490 kB 900 kB
Dynamic /tx/[signature]/inspect 470 kB 890 kB
Static /tx/inspector 470 kB 890 kB

@amilz
amilz force-pushed the refactor/HOO-1308-sas-bpf-loader-instruction-slices branch from 39c81e1 to 40b8392 Compare October 6, 2026 21:12
@amilz amilz self-assigned this Oct 6, 2026
@amilz
amilz requested review from Woody4618 and askov October 6, 2026 21:18
@askov

askov commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator

@amilz Hey! All looks good, but let's resolve the conflicts and review the final state one more time, because there are some behavior-related conflicts now

… the dispatcher

Move the BPF Loader 2 and Solana Attestation Service cards into
decode-instruction-bpf-loader and decode-instruction-sas slices and register
both parsers in the dispatcher. BPF Loader 2 gains a byte path decoded with
kit codecs; SAS decodes through sas-lib's combined instruction parser and
falls back to an unknown card instead of throwing. The inspector now renders
both programs.
@amilz
amilz force-pushed the refactor/HOO-1308-sas-bpf-loader-instruction-slices branch from 40b8392 to 43039a7 Compare October 9, 2026 15:06
@amilz

amilz commented Oct 9, 2026

Copy link
Copy Markdown
Collaborator Author

@askov @Woody4618 rebased!

This branch was successfully deployed

1 active deployment
Preview — 43039a7b Deployed Oct 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants