Skip to content

fix: commit the deployed SNP receiver sources verbatim, closing D7 - #70

Open
mattglory wants to merge 1 commit into
mainfrom
close-d7-snp-receivers
Open

mattglory wants to merge 1 commit into
mainfrom
close-d7-snp-receivers

Conversation

@mattglory

Copy link
Copy Markdown
Owner

Summary

Closes D7. CONTRACT_INVENTORY recorded that the source for the live snp-flashstack-receiver and -v3 was absent from the repo. It was on the maintainer's machine but gitignored as "stale experiment contracts", which is why the 2026-09-16 review found nothing. Maintainer's call to commit them; this adds no ongoing workload, since they are immutable deployed contracts and can never change.

Verified, not assumed

  • Byte-identical to the deployed source (GET /v2/contracts/source/SP3TGRVG7DKGFVRTTVGGS60S59R916FWB4DAB9STZ/<name>):
    • snp-flashstack-receiver 3,270 bytes, sha256 0722955560dbd791d5c3a29c84e1787e4a250df88db5ece6d27be768a0b920ea
    • snp-flashstack-receiver-v3 5,396 bytes, sha256 2560814d0e0103d2e8fcb337fc560cdbc5c39215828b81606712ab82ffb3fdec
  • The staged git blobs hash to the same values, and .gitattributes forces LF for *.clar, so the hash is stable across checkouts.
  • Read both files in full first: no secrets or personal data.
  • Not in mattglory/snp-mvp either (default branch checked), so this is the only public copy besides the chain.

What they are, recorded honestly

Legacy gen-1 SNP integration receivers with mock vault placeholders. In v3, remove-vault is a no-op stub (is-not-removed-vault always returns true). Immutable, not funds-bearing, not in the audit scope. Now stated in the inventory so an auditor doesn't have to discover it.

The pin: tests/deployed-source-pins.test.ts

A repo copy of an immutable contract can only be wrong by changing, which is exactly how F-7 happened, and the mock placeholders and the stub are tempting to "fix". The test pins both hashes offline. Mutation-checked: a one-character edit to either file fails it. The re-verify command is in the test header.

Changes

  • .gitignore: drop the two snp lines only. bitflow-arb-compounder.clar stays ignored (different case).
  • Not registered in Clarinet.toml; the comment claiming they're "not tracked in git at all" is corrected.
  • CONTRACT_INVENTORY: D7 → FIXED with hashes; D5's "two .clar files that do not exist" clause corrected (D5 stays open, the plan is still a gen-1 publish); §3 row updated. TESTNET_STAGING §4 note updated.

Verification

clarinet check 211 contracts, 0 errors (unchanged). Suite 223/223 across 21 files (221 + 2). Suite counts drift as #66/#68 land; whichever merges last should update the README/ROADMAP/packet numbers.

contracts/ and Clarinet.toml are CODEOWNERS-protected (Hillary).

🤖 Generated with Claude Code

CONTRACT_INVENTORY D7 recorded that the source for the live
snp-flashstack-receiver and -v3 was absent from the repository. It was on the
maintainer's machine but gitignored as "stale experiment contracts", which is
why the 2026-09-16 review found nothing. Committing them adds no ongoing work:
they are immutable deployed contracts and can never change.

Verified before committing, not assumed: both files are byte-identical to the
deployed source (GET /v2/contracts/source/SP3TGRVG.../<name>): 3,270 bytes
sha256 0722955560dbd791..., and 5,396 bytes sha256 2560814d0e0103d2.... The
staged git blobs hash to the same values, and .gitattributes forces LF for
*.clar so the hash is stable across checkouts. Read both files in full first:
no secrets. They are gen-1 SNP integration receivers with mock vault
placeholders, and v3's remove-vault is a no-op stub; both now recorded.

A repo copy of an immutable contract can only be wrong by changing (that is
F-7), so tests/deployed-source-pins.test.ts pins both hashes. Mutation-checked:
a one-character edit to either file fails it. Offline, with the re-verify
command in the test header (jq -j, no trailing newline).

- .gitignore: drop the two snp lines only. bitflow-arb-compounder.clar stays
  ignored; it is a different case.
- Not registered in Clarinet.toml; the comment that called them "not tracked in
  git at all" is corrected.
- CONTRACT_INVENTORY: D7 FIXED with the hashes; D5's "two files that do not
  exist" clause corrected (D5 stays open: the plan is still gen-1); section 3
  row and TESTNET_STAGING section 4 updated.

Verified: clarinet check 211 contracts / 0 errors (unchanged); suite 223/223
across 21 files (221 + 2).

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 21, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
web Ready Ready Preview Sep 21, 2026 12:49pm UTC

Request Review

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