Skip to content

refactor(ENG-277): Extract INIT-MARKET-PDA procedure from REGISTER-MARKET#48

Merged
alnoki merged 3 commits intomainfrom
eng-277
Apr 1, 2026
Merged

refactor(ENG-277): Extract INIT-MARKET-PDA procedure from REGISTER-MARKET#48
alnoki merged 3 commits intomainfrom
eng-277

Conversation

@alnoki
Copy link
Copy Markdown
Contributor

@alnoki alnoki commented Apr 1, 2026

Changes

  1. Extract market PDA derivation, CPI field population, and
    CreateAccount invoke into a standalone INIT-MARKET-PDA
    procedure (init_market_pda.s), entered and exited via
    ja (no function call overhead, all registers preserved)
  2. Reorder REGISTER-MARKET to check System Program and Rent
    sysvar before PDA derivation, consolidating all PDA signer
    seed initialization into the new procedure
  3. Move CreateAccount lamports/space calculation into
    INIT-MARKET-PDA (r9 = acct is never clobbered, so the Rent
    sysvar read works inside the procedure)
  4. Remove acct field from RegisterMarketFrame and its
    RM_FM_ACCT_OFF constant (r9 survives the entire procedure
    and both syscalls, making the save/restore unnecessary)
  5. Add INIT-MARKET-PDA algorithm spec with input, require, and
    ensure annotations documenting register contracts
  6. Add "Market PDA initialization" section under Helpers in
    markets.md and register the algorithm in index.json
  7. Update test case ordering to match new control flow (PDA
    mismatch tests now follow Rent sysvar tests)
  8. Update pda_mismatch_accounts to provide valid System
    Program and Rent sysvar accounts (required now that those
    checks precede PDA derivation)
  9. Add // Verifies: INIT-MARKET-PDA comments to all test
    cases that exercise the extracted procedure

@linear
Copy link
Copy Markdown

linear bot commented Apr 1, 2026

ENG-277

@alnoki alnoki changed the title ENG-277 refactor(ENG-277): Extract INIT-MARKET-PDA procedure from REGISTER-MARKET Apr 1, 2026
@alnoki alnoki marked this pull request as ready for review April 1, 2026 01:20
@alnoki alnoki merged commit c0fbe52 into main Apr 1, 2026
5 of 6 checks passed
@alnoki alnoki deleted the eng-277 branch April 1, 2026 01:25
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