Skip to content

Caatinga v3.11.0

Choose a tag to compare

@Dione-b Dione-b released this 28 Sep 23:14
a10ee3a

Not published to npm. 3.11.0 was tagged but never released to the registry (npm went from 3.10.3 to 3.12.0). Its changes ship in v3.12.0 — install that instead.

Caatinga v3.11.0

Status

Stable minor release on top of 3.10.3. Closes the remaining mainnet-blocker (P0) items of the mainnet-readiness audit (#245); P1/P2 items are still tracked there.

Packages

  • @caatinga/cli@3.11.0
  • @caatinga/core@3.11.0
  • @caatinga/client@3.11.0
  • @caatinga/zk@3.11.0
npm install -g @caatinga/cli@latest

Compatibility

  • Node.js 22+
  • Stellar CLI minimum 23.0.0, last tested 28.0.0
  • Rust 1.91.1+ with the wasm32v1-none target (not 1.91.0)

Fixes

  • ctg identity export output is a clean archive. Status lines went to stdout, so ctg identity export > id.b64 produced a file ctg identity import could not decode. Only the base64 archive is written to stdout now; status goes to stderr. (#227)
  • ctg estimate deploy works and uses the selected network. Simulation ran without network args, and fees were parsed with regexes that never matched the real stellar tx simulate output (a base64 envelope), so no estimate was ever produced. It now simulates on the chosen network and reads fees from the decoded envelope: resource = resource_fee, inclusion = fee - resource_fee. The WASM must already be uploaded on the target network. (#225)
  • ctg ci run works in user projects. It spawned ./dist/index.js and pnpm dev, which exist only inside the Caatinga monorepo. Each step now re-runs the installed ctg; a failing step stops the recipe and its exit code is propagated, with no silent retry. (#232)
  • Freighter adapter handles freighter-api v4 errors. v4 resolves with { error } and an empty address/XDR instead of throwing. A locked or not-allowed Freighter now raises CAATINGA_WALLET_NOT_CONNECTED, and a rejected or failed signature raises CAATINGA_XDR_SIGN_FAILED, both with Freighter's message. (#231)
  • Templates follow the deployed network. react-vite-counter and zk-starter were hardwired to testnet (RPC, passphrase, wallet network, artifacts key). They now read VITE_CAATINGA_NETWORK, VITE_CAATINGA_RPC_URL and VITE_CAATINGA_NETWORK_PASSPHRASE, which ctg deploy / ctg sync-env write to .env.local. Without them the app uses testnet, as before. (#229)

New

  • CAATINGA_WALLET_NETWORK_MISMATCH. Wallet adapters may implement an optional getNetworkPassphrase(). When the wallet reports a different network than the app, invoke() fails before building or signing, instead of a generic sign/submit error later. The Freighter and Stellar Wallets Kit adapters implement it; wallets that cannot report their network are not blocked. (#230)
  • frontend.env accepts a network source key, written as the resolved network name by ctg sync-env / ctg deploy. (#229)

Behavior changes

  • Apps using the Freighter adapter get a typed error from getPublicKey() / signTransaction() where they previously got "".
  • invoke() can now throw CAATINGA_WALLET_NETWORK_MISMATCH with adapters that report their network.
  • Package homepage now points to https://caatinga.xyz.

Full changelog: v3.10.3...v3.11.0