<!--
Guiding Principles:

Changelogs are for humans, not machines.
There should be an entry for every single version.
The same types of changes should be grouped.
Versions and sections should be linkable.
The latest version comes first.
The release date of each version is displayed.
Mention whether you follow Semantic Versioning.

Usage:

Change log entries are to be added to the Unreleased section under the
appropriate stanza (see below). Each entry is required to include a tag and
the Github issue reference in the following format:

* (<tag>) \#<issue-number> message

The tag should consist of where the change is being made ex. (x/staking), (store)
The issue numbers will later be link-ified during the release process so you do
not have to worry about including a link manually, but you can if you wish.

Types of changes (Stanzas):

"Features" for new features.
"Improvements" for changes in existing functionality.
"Deprecated" for soon-to-be removed features.
"Bug Fixes" for any bug fixes.
"Client Breaking" for breaking Protobuf, gRPC and REST routes used by end-users.
"CLI Breaking" for breaking CLI commands.
"API Breaking" for breaking exported APIs used by developers building on SDK.
"State Machine Breaking" for any changes that result in a different AppState given same genesisState and txList.
Ref: https://keepachangelog.com/en/1.0.0/
-->

# Changelog

## [v1.3.0](https://github.com/stablelabs/stable/releases/tag/v1.3.0)

**Audit:** [Stable Q2 2026 - Security Patch (Cantina APEX)](./audit/2026-Q2/01/README.md)

### State Machine Breaking

