github dymensionxyz/dymension v4.0.0

pre-release11 hours ago

Summary

This release delivers a major upgrade of the app to v50, significantly extends the IRO (Initial RollApp Offering) and streamer / Pump Stream capabilities (equilibrium pricing, graduation to AMMs, gas-free flows, FDV config, OTC buybacks, discounted offers, min trade amounts, etc.), and wires in Hyperlane, KAS bridge, IBC rate limiting, and TEE-based finalization as first-class features.
On top of that, it introduces endorsement-yielding sponsorships, richer incentives & lockup economics, multiple light client and rollapp safety improvements (rollbacks, headers from state info, circuit breakers, params in module store and faster block-time.

Features

Light client & rollapp

feat(lightclient): Add tx for setting canonical light client

feat(lightclient,rollapp): allows rollapp rollback even before the genesis bridge

feat(lightclient): update IBC headers from state info

feat(rollapp): add tee-config query command

App / params / upgrades

feat(app): Upgrading to v50

feat(app): add circuit breaker module

feat(params)!: moved params to module store instead of params keeper

feat(upgrade): upgrade handler to initialize endorsements for existing rollapps

feat(upgrade): added authorized circuit breaker accounts

feat(upgrade): wired gas free whitelisted txs

feat(upgrade): add new fee exempt message types for IRO transactions

IRO (Initial RollApp Offering)

feat(iro): setting equilibrium point where the raised dym goes to the liquidity pool

feat(iro): founder can trade before start time

feat(iro): ability to send percentage of the iro raised funds directly to founder

feat(iro): add option for vesting for owner funds

feat(iro): ability to launch iro on demand

feat(IRO): ability to have iro raise against other tokens and not only dym

feat(iro): iro upgrade handler

feat(IRO): refactor IRO buy/sell events to return Coin instead of Int

feat(IRO): graduate completed IROs into amm pool

feat(IRO): migrate iro plans that pass the eq point

feat(IRO): add min trading amount requirement

feat(IRO): adding initial FDV for standard (v2) IRO

Incentives, lockup & sponsorship

feat(lockup): added min lockup duration

feat(incentives): dont distribute endorsement rewards to non active rollapps

feat(incentives): support legacy EIP712 for CreateGauge

feat(incentives): prevent multiple partial unlocks for a single lock

feat(incentives): incentives distribution based on lock age

feat(sponsorship): added endorsement yielding

feat(sponsorship): lazy accumulator for endorsement yielding

feat(sponsorship): queries to get endorsement and estimate rewards

feat(sponsorship): only allow voting on rollapp gauges

feat(sponsership): allow to clear all votes on new endorsment stream

EIBC / Hyperlane / bridges / rate limit

feat(eibc): add ability to find fulfiller on demand

feat(eibc): optimistic eibc min fee is now percent

feat: Hyperlane integration + eibc transfer completion hooks

feat: use composable, non conflicting hyperlane metadata wire format to store forward memo and kaspa gadgets

feat: kas bridge

feat(ibcratelimit): wired the module

feat(bridgingfee): fee for HL transfers

TEE (Trusted Execution Environment)

feat: TEE based finalization

feat(tee): allow owner to toggle feature (global param can still block for all rollapps)

feat(tee): add tee-toggle cli command

Streamer / Pump Stream / OTC buyback

feat(streamer): pump stream

feat(streamer): support graduation in pump streams

feat(streamer): use pump streams for buyback

feat(streamer): wire BeginBlock logic

feat(streamer): fix bad pump amounts and skip non-iro rollapps

feat(OTCBuyback): feat OTC buyback

feat(otcbuyback): invariants

feat(otcbuyback): discounted offers

feat(otcbuyback): add params query

Forwarding & CLI utilities

feat: support HL-to-HL forwarding in x/forward module

feat: print HL message field by field in utils (CLIENT ONLY)

feat: improve x/forward CLI utilities (DRY + feature complete)

Other protocol features

feat(eibc): optimistic eibc min fee is now percent

feat(ante): implemented "inner decorator" which runs logic on wrapped msgs

feat(dymns): allow alias registration fee in foreign token

feat(deps): bump ethermint to 07f1611f6247

Fixes

Rollapp / lightclient / sequencer

fix(rollapp): allow tokenless on CreateRollapp / UpdateRollapp with eip

fix(rollapp): cli update only metadata

fix(rollapp): make MinimumSequencerBond optional

fix(rollapp): fee denom validation

fix(lightclient): fixed consensus states iterator

fix(lightclient): avoid all consensus states iter

fix(sequencer): missing interface registration in sequencer module

fix(sequencer): prevent self-kick to avoid state inconsistency

IRO / incentives / lockup / sponsorship

fix(iro): missing StartTimeAfterSettlement in IRO default params

fix(iro): first sell tokens, than charge fee

fix(lockup): remove logic to unlock all locks at end blocker, or from tx

fix(eibc): authorization min fee truncating

fix(lockup): get lock creation fee from params

fix(incentives): param switch for endorsement mode

fix(incentives): set min threshold for gauge incentives distribution

fix(incentives, lockup): added missing signer annotation

fix(sponsorship): added epoch identifier

fix(lockup): charging LockCreationFee only on new lock creation

fix(sponsorship): missing total power in the endorsement migration

fix(IRO): ensure approximation converges only via under-approximation

fix(iro): increase creation fee until cost is positive

fix(iro): fixed TokensForExactInAmount with USDC

fix(iro): make graduation logic gas free

fix(IRO): fixed precision for accurate liquidity calculations

fix(ante): unblock vesting msgs from ante handler

fix(ante): block MsgSubmitMisbehaviour to ensure validation logic in …

Denoms / metadata / deps

fix(denommetadata): wrong key in paginated guery for registered denoms

fix(codec): added missing codec registrations

fix(codec): shorten and consistency in amino names

fix(proto): formatting proto files

New Contributors

@Marcofann made their first contribution in #1698

@peicuiping made their first contribution in #1694

@LesCyber made their first contribution in #1767

@tomasandroil made their first contribution in #1761

@hugehope made their first contribution in #1735

@vipocenka made their first contribution in #1773

@huochexizhan made their first contribution in #1772

@welfuture made their first contribution in #1791

@threehonor made their first contribution in #1801

@jasmyhigh made their first contribution in #1806

@dizer-ti made their first contribution in #1818

@findnature made their first contribution in #1830

@yetyear made their first contribution in #1840

@MamunC0der made their first contribution in #1900

@Angith made their first contribution in #1898

@chengehe made their first contribution in #1914

@gopherorg made their first contribution in #1917

@HenmaSab0 made their first contribution in #1928

@ianlv made their first contribution in #1920

@jingchanglu made their first contribution in #1929

@pingshuijie made their first contribution in #1934

@minxinyi made their first contribution in #1936

@kilavvy made their first contribution in #1940

@VolodymyrBg made their first contribution in #1957

@GarmashAlex made their first contribution in #1961

@rejected-l made their first contribution in #1960

@MozirDmitriy made their first contribution in #1963

@youzichuan made their first contribution in #1962

@hongmengning made their first contribution in #1965

@radik878 made their first contribution in #1972

@crStiv made their first contribution in #1974

@deepdring made their first contribution in #1976

@gap-editor made their first contribution in #1985

@Snezhkko made their first contribution in #1982

@Fibonacci747 made their first contribution in #1992

@keeghcet made their first contribution in #1995

@defiberrys made their first contribution in #2008

@zhoujiaweii made their first contribution in #2015

@quantpoet made their first contribution in #2016

@sashaodessa made their first contribution in #2006

@yajianggroup made their first contribution in #2028

@mickychang9 made their first contribution in #2031

@asttool made their first contribution in #2053

@withtimezone made their first contribution in #2058

@mdqst made their first contribution in #2060

@famouswizard made their first contribution in #2062

@wyrapeseed made their first contribution in #2068

@kindknow made their first contribution in #2082

@claudecodering made their first contribution in #2096

@sunnyraindy made their first contribution in #2097

Don't miss a new dymension release

NewReleases is sending notifications on new releases.