Skip to content

fix: memo program parity#395

Merged
HealthyBuilder merged 1 commit intosolana-foundation:mainfrom
sonicfromnewyoke:sonic/fix-memo-program-parity
Apr 16, 2026
Merged

fix: memo program parity#395
HealthyBuilder merged 1 commit intosolana-foundation:mainfrom
sonicfromnewyoke:sonic/fix-memo-program-parity

Conversation

@sonicfromnewyoke
Copy link
Copy Markdown
Contributor

Problem

memo program SDK was incomplete compared to the original Solana memo program
it only supported a single signer (the original supports 0..N), didn't allow unsigned memos, had no client-side UTF-8 validation, was missing the v1 program ID for legacy transaction decoding, and had hardcoded program address strings in tests

there were also no tests for the package at all

Summary of Changes

  • support 0..N signers via variadic NewMemoInstruction(message, signers...) and new AddSigner() method
  • allow unsigned memos
  • add client-side UTF-8 validation
  • add MemoProgramIDV1 - Memo1UhkJRfHyvLMcVucJwxXeuD728EqVDDwQDxFMNo to program_ids
  • ported test_utf8_memo and test_signers from the original Rust implementation
  • added fuzzing for deserialization path

@HealthyBuilder
Copy link
Copy Markdown
Collaborator

Great parity work with fuzz tests. Merging.

@HealthyBuilder HealthyBuilder merged commit f832bd8 into solana-foundation:main Apr 16, 2026
9 checks passed
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