Skip to content

Update Scalus to 1.5.0 - #869

Open
nau wants to merge 1 commit into
MeshJS:mainfrom
nau:chore/scalus-1.5.0
Open

nau wants to merge 1 commit into
MeshJS:mainfrom
nau:chore/scalus-1.5.0

Conversation

@nau

@nau nau commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Summary

Bumps scalus from ^1.4.1 to ^1.5.0 in @meshsdk/core-cst, @meshsdk/scalus-emulator and @meshsdk/transaction (dev dependency). The lockfile changes only the scalus entries.

What Mesh gets with 1.5.0 (full notes: https://github.com/scalus3/scalus/releases/tag/v1.5.0):

  • Emulator as a small node: a mempool, real blocks, forks and rollback(n). getTxStatus / awaitTx report pending, confirmed, dropped or rolled-back transactions.
  • Epoch boundary: stake snapshots, rewards, pool retirement, and the expiry, ratification and enactment of governance proposals.
  • Ledger error names: emulator.ledgerFailures(tx) lists every ledger failure by its cardano-ledger name, for example MissingRedeemers.
  • Conway governance rules in the Emulator: committee, constitution, DRep and vote checks, as on a node.

Test change

The Emulator now applies the Conway GOV rule, so a vote from a committee member who is not in the committee fails with UnelectedCommitteeVoters, as on a node. The CC vote test in tx.test.ts now starts the emulator with the wallet's key as a sitting committee member, with itself as the authorized hot key (EmulatorOptions.committee and committeeHotKeys, new in 1.5.0). No library code changes.

Tests

After npm run build:mesh, all pass:

package tests
mesh-core-cst 183, plus 16 under the Scalus (ESM) config
mesh-transaction 305 (38 suites)
mesh-scalus-emulator 24
mesh-wallet, mesh-x402, mesh-contract, mesh-core 34, 98, 1, 1
npm run test:scalus-packages ESM, CJS, declarations, browser

Notes for other open PRs

  • feat: add @meshsdk/tx-emulator for simulating transactions on a local ledger #858 (@meshsdk/tx-emulator) still pins scalus ^1.3.0; it can take ^1.5.0 and use the new chain features directly.
  • Behaviour changes in 1.5.0 that a Mesh user of the Emulator may notice: Emulator.create without treasury now starts with the mainnet treasury, not 0; the Emulator rejects a PlutusV3 transaction that spends and references the same UTxO, and votes by an unregistered DRep.

Bump scalus to ^1.5.0 in core-cst, scalus-emulator and transaction.

Scalus 1.5.0 applies the Conway GOV rule in its Emulator, so a vote from a
committee member who is not in the committee fails with
UnelectedCommitteeVoters, as on a node. The "CC vote" test now starts the
emulator with the wallet's key as a sitting committee member, with itself as
the authorized hot key.

This branch has not been deployed

No deployments
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.

1 participant