Repository navigation
Caatinga v3.10.1
Caatinga v3.10.1
Status
Stable release. Supersedes 3.10.0, which was versioned but never published to npm. This release ships everything since 3.9.2, focused on mainnet readiness: stricter mainnet guardrails, safer identity imports, bounded network/subprocess calls, and more honest error reporting.
Packages
@caatinga/cli@3.10.1@caatinga/core@3.10.1@caatinga/client@3.10.1@caatinga/zk@3.10.1
npm install -g @caatinga/cli@latestCompatibility
- Node.js 22+
- Stellar CLI minimum
23.0.0, last tested28.0.0 - Rust 1.91.0+ with the
wasm32v1-nonetarget (now checked byctg doctor) - Contracts, examples and templates on
soroban-sdk27.0.6
Behavior changes to note
- Mainnet always requires confirmation.
requireConfirmation: falseis now ignored on mainnet (detected by name or by the public network passphrase). Unattended mainnet runs must pass--yesor setCAATINGA_ASSUME_YES=true; the[MAINNET GUARDRAIL]audit log is still emitted. (#250, B18) - Mainnet confirmation covers more commands.
deploy,upgrade,invoke,wire,rollback, regression runs and ZK invoke prompt on mainnet, the banner shows the target deployment, and automatic retries are disabled on mainnet. (#138) ctg doctorfails for Rust older than 1.91.0, withrustup update stableas the fix. (#251)ctg upgradewrites a relativesourcePathintocaatinga.artifacts.json, matchingctg deploy. Artifacts written by earlier upgrades keep their absolute path until the next upgrade or deploy. (#253, #235)- Artifacts schema validates
contractId/wasmHashformat. Malformed values incaatinga.artifacts.jsonare now rejected. (#170, #135) read/invokeno longer treat bare-wordStringarguments as identity aliases. (#206)
Added
ctg doctorandctg versionreport when the installed CLI is ahead of or behind the npmlatesttag. Never fails a command; honorsCAATINGA_SKIP_UPDATE_CHECK=1. (#205, #106)- Subprocess and network calls are bounded by timeouts, including the Horizon lookup in deploy recovery. (#145)
- Stellar CLI checks and feature probes are memoized.
Fixes
Security
- Prevent tar path traversal on identity import and harden identity archive imports. (#162)
- Refuse unverified
circomdownloads. - Harden Stellar CLI argument validation. (#204)
Core
- Refuse to guess the contract ID when deploy output is ambiguous.
- Classify artifacts-lock timeouts and self-heal stale locks.
- Take the already-deployed skip before dependency verification and argument resolution.
- Guard deploy/upgrade transient-retry callbacks. (#151)
- Preserve the
exportprefix when rewriting managed.envlines. (#153) - Report unavailable deploy fee estimates honestly. (#160)
- Preserve unmapped ZK error codes.
- Key invoke hints and deploy recovery off a single signing-failure pattern. (#209)
- Derive placeholder and expect-matcher validation from their Zod definitions. (#208)
- Hygiene fixes: stderr warnings, history metadata, PATH precedence, sequential generates. (#207)
- The
@caatinga/core/runtime/requirementsentry point no longer pulls innode:crypto/node:fs. (#251)
Client
- Treat RPC
ERRORas failed and report transaction lifecycle status. - Submit the prepared transaction from the XDR build.
CLI
- Standardize next-step output on the canonical
ctgbinary.
Thanks
Thanks to everyone who contributed fixes in this release, including @Yasir-TechGuy (#250) and @fastcharger2000 (#251).
Full changelog: @caatinga/cli@3.9.2...v3.10.1