# v1.1.4 — release notes

aeva-1's software upgrade `v1.1.4`, from `v1.1.3`. A maintenance release of
x/bridge, x/stakelock, x/rewards and x/fee. No new module and no store change.

* x/bridge: the rolling window keeps one sum per minute; an inbound transfer
  over the cap waits in the route's queue, in nonce order, and is delivered as
  the window makes room; a per-route minimum amount; escrows and module
  accounts refused as recipients; Robinhood Chain recipients must be EVM
  addresses; routes resolved by the full token id; remote contracts stored
  lowercase.
* x/stakelock: an ended lock stops earning at its end; a lock refuses an
  unbonding outside a transaction too, except on BeginBlock's slashes and in
  upgrade handlers; the unstake check is nil-safe; the hosted invariants read
  the shared state once.
* x/rewards and x/fee: a new schedule pays its first epoch one epoch later; a
  pool cannot be its own recipient; aaeva destroyed by a contract in its
  creating transaction is burned through the bank; the inert `accept_aeusd`
  switch is removed.
* Double signs are not punished on aeva-1 (x/evidence is not wired);
  `slash_fraction_double_sign` is set to 0 so that the parameters say so. The
  unbonding period and the evidence parameters stay as they are.

The handler runs the module migrations, sets `slash_fraction_double_sign` to 0,
moves the bridge's per-transfer windows into minute buckets, stores every
route's remote contract lowercase, resets any withdraw address that names an
account v1.1.4 blocks, and builds the locks' end cohorts. The bridge routes,
their caps and their status stay as they are.

Every node stops at the plan height with `UPGRADE "v1.1.4" NEEDED`; install
aevad `v1.1.4` and restart, or let cosmovisor switch (`README.md`).

## Rehearsed

On a copy of aeva-1's state taken on 2026-10-25, on v1.1.3 (state-synced
from the public sentry's snapshot at 1 922 000, forked at 1 922 624 with its
six bonded validators' stakes): the expedited proposal with this release's plan
info passed, every node stopped at the plan height and cosmovisor applied
`v1.1.4`, blocks continued, every invariant green past the next full check,
the routes, every balance and stake as they were, and the double-sign
fraction 0.

## Built

Inside the pinned `golang:1.26.10` image with `GOMODCACHE=/go/pkg/mod`, twice,
byte-identical, and again in a differently configured container
(`PROVENANCE.md`). The image digest and the checksums are also in the upgrade
proposal.
