Skip to content

Remove jq dependency in simplexup - #208

Closed
schoen wants to merge 18 commits into
BlockstreamResearch:masterfrom
schoen:feat/simplexup-no-jq
Closed

schoen wants to merge 18 commits into
BlockstreamResearch:masterfrom
schoen:feat/simplexup-no-jq

Conversation

@schoen

@schoen schoen commented Nov 6, 2026

Copy link
Copy Markdown
Contributor
  • This PR suggests a bug fix and I've added the necessary tests.
  • This PR introduces a new feature and I've discussed the update in an Issue or with the team.
  • This PR is just a minor change like a typo fix.

This PR refactors simplexup to use data provided directly to curl by GitHub instead of parsing the information from a JSON file. This unfortunately makes the simplexup code a little harder to read, but removes the need jq dependency completely.

gerau and others added 18 commits October 30, 2026 19:26
…etters

`Signer::finalize_strict` was described as working against a
"confirmation window (in blocks)", but its `fee_rate` argument is a fee
rate in sats/kvb. Describe what it does and list its errors.

`UTXO::unblinded_amount` was documented to panic "if the UTXO is not
confidential". Both unblinded getters panic when `secrets` is `None`.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add a module overview of `simplex::fuzz`: how a `Scenario` describes
the transaction and its programs, what the engine does with each case,
and the findings a run can fail with.

Document `Expect`'s variants, the engine's public fields and builder
methods, what `run` panics on, how witness requirements are violated
on purpose, and the undocumented getters of `FuzzCase` and
`FuzzProgram`. Correct `mutations()`, which mutates half of the cases
that don't violate a requirement, not half of all cases.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe what each `ProviderTrait` method returns, including the hex
string hashes, the fee estimate keys and units, the fee rate fallback
order, and that UTXOs come back without unblinding secrets.

Document the Esplora provider's request timeout, its lack of retries,
and how long `wait` polls on each network; that `SimplexProvider`
mines a block and waits on every broadcast; and which network names
`SimplicityNetwork` parses.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Add to `Signer` a description of the wallet model, a table of which
methods add wallet inputs, fetch a fee rate, add change and fee outputs,
or broadcast, and the rules for fees and change, including when change
is dropped or kept.

Describe coin selection in `finalize`, what `sign_tx` and
`sign_witnesses` return, and the errors each method can return. Correct
`WitnessWrappingError::RootTypeMismatch`, which compares the type at the
end of the path, not at its root, and describe the other path errors.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe what each part of `FinalTransaction` does rather than restating
signatures: input and output order, what the signer adds, how the
transaction-wide sequence and locktime reach each input, how the
default sequence enforces a locktime, the change target's blinding
rule, and what `is_balanced`, `calculate_fee_delta` and `extract_pst`
count and return.

Also document the witness path syntax of `ProgramSignature::at_path`
and its errors, the issuance and reissuance entropy arguments, derivation
path form, and the receipt's wait behavior, and add a module overview.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Describe how a `Program` compiles and caches, which settings determine
its CMR and its address, the shape of its Taproot tree with storage,
which getters panic on a compile error, and what `execute` and
`finalize` check and return.

Correct three doc comments: `ScriptPubkeyMismatch` holds HASH160 script
hashes, not CMRs; `Program` reports Bit Machine failures as `Pruning` and
never returns `ProgramError::Execution`; and which signer methods print
execution output, and when.

Also document the verbosity's effect on addresses, the utilities that
compute hashes and entropy, and what `DUMMY_SIGNATURE` and `MIN_FEE`
are for.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ixes

docs(sdk): fix wrong rustdoc for finalize_strict and UTXO unblinded g…
docs(test): document the scenario-based fuzz engine in rustdoc
…rogram

docs(sdk): document programs, verbosity and utilities in rustdoc
…rovider

docs(sdk): document providers and networks in rustdoc
…igner

docs(sdk): document the signer's behavior in rustdoc
…ransaction

docs(sdk): document the transaction module's behavior in rustdoc
GitHub can tell us right in the HTTP protocol itself, rather than only
in a JSON file, the information we want about the latest release
of a specific project. Making use of this information can remove the
`jq` dependency entirely.
@schoen
schoen requested a review from Arvolear as a code owner November 6, 2026 03:58
@schoen

schoen commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

I should have done this against dev instead.

@schoen schoen closed this Nov 6, 2026
@schoen

schoen commented Nov 6, 2026

Copy link
Copy Markdown
Contributor Author

Reopened against dev as #209.

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.

3 participants