feat(vyper): recover historical storage layouts - #2881
Conversation
|
not ready yet, will also add transient storage layout extraction |
is it now ready? |
yes, it's ready |
# Conflicts: # services/server/test/integration/apiPrivate/private.spec.ts
|
Updated against current The sole conflict was the renamed/consolidated private API integration test. The historical Vyper source, layout assertions, backfill identity checks, and API-v2 storage-layout coverage are preserved; the verification setup now uses the staging queued v2 helper, and the renamed unit-test import is updated. Local validation on Node 22.22.0:
Socket checks are green. CircleCI created pipeline 11547 / job 69135 for |
Summary
0.1.0-beta.16through0.4.1b3with the exact compiler package in an isolateduvprocess0.3.8, including splitting the mixed persistent/transient namespace emitted by0.3.8–0.3.100.4.1b4+on the existing native Standard JSON path and treat supplemental extraction failure as non-fatalstorageLayoutandtransientStorageLayoutfields, with an identity-checked resumable backfill for existing rowsExtraction matrix
0.1.0-beta.16–0.2.12GlobalContextpositions (legacy hashed-composite roots)0.2.13–0.2.150.2.16–0.4.1b30.3.8–0.3.10transientis_transientmetadata0.4.0–0.4.1b3transienttransient_storage_layoutcaptured with persistent layout0.4.1b4+Structured historical types stay backward-compatible with Sourcify's flat Vyper layout: each affected leaf gets an optional
type_definitionsgraph. Definitions are leaf-scoped, so initialized modules and same-name imported structs remain accurate without changing native leaf type/slot/span values.Persistence and operations
storageLayoutand Vyper transient artifacts via the existingtransientStorageLayoutfield.services/database/massive-replace-script/vyper-storage-layout-backfill.uv0.11.21.0.4.1warning remains a separate follow-up once this backend is deployed.Validation
npm testinpackages/compilers— 29 passing; historical exact-package cases remain opt-in0.3.8and0.4.0transient-layout probes — 2 passing, covering both the mixed and separate compiler namespaces0.4.0b1and RC compiler-data APIs; the opt-in CI matrix also covers0.4.0b1and0.4.0rc5npm run build— compilers-types, compilers, and lib-sourcifygit diff --checkpassThe full server integration suite requires its Postgres/local-chain services and is left to CI. Local ESLint invocation is currently blocked before file analysis by the checkout's ESLint 8/flat-config dependency mismatch (
ERR_PACKAGE_PATH_NOT_EXPORTED); TypeScript builds and focused tests are clean.