Skip to content

docs(readme): align mainnet program IDs, instruction tags, and hyperp mode#2146

Open
asastuai wants to merge 1 commit intodcccrypto:mainfrom
asastuai:docs/readme-program-ids-tags-hyperp
Open

docs(readme): align mainnet program IDs, instruction tags, and hyperp mode#2146
asastuai wants to merge 1 commit intodcccrypto:mainfrom
asastuai:docs/readme-program-ids-tags-hyperp

Conversation

@asastuai
Copy link
Copy Markdown

@asastuai asastuai commented May 6, 2026

what

three things in the top-level README that drifted out of sync with the rest of the ecosystem. all in adjacent sections so I bundled them into one PR.

  1. mainnet program ID is stale. the README listed GM8zjJ8LTBMv9xEsverh6H6wLyevgMHEJXcEzyY3rY24, which has had no transactions since 2026-03-11 and is now frozen (upgrade authority = none). the live mainnet program is ESa89R5Es3rJ5mnwGybVRG1GrNt9etP11Z5V2QWD4edv. that's the one already in percolator-sdk/README.md and in the declare_id! of squid's feat: portfolio PnL tracking + liquidation warnings (PERC-039) #267 in percolator-prog. the launch README also didn't include stake or nft addresses that the SDK README does carry.

  2. instruction tag table is out of sync with percolator-prog/src/tags.rs. the README's "Key Instructions" table had tag numbers that don't match the current program. some examples:

    • README said Tag 8 = KeeperCrank. program defines TAG_KEEPER_CRANK = 5.
    • README said Tag 23 = RenounceAdmin. program has no RenounceAdmin constant; tag 23 is TAG_WITHDRAW_INSURANCE_LIMITED.
    • README said the program covers "Tags 0-28". program currently defines 80 tags up to TAG_UPDATE_AUTHORITY = 83 (gaps at 16, 17, 31, 57).

    a contributor or integrator using the README to construct instructions sends to the wrong handler.

  3. hyperp mode is supported and tested but never explained in the README. tests/t3-hyperp-lifecycle.ts and tests/t10-pricing-engine.ts both exercise hyperp, but the README only mentions "hyperp" inside test filenames. new integrators have to dig into percolator-prog to learn what it is.

why

mainnet IDs verified onchain via getSignaturesForAddress against api.mainnet-beta.solana.com on 2026-05-05:

address source latest tx
GM8zjJ8LT... launch README (mainnet) 2026-03-11 22:51 UTC
ESa89R5Es... sdk README (mainnet) active today

tag list cross-referenced from dcccrypto/percolator-prog/src/tags.rs (current main).

changes

  • README.md: replace inline comment Tags 0-28 with a pointer to percolator-prog/src/tags.rs as source of truth.
  • README.md: add t10-pricing-engine.ts and t10-pricing-edge-cases.ts to the tests tree.
  • README.md: replace the misnumbered "Key Instructions" table with a grouped overview by use case, with link to tags.rs for canonical numbers.
  • README.md: rewrite the Deployed Programs section. mainnet now uses ESa89R5Es.... add stake (DC5fovFQD5SZYsetwvEqd4Wi4PFY1Yfnc669VMe6oa7F) and nft (FqhKJT9gtScjrmfUuRMjeg7cXNpif1fqsy5Jh65tJmTS) addresses.
  • README.md: add t10s to the integration test command list.
  • new subsection under "On-Chain Program" (after "Slab Layout"): ### Pricing Modes — documents oracle mode vs hyperp mode in 6-8 lines, with pointers to t3-hyperp-lifecycle.ts and percolator-prog/README.md.

open question

three READMEs (percolator-launch, percolator-sdk, percolator-prog) each carry their own program-ID table. the IDs drift between them, this PR is the third instance of fixing one of those drifts I noticed in a week. worth opening a separate issue to discuss centralizing program IDs in one source (e.g. exporting from @percolator/sdk and having every README reference the SDK rather than hardcoding addresses). happy to open that issue if you want.

caveat

the launch repo no longer contains a program/ directory locally, per the recent monorepo split documented in docs/plans/2026-02-24-repo-split-plan.md. the Project Structure tree at lines 208-210 still references it. this PR keeps the entry but the comment now points to percolator-prog as the source of truth. a fuller restructure of "Project Structure" felt out of scope here, flagging for follow-up.

