Skip to content

docs: the support README and building-with-interfold describe APIs that no longer exist #1808

Description

@Toby1009

Updated 2026-08-20. Re-checked against main at 3c7172c8. Everything below still
reproduces. The crates/compute-provider section changed shape rather than being fixed: #1821
deleted the API it described, so the README now documents parameters and signatures that no
longer exist.

Separate from the journal-layout drift, several documents in this area describe interfaces that have
moved. These are copy-and-run examples, so each fails at the point where someone tries to use it.

Two of them share the same two dead field names, threshold and e3ProgramParams, which suggests
both were written against the same earlier request API and neither was revisited.

crates/support/README.md

  • The request example does not match E3RequestParams. It passes threshold: [M, N] and
    e3ProgramParams (:150-164). Neither field exists. The struct
    (packages/interfold-contracts/contracts/interfaces/IInterfold.sol:567-577) takes
    committeeSize, which is a CommitteeSize enum rather than an [M, N] pair, and paramSet
    instead of encoded program params. The example also omits paramSet, expectedFeeToken,
    expectedCryptoConfigId, and maxFee.

  • The Boundless "defaults shown" are not the defaults, and every value differs:

    Key README :101-107 Runtime host/src/lib.rs:121-171
    min_price_eth 0.001 0.00005
    max_price_eth 0.03 0.002
    timeout_secs 1200 600
    lock_timeout_secs 600 300
    ramp_up_secs 120 60
    lock_collateral_zkc 5.0 2.0

    The README's own later table (:222-233) matches the runtime values, so the document contradicts
    itself. Someone who copies the first block offers twenty times the intended minimum price.

  • The journal description lists seven bound items and omits the parameter hash and the input root
    (:202-212: "the chain, Interfold contract, E3, encryption scheme, committee key, output, and SAFE
    commitment"). The journal has nine (crates/support/types/src/lib.rs:68-104), and both verifier
    layers check the two that are missing from the description.

  • :247-257 names .github/workflows/support-docker.yml, which does not exist. The jobs are
    .github/workflows/ci.yml:284 and releases.yml:109. (Also noted in the build issue.)

  • The /run_compute example sends the wrong committee-key field. Already fixed in open PR feat: add chunked C2 proving [skip-line-limit] #1772,
    which changes "committee_public_key" to "committee_public_key_hash". Listed only so it is not
    reported twice.

docs/pages/building-with-interfold.mdx

  • getE3Quote is shown taking six positional parameters (:107-115). It takes a single
    E3RequestParams struct (contracts/Interfold.sol:1051-1053), as does request (:281-283).
  • The JavaScript request object uses threshold: [3, 5] and e3ProgramParams (:271-289), the same
    two removed fields as the support README, and omits the four newer ones.
  • The event is shown as E3Requested(uint256 e3Id, E3 e3, IE3Program indexed e3Program) (:239).
    The third parameter is now bytes32 indexed cryptoConfigId
    (contracts/interfaces/IInterfold.sol:137). Code that filters or decodes on the old shape does not
    match.

crates/compute-provider

  • The crate README documents an API that fix: crisp security issues [skip-line-limit] #1821 deleted. Readme.md:82-88 lists use_parallel and
    batch_size as ComputeManager::new() parameters. The constructor now takes three arguments
    (src/compute_manager.rs:25-27), and use_parallel, batch_size, and the .chunks() path are
    gone from the crate along with its rayon dependency.
  • The two examples call provider.start() with no argument and read one return value
    (Readme.md:40, :72). start now takes an InputPolicy and returns
    Result<(P::Output, Vec<u8>), ComputeError> (src/compute_manager.rs:57).
  • The Risc0Provider example implements fn prove(&self, input: &ComputeInput) (Readme.md:65),
    which no longer satisfies the trait: prove gained a second parameter, policy: InputPolicy
    (src/ciphertext_output.rs:21).

Happy to open a PR for any of this if it is useful.

Metadata

Metadata

Assignees

Labels

documentationImprovements or additions to documentation

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions