Skip to content

v0.4.1

Choose a tag to compare

@manishmeganathan manishmeganathan released this 20 Oct 20:44
· 211 commits to main since this release

SolverQuip can take a model to the Quip Network end to end: pick a network preset, quote the job, fund the account from a faucet, and submit. Funding and submission go through two consent gates, which proceed by default and can be set to ask first. The book adds a first Quip job tutorial.

Highlights

  • Network presets: SolverQuip.for_network("aglais") for Quip TestNet, and "devnet" for a local node.
  • SolverQuip.quote(model) returns a JobQuote with the reward, the fee and the account balance before anything is proposed.
  • A faucet client, fund_from_faucet, tops up an underfunded account.
  • Consent gates: autoconfirm and autofund each take True, False (ask at the terminal) or a callable that receives the JobQuote. They are also set by QUIP_AUTOCONFIRM and QUIP_AUTOFUND.
  • Native topology mode (topology="native") submits a model over the network's own coupling graph.

Behaviour changes

  • With no seed or keystore given, SolverQuip creates or reuses ~/.quip/keystore.json and logs a warning. It used to raise ValueError. Pass seed= or keystore= to choose the account.
  • autofund defaults to True: an underfunded solve() draws one faucet drip without asking. Set autofund=False or QUIP_AUTOFUND=0 to opt out.
  • A gate set to False raises QuipCancelledError when there is no terminal to ask at, as in a script or a notebook.
  • A shortfall larger than one drip, or a balance above the faucet ceiling, raises QuipSubmissionError before anything is submitted.
  • QUIP_FAUCET_URL is read only together with QUIP_RPC_URL. With an explicit url=, pass faucet=.
  • solve() prints the quote to stderr when stderr is a terminal.

Packages

Registry Packages
crates.io xqvm · xqasm · xqcli
PyPI xquad · xqsa · xqcp · xqffi · xqvm_py
pip install xquad==0.4.1
cargo install xqcli --version 0.4.1   # installs the xquad command

Documentation: developers.quip.network/docs/xquad

Full changelog (19 changes)

Added

  • xqsa: Default the SolverQuip keystore to ~/.quip/keystore.json
  • xqsa: Let SolverQuip submit a model over its own coupling graph
  • xqsa: Gate job submission and faucet funding on consent
  • xqsa: Quote a job's cost before proposing it
  • xqsa: Add a Quip faucet client and resolve its URL
  • xqsa: Add named network presets for the Quip Network

Documentation

  • xqsa: List the tutorial's distances in xq_triu order
  • examples: Name the -800 term in the TSP penalty prose
  • xqsa: Teach quote() and why Quip figures move
  • xqsa: Correct stale Quip Network chapter facts
  • xqsa: Add a first Quip job tutorial
  • xqsa: Note that native topology ignores case and whitespace
  • xqsa: Describe native topology mode

Fixed

  • xqsa: Warn when SolverQuip generates the default keystore
  • xqsa: Stop concurrent keystore creation from clobbering a seed
  • xqsa: Surface MinReward read faults as QuipConnectionError
  • xqsa: Surface native bound read faults as QuipConnectionError
  • xqsa: Bound native orders by the mempool's MaxNodes and MaxEdges
  • xqsa: Read QUIP_FAUCET_URL only with QUIP_RPC_URL

Full diff: v0.4.0...v0.4.1