test plan

  • pnpm install succeeds
  • no code changes; README renders correctly on GitHub
  • all three new mainnet program IDs (ESa89R5Es..., DC5fovFQ..., FqhKJT9g...) exist on mainnet via getAccountInfo
  • tags.rs link resolves

Summary by CodeRabbit

  • Documentation
    • Introduced Pricing Modes and Instruction Tags sections to the On-Chain Program chapter.
    • Updated mainnet deployment addresses for Percolator small tier, Matcher, Stake, and NFT programs.
    • Added new test references and documentation for pricing engine and edge case testing scenarios.

@asastuai asastuai requested a review from dcccrypto as a code owner May 6, 2026 20:11
@vercel
Copy link
Copy Markdown

vercel Bot commented May 6, 2026

@asastuai is attempting to deploy a commit to the Khubair Nasir's projects Team on Vercel.

A member of the Team first needs to authorize it.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 6, 2026

📝 Walkthrough

Walkthrough

README documentation updated to reflect new mainnet program addresses for Percolator, Matcher, Stake, and NFT, introduce Pricing Modes and Instruction Tags sections, and document new pricing-focused tests with execution commands.

Changes

Documentation Updates

Layer / File(s) Summary
Program API Reference
README.md (lines 209–211)
On-chain program API description updated to reference the canonical instruction tag inventory in percolator-prog/src/tags.rs instead of a fixed instruction handler count.
Feature Documentation
README.md (lines 348–375)
New "Pricing Modes" section documents oracle mode and hyperp mode behavior. New "Instruction Tags" section introduces 80 instruction tags grouped by use case with reference to canonical source.
Deployed Program Addresses
README.md (lines 390–396)
Mainnet addresses added for Percolator (small tier), Matcher, Stake, and NFT programs.
Testing References
README.md (lines 221–223, 421–423)
New test files t10-pricing-engine.ts and t10-pricing-edge-cases.ts documented with tsx execution commands in the Testing section.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~3 minutes

Possibly related PRs

Suggested reviewers

  • dcccrypto

Poem

🐰 A rabbit hops through pages bright,
New pricing modes shine in the light,
Mainnet addresses, tags all arranged,
Instruction tags documented and changed,
Tests now guide the way forward!

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'docs(readme): align mainnet program IDs, instruction tags, and hyperp mode' directly corresponds to the three main changes documented in the PR objectives: correcting mainnet program IDs, fixing instruction tags discrepancies, and adding hyperp mode documentation.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Tip

💬 Introducing Slack Agent: The best way for teams to turn conversations into code.

Slack Agent is built on CodeRabbit's deep understanding of your code, so your team can collaborate across the entire SDLC without losing context.

  • Generate code and open pull requests
  • Plan features and break down work
  • Investigate incidents and troubleshoot customer tickets together
  • Automate recurring tasks and respond to alerts with triggers
  • Summarize progress and report instantly

Built for teams:

  • Shared memory across your entire org—no repeating context
  • Per-thread sandboxes to safely plan and execute work
  • Governance built-in—scoped access, auditability, and budget controls

One agent for your entire SDLC. Right inside Slack.

👉 Get started


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🧹 Nitpick comments (1)
README.md (1)

359-360: ⚡ Quick win

Avoid hardcoding the instruction-tag count.

Line 359 will drift again as tags evolve. Since you already link tags.rs, prefer wording like “see canonical inventory” without a fixed total.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@README.md` around lines 359 - 360, Replace the hardcoded "80 instruction
tags" text with a non-numeric reference to the canonical inventory by rewording
the sentence to point readers to the linked tags.rs (the canonical
instruction-tag list) instead of asserting a fixed total; update the README
phrasing around "instruction tags" to something like "see the canonical
inventory in tags.rs" so it won't drift as tags evolve.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In `@README.md`:
- Around line 359-360: Replace the hardcoded "80 instruction tags" text with a
non-numeric reference to the canonical inventory by rewording the sentence to
point readers to the linked tags.rs (the canonical instruction-tag list) instead
of asserting a fixed total; update the README phrasing around "instruction tags"
to something like "see the canonical inventory in tags.rs" so it won't drift as
tags evolve.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f3c3a7fb-28ac-4078-98f8-83c1d97df0d1

📥 Commits

Reviewing files that changed from the base of the PR and between 59c3f78 and cd9f255.

📒 Files selected for processing (1)
  • README.md

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.

1 participant