Repository navigation
Caatinga v3.12.0
Status
Stable minor release on top of 3.10.3. 3.11.0 was tagged but never published to npm, so this is the first npm release that ships the 3.11.0 changes as well — upgrading from 3.10.3 picks up both. Minor because @caatinga/client adds public API (wallet-less reads).
Packages
@caatinga/cli@3.12.0@caatinga/core@3.12.0@caatinga/client@3.12.0@caatinga/zk@3.12.0
npm install -g @caatinga/cli@latestCompatibility
- Node.js 22+
- Stellar CLI minimum
23.0.0, last tested28.0.0 - Rust 1.91.1+ with the
wasm32v1-nonetarget (not 1.91.0) @stellar/stellar-sdk^16.0.1(templates)
New
- Reads without a wallet.
read()andsimulate()no longer need a connected wallet, andCaatingaClientConfig.walletis optional (it is still required forinvoke()). The simulation source account is, in order: the per-callsourceAccountoption, the connected wallet's public key,readSourceAccountfrom the client config, then the exportedDEFAULT_READ_SOURCE_ACCOUNT(the Stellar null account, never sent to RPC). Invalid source values throwCAATINGA_INVALID_CONFIG. (#239, #270) - Network origin in every command. Commands print
Network: <name> (config)or(flag)up front, so it is clear which network a run targeted. (#244, #269)
Fixes
ctg wirewith onlypostDeployReadhooks.ctg wireprinted "No postDeploy hooks configured" and ran nothing, and full-graphctg deployskipped wiring unless apostDeployarray existed. Both now run when either list has hooks. (#243, #286)- New projects start on artifacts schema v2. The
react-vite-counterandzk-startertemplates shipped"version": 1, so template projects stayed on v1 until their first upgrade or redeploy. Templates now ship v2, and scaffolding migrates any template that still ships v1 (for example a custom one viaCAATINGA_TEMPLATES_DIR). Existing projects are not touched. (#280, #287) walletStubPnpmWorkspaceYaml()works on pnpm 9. Its output now starts withpackages: []; without it pnpm 9 aborted with "packages field missing or empty" in standalone apps. (#279, #284)ctg inspectshows why a contract is unreachable. The on-chain detail now includes the Stellar CLI diagnostics when the probe fails. (#272)- Deploy recovery on custom networks. Recovery no longer masks
CAATINGA_DEPLOY_FAILEDwithCAATINGA_NETWORK_NOT_FOUNDon networks without a Horizon mapping. (#234, #271) - Inspection paths. Contract inspection falls back to the configured WASM path when the artifact path is missing;
inspectContract().localWasm.pathreports the absolute path that was hashed. (#249) - Help text.
ctg status --strictandctg doctor --strict-bindingsnow say they fail on any binding status other thanfresh(stale, missing, or unknown). Behavior unchanged. (#281, #285)
Also in this release (from 3.11.0)
See the v3.11.0 notes for details: clean ctg identity export stdout, a working ctg estimate deploy on the selected network, ctg ci run in user projects, Freighter v4 error handling, templates that follow the deployed network via VITE_CAATINGA_*, the new CAATINGA_WALLET_NETWORK_MISMATCH, and the frontend.env network source key.
Behavior changes
- An empty
--network ""(for example--network "$NET"with$NETunset in CI) now fails withCAATINGA_NETWORK_NOT_FOUNDinstead of silently usingdefaultNetwork. - Projects with only
postDeployReadhooks now have them run by full-graphctg deploy(skip with--no-wire) and byctg wire. ctg init/ctg zk initwritecaatinga.artifacts.jsonwith"version": 2.
Known issue
ctg doctorprints aSTELLAR_SDK_UNTESTED_VERSIONadvisory in new projects, because^16.0.1resolves to 16.3.x while the last-tested version is still16.0.1. It is informational and does not block; a patch will raise the last-tested version.
Full changelog: v3.10.3...v3.12.0