* (app) [#270](https://github.com/stablelabs/stable/pull/270) Block Prague precompile addresses (0x02–0x11) in `BlockedAddresses` to prevent x/bank sends to unregistered precompile contracts.
* (app/upgrades) [#283](https://github.com/stablelabs/stable/pull/283) Migrate stuck fractional balance from zero address to recovery address in v1.3.0 upgrade handler.
* (app/upgrades) [#316](https://github.com/stablelabs/stable/pull/316) Enable EIP-0003 (custom SELFDESTRUCT override) via mainnet/testnet upgrade handler. The handler also forces `x/evm` PreBlock first so `vm.activators` is populated before `EnableEIPs` validation runs on replay.
* (app/upgrades) [#319](https://github.com/stablelabs/stable/pull/319) Deploy EIP-2935 history-storage contract in the v1.3.0 mainnet/testnet upgrade handler so the `BLOCKHASH` opcode returns real historical hashes instead of `0x0` for contracts relying on recent block hashes.
* (x/stable) [#331](https://github.com/stablelabs/stable/pull/331) Move gas limit settings from global params to per-waiver configuration (`max_gas_per_block` on `Waiver`). Remove per-tx gas limit feature. Bump consensus version 2 → 3 with state migration.

### Improvements

* (app/upgrades) [#225](https://github.com/stablelabs/stable/pull/225) Persist evm-chain-id provided via build ldflags into state and validate it at app startup to prevent configuration mismatches.
* (app/ante) [#268](https://github.com/stablelabs/stable/pull/268) Delete backward compatibility for waiver-predecorator
* (*) [#243](https://github.com/stablelabs/stable/pull/243) Emit EVM event from `PostTxProcessing` and `SystemTx` by converting SDK event to EVM log.
* (app/upgrades) [#281](https://github.com/stablelabs/stable/pull/281) In-place store migration for moving from `QueuedUnbondingCompletions` and `UnbondingCompletionIndex` to `SystemTxLogs` and `SystemTxLogsIndex`.
* (app) [#348](https://github.com/stablelabs/stable/pull/348) `debug_traceTransaction` against pre-v1.2.0 blocks fall back to the legacy `agusdt` bank denom. Pairs with [stablelabs/stable-evm#115](https://github.com/stablelabs/stable-evm/pull/115). Also pulls [stablelabs/stable-evm#105](https://github.com/stablelabs/stable-evm/pull/105) to cap block height at the last indexed block, preventing tx-not-found races.
* (*) Bump up Stable-BFT to [v0.38.22-stable](https://github.com/stablelabs/stable-bft/releases/tag/v0.38.22-stable).
* (*) Bump up Stable-SDK to [v0.53.5-stable-3](https://github.com/stablelabs/stable-sdk/releases/tag/v0.53.5-stable-3).
* (*) Bump up Stable-EVM to [v0.5.1-stable-6](https://github.com/stablelabs/stable-evm/releases/tag/v0.5.1-stable-6).

### Bug Fixes

* (app/ante) [#304](https://github.com/stablelabs/stable/pull/304) Reject nested waiver wrappers in inner tx validation to prevent one sponsor from burning another sponsor's EVM nonce
* (app) [#306](https://github.com/stablelabs/stable/pull/306) Return `ResponseCheckTx` with non-zero code on decode failure in `WrapperTxCheckTxHandler` instead of `(nil, err)` to comply with the ABCI protocol.
* (app/ante) [#271](https://github.com/stablelabs/stable/pull/271) Add `ExecModePrepareProposal` to wrapper handling in `WaiverPreDecorator` so wrapper txs pass ante when the mempool is non-nil.
* (app) [#269](https://github.com/stablelabs/stable/pull/269) Re-decode tx from original bytes in `computeRelatedTxKey` so `IsWaiverTx` sees the unmutated wrapper tx and `RelatedTxKey` is correctly set for CometBFT cascade removal.
* (app/ante) [#256](https://github.com/stablelabs/stable/pull/256) Harden waiver tx validation: reject unsupported wrapper tx types, enforce EIP-155 chain binding for legacy wrappers, and block SetCode/EIP-7702 inner transactions
* (app/abci) [#265](https://github.com/stablelabs/stable/pull/265) Validate system tx destination (`To == StableSystemPrecompileAddress`) and method selector (`notifySystemTxLogs`) in ProcessProposal to prevent arbitrary fee-free execution from SystemTransactionSender
* (app/abci, precompiles/stable) [#240](https://github.com/stablelabs/stable/pull/240) Redesign system tx: include in every block, bypass KV gas metering, add `originBlockHeight` to `UnbondingCompleted` event, change system tx sender to `0x8888...`. Bump stable-evm ([#93](https://github.com/stablelabs/stable-evm/pull/93)).
* (rpc) [#240](https://github.com/stablelabs/stable/pull/240) Fix incorrect `from` address (`0x0`) for system transactions in `eth_getBlockByNumber(fullTx=true)` and `eth_getTransactionByHash`. Skip system tx in `eth_feeHistory` effective gas tip calculation via [stable-evm#93](https://github.com/stablelabs/stable-evm/pull/93).
* (app) [#193](https://github.com/stablelabs/stable/pull/193) Fix duplicated endBlocker invocation in the stable app.
* (x/inflation) [#246](https://github.com/stablelabs/stable/pull/246) Fix align SkippedEpochs increment with configured epoch identifier.
* (x/budget) [#239](https://github.com/stablelabs/stable/pull/239) Fix correct misleading error message in budget rate validation
* (x/inflation) [#250](https://github.com/stablelabs/stable/pull/250) Fix Params and MaxCirculatingSupply decode cases
* (app/abci) [#244](https://github.com/stablelabs/stable/pull/244) Defer per-waiver gas reservation until after successful extension encoding to prevent stale quota consumption on encoding failure.
* (x/stable) [#245](https://github.com/stablelabs/stable/pull/245) Reject non-canonical waiver addresses in governance messages to prevent silent normalization
* (app/abci) [#263](https://github.com/stablelabs/stable/pull/263) Revalidate waiver authorization in PrepareProposal to filter stale txs after governance changes
* (x/stable) [#247](https://github.com/stablelabs/stable/pull/247) Add query input bounds and single-pass normalization to IsWaiverAuthorized
* (app/ante) [#261](https://github.com/stablelabs/stable/pull/261) Remove unguarded `ethTx.To().Hex()` nil-dereference in `SystemTxDecorator` debug log
* (x/stable) [#313](https://github.com/stablelabs/stable/pull/313) Add nil guard for empty legacy data from store migration logic.
* (x/stable) [#314](https://github.com/stablelabs/stable/pull/314) Handle DelegatorAddress and ValidatorAddress of legacy QueuedUnbondingCompletion data as Hex, not Bech32.
* (app/ante) [#315](https://github.com/stablelabs/stable/pull/315) Check nonce for system tx.
* (precompile) [#353](https://github.com/stablelabs/stable/pull/353) Fix `debug_traceTransaction` on pre-fork gas-denom txs by routing the legacybank precompile through `wrappers.ExtendedDenomFor(ctx)` so mint/transfer state lands on the same bank-store key the EVM StateDB reads.

### Features

* (app) [#236](https://github.com/stablelabs/stable/pull/236) Add in-place testnet creator command that converts a mainnet snapshot into a single-validator devnet with operator funding (STABLE via bank mint, USDT0 via ERC20 contract mint).
* (app) [#282](https://github.com/stablelabs/stable/pull/282) Add multi-validator in-place-testnet support with deterministic key derivation, upgrade done record cleanup, and previous proposer initialization.
* (cmd) [#289](https://github.com/stablelabs/stable/pull/289) Add build-time EVM chain ID to `stabled version --long` output via SDK ExtraInfo.
* (ci) [#295](https://github.com/stablelabs/stable/pull/295) Add backport workflow to automatically create backport PRs for release branches via `backport:<branch>` label.

## [v1.2.2](https://github.com/stablelabs/stable/releases/tag/v1.2.2)

### Improvements

* (*) Bump up CometBFT to v0.38.21 ([stable-bft#24](https://github.com/stablelabs/stable-bft/pull/24)).

### Bug Fixes

* (app/abci, rpc) [#213](https://github.com/stablelabs/stable/pull/213) Fix system-tx block response issue where `eth_getBlockByNumber` returned invalid `chainId`, and fix `invalid transaction v, r, s values` errors during debug trace on blocks containing system tx (fixed in [stable-evm#77](https://github.com/stablelabs/stable-evm/pull/77)).
* (rpc) Apply tracing-related fixes from [stable-evm#75](https://github.com/stablelabs/stable-evm/pull/75).
* (rpc, indexer) Apply [stable-evm#79](https://github.com/stablelabs/stable-evm/pull/79) to keep waiver tx post-tx processing logs in order and include indexer-related fixes.


### Features

## [v1.2.1](https://github.com/stablelabs/stable/releases/tag/v1.2.1)

### Improvements

* (app/upgrades) [#188](https://github.com/stablelabs/stable/pull/188) Separate testnet and mainnet upgrade handlers with independent emergency recovery. Introduces rc-suffix based naming convention and independent build tags to prevent upgrade name conflicts and enable environment-specific emergency recovery during release cycles.

### Bug Fixes

* (cmd/stabled) [#171](https://github.com/stablelabs/stable/pull/171) Fix `debug_traceBlockByNumber` with `callTracer` causing nil pointer dereference by importing native tracers to register them with tracers.DefaultDirectory.
* (x/stable) [#173](https://github.com/stablelabs/stable/pull/173) Allow value transfer for waiver tx.
* (rpc) Update stable-evm to v0.0.0-20260205005014-eeb8a1995895 with RPC fixes: eth_estimateGas state overrides support, selfdestruct transaction error prevention.
* (x/stable) [#197](https://github.com/stablelabs/stable/pull/197) fix UnbondingCompletionIndex iterating over it with Next to use Set instead. 
* (app/ante, app/abci) [#194](https://github.com/stablelabs/stable/pull/194) Add validation for system transaction handling in CheckTx and PrepareProposal.
* (app/ante) [#195](https://github.com/stablelabs/stable/pull/195) fix enforce exec mode routing in WaiverPreDecorator and reject unpreserved wrapper fields
* (x/inflation) [#198](https://github.com/stablelabs/stable/pull/198) Check validation from inflation/MsgUpdateParams.

## [v1.2.0](https://github.com/stablelabs/stable/releases/tag/v1.2.0)

### Features

* (*) [#106](https://github.com/stablelabs/stable/pull/106) Support ERC20 as Gas.
* (x/stable) [#139](https://github.com/stablelabs/stable/pull/139) Add gas waiver feature for whitelisted partners to submit gas-free transactions on behalf of users. Includes WaiverPreDecorator for transaction replacement and SkipFeeKey integration with stable-evm.
* (*) [#144](https://github.com/stablelabs/stable/pull/144) Bump up cosmos/evm v0.5.2.
* (x/stable, app/abci) [#146](https://github.com/stablelabs/stable/pull/146) Add unbonding completion event emission via system transactions. Unbonding executor stores completion data in x/stable module state when unbonding completes. PrepareProposal creates system transaction to emit unbonded events, enabling clients to track unbonding completion on EVM.
* (precompiles/staking) [#146](https://github.com/stablelabs/stable/pull/146) Add ERC20 Transfer event emission for staking delegation. Transfer event is emitted from governance token address (0x1003) showing `delegator → validator` token movement when delegating via staking precompile.

### Improvements

* (app/ante, precompiles/stable) [#146](https://github.com/stablelabs/stable/pull/146) Improve system transaction identification to use `From == 0x1`. System transactions skip signature verification, nonce increment, and gas fee consumption.
* (*) Update stable-bft to v0.38.20-stable-2 with TxRelations support in CheckTx.
* (precompiles) [#199](https://github.com/stablelabs/stable/pull/199) Require at least the query gas to prevent potential Dos attack.

### Bug Fixes

* (x/vm) [#164](https://github.com/stablelabs/stable/pull/164) Return defaultEvmCoinInfo on unmarshal errors to fix compatibility with pre-v1.2.0 blocks (before KeyPrefixEvmCoinInfo introduction).

### State Machine Breaking

* (*) [#106](https://github.com/stablelabs/stable/pull/106) Remove gas coin <-> USDT0 connection.

## [v1.1.4](https://github.com/stablelabs/stable/releases/tag/v1.1.4)

### Improvements

* (*) Replace LGPL-3.0 with custom Delayed Open-Source License from Stable Foundation. This source-available license automatically converts to Apache 2.0 on December 8, 2055.
* (*) Update stable-bft to v0.38.20-stable.
* (*) Update stable-evm to v0.3.2-stable-4.

### Bug Fixes

* (*) [#128](https://github.com/stablelabs/stable/pull/128) Update stable-evm to v0.3.2-stable-2 to restore evm-chain-id configuration in app.toml. This fixes json-rpc server using default chain id instead of configured chain id.


## [v1.1.2](https://github.com/stablelabs/stable/releases/tag/v1.1.2)

### Improvements

* (x/restriction) [#117](https://github.com/stablelabs/stable/pull/117) Remove unused OracleHooks interface and related code that was never registered or utilized in production.

### Bug Fixes

* (*) [#107](https://github.com/stablelabs/stable/pull/107) Bump-up gogoproto bug fix.
* (x/inflation) [#110](https://github.com/stablelabs/stable/pull/110) Replace math.Pow with deterministic LegacyDec implementation to ensure consistent results across ARM64 and AMD64 architectures.
* (cmd/stabled) [#112](https://github.com/stablelabs/stable/pull/112) Use build-time EVMChainID instead of local config in newApp and appExport to prevent non-deterministic behavior from misconfiguration.
* (x/restriction) [#120](https://github.com/stablelabs/stable/pull/120) Fix Potential Chain Halt by ERC20 Blocked Address Check on Block Handlers.

### State Machine Breaking

* (x/govshuttle) [#115](https://github.com/stablelabs/stable/pull/115) Remove unused govshuttle module. Module store will be deleted during v1.1.2 upgrade.
* (x/feegrant) [#116](https://github.com/stablelabs/stable/pull/116) Remove feegrant module as it is not used in Stable chain after genesis. Module store will be deleted during v1.1.2 upgrade
* (app/upgrades) [#123](https://github.com/stablelabs/stable/pull/123) Clear budget module parameters and transfer remaining funds (Approximately 3~4 gUSDT) from budget destination address to target address. After upgrade, staking rewards will flow directly from fee collector to distribution module without budget plan intermediation.

### Bug Fixes
* (x/restriction) [#120](https://github.com/stablelabs/stable/pull/120) Fix Potential Chain Halt by ERC20 Blocked Address Check on Block Handlers.

## [v1.1.1](https://github.com/stablelabs/stable/releases/tag/v1.1.1) * for only testnet

### Features

* (app/upgrades) [#108](https://github.com/stablelabs/stable/pull/108) Add v1.1.1 testnet upgrade handler to initialize epoch module and enable inflation on testnet.

## [v1.1.0](https://github.com/stablelabs/stable/releases/tag/v1.1.0)

### Features

* (*) [#104](https://github.com/stablelabs/stable/pull/104) Add upgrade handler for v1.1.0.

## [v1.0.0](https://github.com/stablelabs/stable/releases/tag/v1.0.0)

### Features

* (x/restriction) [#25](https://github.com/stablelabs/stable/pull/25) Add evm value transfer allow list.
* (x/restriction) [#30](https://github.com/stablelabs/stable/pull/30) Change evm value transfer allow list steps(admin -> manager -> allowed addresses).
* (precompiles/budget, precompiles/inflation) [#36](https://github.com/stablelabs/stable/pull/36) Add budget and inflation precompile.
* (x/precompile) [#42](https://github.com/stablelabs/stable/pull/42) Add USDT0 token supply invariant check to prevent over-issuance of gas coins.
* (precompiles/restriction) [#43](https://github.com/stablelabs/stable/pull/43) Add restriction precompile for EOA whitelist management with addEOA, removeEOA, isWhitelisted, and getWhitelisted methods.
* (x/restriction) [#48](https://github.com/stablelabs/stable/pull/48) Add USDT restriction logic which prevents gas coin transfers from blocked addresses in USDT0 contract using isBlocked view function.
* (app/precompiles) [#58](https://github.com/stablelabs/stable/pull/58) Add gov, slashing precompile from existing feature in the cosmos/evm & upgrade testnet-v6 for updating the params of EVM.
* (app/restriction) [#70](https://github.com/stablelabs/stable/pull/70) Remove eoa whitelist for evm value transfer, so that eoa can transfer evm value with no restriction. And also add upgrade handler for testnet-v7.
* (*) [#71](https://github.com/stablelabs/stable/pull/70) Rename gas denom from `ausdt` to `agasusdt`.
* (*) [#90](https://github.com/stablelabs/stable/pull/90) Bump up stable-bft to v0.38.19-stable-0, stable-sdk to v0.53.4-stable-1 and stable-evm to v0.3.0-stable-7.
* (*) [#96](https://github.com/stablelabs/stable/pull/96) Bump up stable-evm to v0.3.2-stable-0.
* (x/precompile) [#100](https://github.com/stablelabs/stable/pull/100) Usdt0TokenAddress gRPC query endpoint to retrieve registered USDT0 token address in precompile module
* (cmd/stabled) [#105](https://github.com/stablelabs/stable/pull/105) Update a vaule of specific namespace `stablebft` instead of `cometbft`

### Improvements

* (posthandler) [#2](https://github.com/stablelabs/stable/pull/2) Use log.Address for processing restriction event.
* (x/restriction) [#7](https://github.com/stablelabs/stable/pull/7) Move restriction flags to params.
* (precompiles/bank) [#11](https://github.com/stablelabs/stable/pull/11) Use msg server from bank precompile.
* (precompiles/*) [#13](https://github.com/stablelabs/stable/pull/13) Move duplicated precompile check logic to common.
* (x/precompile) [#14](https://github.com/stablelabs/stable/pull/14) Remove duplicated denom validation check.
* (app/ante) [#15](https://github.com/stablelabs/stable/pull/15) Apply minor comments.
  * Add nil check for handler options.
  * Remove fundAccount and replace with SetAccount.
  * Remove evm denom from MinGasPriceDecorator that is sdk side ante handler.
* (contracts) [#16](https://github.com/stablelabs/stable/pull/16) Contract gas efficiency.
* (x/inflation) [#17](https://github.com/stablelabs/stable/pull/17) Add fuzz test for allocate inflation.
* (x/restriction) [#25](https://github.com/stablelabs/stable/pull/25) Add evm value transfer allow list.
* (precompiles/bank) [#33](https://github.com/stablelabs/stable/pull/33) Add bank precompile instance for governance coin.
* (app/ante) [#34](https://github.com/stablelabs/stable/pull/34) Remove ante handler to allow only evm tx and disable sdk tx.
* (x/budget) [#36](https://github.com/stablelabs/stable/pull/36) Suppport evm address from MsgUpdateParams proposal of x/budget.
* (x/precompile) [#37](https://github.com/stablelabs/stable/pull/37) Remove staking, distribution permissions.
* (x/inflation) [#38](https://github.com/stablelabs/stable/pull/38) Refactor x/inflation.
  * Fixed returning to the LegacyDec type without considering precision.
* (app/upgrades) [#50](https://github.com/stablelabs/stable/pull/50) Modify testnet-v4 upgrade handler for migrating allowedListAddresses to EOAWhitelist.
* (precompiles/bank) [#72](https://github.com/stablelabs/stable/pull/72) Match events of bank precompile with ERC20.
* (app/upgrades) [#82](https://github.com/stablelabs/stable/pull/82) Add testnet-v8 upgrade handler to mint astable.
* (precompiles/*) [#83](https://github.com/stablelabs/stable/pull/83) Add ReturnRevertError for precompiles.
* (precompiles/bank) [#88](https://github.com/stablelabs/stable/pull/88) Add name, symbol and decimals methods to bank precompile.
* (app/upgrades) [#92](https://github.com/stablelabs/stable/pull/92) Add testnet-v8.1 upgrade handler for onboarding validators on testnet.
* (*) [#84](https://github.com/stablelabs/stable/pull/84) Inject chain-id from build-time.
* (ci) [#98](https://github.com/stablelabs/stable/pull/98) Build both mainnet and testnet binaries simultaneously in goreleaser regardless of tag suffix.
* (cmd/stabled) [#99](https://github.com/stablelabs/stable/pull/99) Generate a default chain-id in the telemetric as global values, Update a specific chain-id not random suffix in the genesis file.
* (evm) [#101](https://github.com/stablelabs/stable/pull/101) Return nil from evm tx when commit.

### Bug Fixes

* (x/inflation) [#1](https://github.com/stablelabs/stable/pull/1) Remove period from epoch provision formula.
* (x/inflation) [#3](https://github.com/stablelabs/stable/pull/3) Use pre-defined variable for event emit.
* (precompiles/bank) [#5](https://github.com/stablelabs/stable/pull/5) Add max recipients length on multi-transfer of bank precompile.
* (precompiles/staking) [#8](https://github.com/stablelabs/stable/pull/8) Fix commission field of MsgCreateValidator.
* (precompiles/staking) [#9](https://github.com/stablelabs/stable/pull/9) Set balanceChangeEntries in createValidator of staking precompile.
* (precompiles/bank) [#10](https://github.com/stablelabs/stable/pull/10) Add convert decimals to some methods of bank precompile.
* (precompiles/staking) [#12](https://github.com/stablelabs/stable/pull/12) Error msg for delegation query.
* (precompiles/*) [#18](https://github.com/stablelabs/stable/pull/18) Remove tx.origin from precompiles.
* (x/restriction) [#31](https://github.com/stablelabs/stable/pull/31) Fix off-by-one error in allowed addresses limit check.
* (app/ante) [#44](https://github.com/stablelabs/stable/pull/44) Allow sdk tx from ante handler for genesis txs.
* (app/upgrade) [#52](https://github.com/stablelabs/stable/pull/52) Add USDT0 token address to precompile module keeper from upgrade handler.
* (app) [#54](https://github.com/stablelabs/stable/pull/54) Use evm.evm-chain-id from app.toml.
* (x/restriction) [#64](https://github.com/stablelabs/stable/pull/64) Fix USDT0 restriction to validate both sender and recipient addresses during transfers.
* (*) [#91](https://github.com/stablelabs/stable/pull/91) Modify module path from github.com/stablelabs/stable/v1 to github.com/stablelabs/stable
* (precompiles/bank) [#93](https://github.com/stablelabs/stable/pull/93) Fix non-deterministic output ordering in multiTransfer by sorting outputs by address.

### CLI Breaking

* (cli) [#34](https://github.com/stablelabs/stable/pull/34) Remove tx and query commands from sdk cli.
* (x/restriction) [#43](https://github.com/stablelabs/stable/pull/43) Remove EOA whitelist management keeper methods and CLI commands. Use precompile interface instead.

### State Machine Breaking

* (x/restriction) [#7](https://github.com/stablelabs/stable/pull/7) Move restriction flags to params.
* (x/restriction) [#25](https://github.com/stablelabs/stable/pull/25) Add evm value transfer allow list.
* (x/restriction) [#30](https://github.com/stablelabs/stable/pull/30) Change evm value transfer allow list steps(admin -> manager -> allowed addresses).
* (x/inflation) [#38](https://github.com/stablelabs/stable/pull/38) Refactor x/inflation.
  * Change epochProvision from sdk.DecProto to sdk.Coin.
* (x/precompile) [#42](https://github.com/stablelabs/stable/pull/42) Added a new `usdt0TokenAddress` state within the module, marking a state-breaking change `x/restriction`
* (x/restriction) [#43](https://github.com/stablelabs/stable/pull/43) Update genesis state structure for testnet-v4 compatibility. Remove deprecated manager_addresses and allowed_lists fields.
* (x/restriction) [#70](https://github.com/stablelabs/stable/pull/70) Remove `EOAWhitelist` from restriction keeper.
* (precompiles) [#97](https://github.com/stablelabs/stable/pull/97) Use static error messages for precompile txs to ensure determinism. 
