Conversation
The docs generated only part of the Stellar reference, and that generator read from an external bindings directory, so nothing caught drift in the EVM, Solana or CKB interfaces at all. There was also no record of which spec version the docs were built from. - Add checked-in interface sources for all four chains under contracts/specs/: Solidity ABIs (evm.json), Anchor IDL-equivalent programs (solana.json), CKB scripts (ckb.json), and Soroban contract specs (stellar.json). Each records its own specVersion and the source repository, path, and commit it was taken from. - Add scripts/generate-contract-reference.ts, which renders every unit's public methods, events, storage keys and custom errors into the matching contracts/*.mdx between chain-specific markers, and stamps the generated block with spec version, API snapshot version, source repository/path/commit, and a removed-in-this-version line. - Support --check to compare generated output against the committed docs and fail on drift, so CI can enforce it. - Add contracts/specs/api-snapshot.json as the public API baseline. The check diffs current specs against it and fails when a public method, event, storage key or error disappears without a matching entry in migrations, which must name the version it was removed in and carry a note. Additions and signature changes pass; only removals are gated. - Wire the check into pnpm test and add a contract-reference job to the snippet workflow. The Stellar page previously showed only placeholder instructions; it now carries the generated reference for all four contracts, including the error and storage-key tables. Note: .github/ is CODEOWNERS-gated to @truthixify, so the workflow change needs maintainer approval. The new job only adds a check; it does not change or relax any existing gate.
|
@big6isaac Great news! 🎉 Based on an automated assessment of this PR, the linked Wave issue(s) no longer count against your application limits. You can now already apply to more issues while waiting for a review of this PR. Keep up the great work! 🚀 |
|
The generated files are internally consistent, but every source.commit value is forty zeroes. Please record the real contracts commit and validate the checked-in specs against that source so the drift gate has a trustworthy baseline. |
1 similar comment
|
The generated files are internally consistent, but every source.commit value is forty zeroes. Please record the real contracts commit and validate the checked-in specs against that source so the drift gate has a trustworthy baseline. |
…ference-drift-check-160 # Conflicts: # .github/workflows/snippets.yml # package.json
|
The rebase is clean, but all four source.commit values are still zeroes. Please use the real contracts commit and validate the checked-in specs against it. |
Overview
This PR adds a checked-in, generated contract reference for EVM, Solana, CKB, and Stellar interfaces.
It compares generated documentation with the committed sources in CI and records source/version metadata so public API drift is visible and removals require migration notes.
Related Issue
Closes #160
Changes
Checked-in interface sources
contracts/specs/evm.json,contracts/specs/solana.json,contracts/specs/ckb.json, andcontracts/specs/stellar.json- checked-in ABI/IDL/contract specification sources with spec versions and source repository/path/commit metadata.contracts/specs/api-snapshot.json- public API baseline and migration-note records for intentional removals.Generated references and drift validation
scripts/generate-contract-reference.ts- generates references for all four chains and supports--checkmode.contracts/evm.mdx,contracts/solana.mdx,contracts/ckb.mdx, andcontracts/stellar.mdx- add generated method, event, storage, type, error, and metadata sections.package.json- adds generation/check scripts and runs both contract drift checks intest..github/workflows/snippets.yml- runs the generated reference check in CI alongside the canonical contract registry check.Verification Results
contracts/specs/{evm,solana,ckb,stellar}.jsonare checked in and are the generator inputs.--checkmode is wired intopnpm testand thecontract-referenceCI job.api-snapshot.jsonand rejects undocumented removals.