Skip to content

Latest commit

 

History

History
904 lines (745 loc) · 73.9 KB

CHANGELOG.md

File metadata and controls

904 lines (745 loc) · 73.9 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Improvements

  • #1770 - refactor(params)!: Update ts buf gen

State Machine Breaking

For next mainnet version

  • #1688 - fix(inflation)!: make default inflation allocation follow tokenomics
  • #1682 - feat!: add upgrade handler for v1.1.0
  • #1706 - fix: v1.1.0 upgrade handler
  • #1712 - refactor(inflation): turn inflation off by default
  • #1713 - chore(build-release): use new rocksdb libraries and link required libs
  • #1715 - fix(build): revert! to working build + cherry-picks
  • #1766 - refactor(app-wasmext)!: remove wasmbinding CosmosMsg::Custom bindings.
  • #1774 - chore: update cosmos sdk v0.47.7
  • #1776 - feat(inflation): make inflation params a collection and add commands to update them
  • #1786 - fix(inflation): fix inflation off-by 2 error
  • #1792 - fix(inflation): uncomment legacy amino register on app module basic
  • #1795 - feat(inflation): add inflation tx cmds
  • #1796 - fix(inflation): fix num skipped epoch when inflation is added to an existing chain
  • #1797 - fix(inflation): fix num skipped epoch updates logic

Dapp modules: perp, spot, etc

  • #1573 - feat(perp): Close markets and compute settlement price
  • #1632 - feat(perp): Add settle position transaction
  • #1656 - feat(perp): Make the collateral denom a stateful collections.Item
  • #1663 - feat(perp): Add volume based rebates
  • #1669 - feat(perp): add query to get collateral metadata
  • #1677 - fix(perp): make Gen_market set initial perp versions
  • #1680 - feat(perp): MsgShiftPegMultiplier, MsgShiftSwapInvariant.
  • #1683 - feat(perp): Add StartDnREpoch to AfterEpochEnd hook
  • #1686 - test(perp): add more tests for perp module msg server for DnR
  • #1687 - chore(wasmbinding): delete CustomQuerier since we have QueryRequest::Stargate now
  • #1705 - feat(perp): Add oracle pair to market object
  • #1718 - fix: fees does not require additional funds
  • #1734 - feat(perp): MsgDonateToPerpFund sudo call as part of #1642
  • #1749 - feat(perp): move close market from Wasm Binding to MsgCloseMarket
  • #1752 - feat(oracle): MsgEditOracleParams sudo tx msg as part of #1642
  • #1755 - feat(oracle): Add more events on validator's performance
  • #1764 - fix(perp): make updateswapinvariant aware of total short supply to avoid panics

Non-breaking/Compatible Improvements

  • #1679 - test(perp): add more tests for perp module msg server
  • #1690 - docs(CHANGELOG.md): Correct the change log, providing clarity on what's released.
  • #1695 - feat(inflation): add events for inflation distribution
  • #1695 - fix(sudo): Make blank sudoers root invalid at genesis time.
  • #1710 - refactor(perp): Clean and organize module errors for x/perp
  • #1714 - ci(localnet.sh): Fix script, simplify, and test in CI.
  • #1719 - refactor(test): add is not mandatory interface to action
  • #1723 - ci(e2e-wasm.yml): rm unused workflow
  • #1728 - test(devgas-cli): CLI tests for devgas txs
  • #1731 - feat(cli): add cli command to decode stargate base64 messages
  • #1735 - test(sim): fix simulation tests
  • #1736 - test(sim): add sim genesis state for all cusom modules
  • #1754 - refactor(decode-base64): clean code improvements and fn docs
  • #1769 - feat: cherrypick GetBuildWasmMsg() to main branch
  • #1778 - chore: bump librocksdb to v8.9.1
  • #1799 refactor,docs(inflation): Document everything + delete unused code. Make perp and spot optional features in localnet.sh

Dependencies

  • Bump github.com/cometbft/cometbft-db from 0.9.0 to 0.9.1 (#1760)

  • Bump google.golang.org/grpc from 1.60.0 to 1.60.1 (#1763)

  • Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.1 to 2.19.1 (#1767, #1782)

  • Bump actions/cache from 3 to 4 (#1773)

  • Bump bufbuild/buf-setup-action from 1.28.1 to 1.29.0 (#1777)

  • Bump cosmossdk.io/errors from 1.0.0 to 1.0.1 (#1768)

  • Bump robinraju/release-downloader from 1.8 to 1.9 (#1783)

  • Bump codecov/codecov-action from 3 to 4 (#1784)

  • Bump golangci/golangci-lint-action from 3 to 4 (#1791)

  • Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (#1750)

  • Bump google.golang.org/protobuf from 1.31.0 to 1.32.0 (#1756)

  • Bump google.golang.org/grpc from 1.59.0 to 1.60.0 (#1720)

  • Bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#1724)

  • Bump github.com/holiman/uint256 from 1.2.3 to 1.2.4 (#1730)

  • Bump github.com/dvsekhvalnov/jose2go from 1.5.0 to 1.6.0 (#1733)

  • Bump github.com/spf13/cast from 1.5.1 to 1.6.0 (#1689)

  • Bump cosmossdk.io/math from 1.1.2 to 1.2.0 (#1676)

  • Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.0 to 2.18.1 (#1675)

  • Bump actions/setup-go from 4 to 5 (#1696)

  • Bump golang from 1.19 to 1.21 (#1698)

  • #1678 - chore(deps): collections to v0.4.0 for math.Int value encoder

[v1.1.0] - 2023-11-20

State Machine Breaking

  • #1670 - feat(inflation)!: Make inflation follow polynomial distribution from the tokenomics

[v1.0.0] - 2023-11-07

Nibiru v1.0.0 is the major release used for the genesis of the mainnet network, cataclysm-1. It includes all of the general purpose modules such as devgas, sudo, wasm, tokenfactory, and the defaults from Cosmos SDK v0.47.5.

State Machine Breaking

  • #1596 - epic(tokenfactory): State transitions, collections, genesis import and export, and app wiring
    • #1607 - Token factory transaction messages for CreateDenom, ChangeAdmin, and UpdateModuleParams
    • #1620 - Token factory transaction messages for Mint and Burn
  • tag:v1.0.0 epic(v1.0.0): Remove unneeded Dapp modules for smooth upgrades.
    • chore!: [Date: 2023-10-16] Remove inflation, perp, stablecoin, and spot modules and related protobufs. This will make it easier to add the store keys layer if we have breaking changes before the Dapps go live without blocking the mainnet deployment.
      Commits: #1667 6a01abe 2a250a3 d713f41 011f1ed
  • #1655 - fix(inflation): inflate NIBI correctly to strategic treasury account
  • #1646 - feat(wasmbinding)!: whitelisted stargate queries for QueryRequest::Stargate: auth, bank, gov, tokenfactory, epochs, inflation, oracle, sudo, devgas
  • #1645 - fix(tokenfactory)!: token supply in bank keeper must be correct after MsgBurn.
  • #1617 - fix(app)!: non-nil snapshot manager is not guaranteed in testapp
  • #1616 - fix(app)!: Add custom wasm snapshotter for proper state exports
  • #1615 - feat(ante)!: Ante handler to add a maximum commission rate of 25% for validators.
  • #1613 - feat(app)!: enforce min commission by changing default and genesis validation
  • #1609 - refactor(app)!: Remove x/stablecoin module.

Non-breaking/Compatible Improvements

  • #1659 - refactor(oracle): curate oracle default whitelist
  • #1652 - test: refactors cli.network suites with 'Integration' to use common function
  • #1649 - fix(ledger): fix ledger for newer macos versions
  • #1639 - fix(perp): by default, disable new markets until they are toggled on.
  • #1638 - test(tokenfactory): integration test core logic with a real smart contract using nibiru-std
  • #1631 - fix(.goreleaser.yml): Load version for wasmvm dynamically.
  • #1630 - refactor(wasm): clean up wasmbinding/ folder structure
  • #1614 - refactor(proto): Use explicit namespacing on proto imports for #1608
  • #1610 - refactor(app): Simplify app.go with less redundant imports using struct embedding.
  • #1606 - fix(perp): emit MarketUpdatedEvent in the absence of index price
  • #1700 - fix(oracle): remove non deterministic sqrt calculation

Dependencies

  • Bump github.com/prometheus/client_golang from 1.16.0 to 1.17.0 (#1605)
  • Bump bufbuild/buf-setup-action from 1.26.1 to 1.28.1 (#1624, #1641, #1654, #1671, #1673)
  • Bump stefanzweifel/git-auto-commit-action from 4 to 5 (#1625)
  • Bump github.com/CosmWasm/wasmvm from 1.4.0 to 1.5.0 (#1629, #1657)
  • Bump google.golang.org/grpc from 1.58.2 to 1.59.0 (#1633, #1643)
  • Bump golang.org/x/net from 0.12.0 to 0.17.0 (#1634)
  • feat(tools): Ignite CLI Open API spec generation -> Bump github.com/grpc-ecosystem/grpc-gateway/v2 to v2.18.0 (#1651)
  • Bump github.com/cosmos/ibc-go/v7 from 7.3.0 to 7.3.1 (#1647)
  • Bump github.com/CosmWasm/wasmd from 0.40.2 to 0.43.0 (#1660)
  • Bump github.com/CosmWasm/wasmd from 0.43.0 to 0.44.0 (#1666)
  • Bump github.com/spf13/cobra from 1.7.0 to 1.8.0 (#1664)
  • Bump github.com/gorilla/mux from 1.8.0 to 1.8.1 (#1665)

[v0.21.11] - 2023-10-02

NOTE: It's pragmatic to assume that any change prior to v1.0.0 was state machine breaking.

[v0.21.10] - 2023-09-20

State Machine Breaking

Features (Breaking)

  • #1594 - feat: add user discounts
  • #1585 - feat: include flag versioned in query markets to allow to query disabled markets
  • #1575 - feat(perp): Add trader volume tracking
  • #1559 - feat: add versions to markets to allow to disable them
  • #1543 - epic(devgas): devgas module for incentivizing smart contract
  • #1543 - epic(devgas): devgas module for incentivizing smart contract
  • #1541 - feat(perp): add clamp to premium fractions
  • #1520 - feat(wasm): no op handler + tests with updated contracts
  • #1503 - feat(wasm): add Oracle Exchange Rate query for wasm
  • #1503 - feat(wasm): add Oracle Exchange Rate query for wasm
  • #1502 - feat: add ledger build support
  • #1501 - feat(proto): add Python buf generation logic for py-sdk
  • #1501 - feat(proto): add Python buf generation logic for py-sdk
  • #1501 - feat(localnet.sh): (1) Make it possible to run while offline. (2) Implement --no-build option to use the script with the current nibid installed.
  • #1501 - feat(localnet.sh): (1) Make it possible to run while offline. (2) Implement --no-build option to use the script with the current nibid installed.
  • #1498 - feat: add cli to change root sudo command
  • #1498 - feat: add cli to change root sudo command
  • #1495 - feat: add genmsg module
  • #1494 - feat: create cli to add sudo account into genesis
  • #1479 - feat(perp): implement PartialClose
  • #1479 - feat(perp): implement PartialClose
  • #1463 - feat(oracle): add genesis pricefeeder delegation
  • #1463 - feat(oracle): add genesis pricefeeder delegation
  • #1463 - feat(oracle): add genesis pricefeeder delegation
  • #1421 - feat(oracle): add expiry time to oracle prices
  • #1407 - feat!: upgrade to Cosmos SDK v0.47.3
  • #1407 - feat!: upgrade to Cosmos SDK v0.47.3
  • #1387 - feat: upgrade to Cosmos SDK v0.46.10
  • #1387 - feat: upgrade to Cosmos SDK v0.46.10
  • #1380 - feat(wasm): Add CreateMarket admin call for the controller contract
  • #1380 - feat(wasm): Add CreateMarket admin call for the controller contract
  • #1373 - feat(perp): perpv2 add-genesis-perp-market CLI command
  • #1371 - feat: realize bad debt when a user tries to close his position
  • #1370 - feat(perp): perpv2 CreatePool method
  • #1367 - feat: wire enable market to wasm
  • #1367 - feat: wire enable market to wasm
  • #1366 - feat: fix bindings test in cw_test
  • #1363 - feat(perp): wire PerpV2 module
  • #1362 - feat(perp): add perpv2 cli
  • #1361 - feat(perp): add PerpV2 module
  • #1359 - feat(perp): Add InsuranceFundWithdraw admin call with corresponding smart contract
  • #1359 - feat(perp): Add InsuranceFundWithdraw admin call with corresponding smart contract
  • #1352 - feat(perp): add PerpKeeperV2 MsgServer
  • #1350 - feat(perp): EditPriceMultiplier and EditSwapInvariant
  • #1345 - feat(perp): PerpV2 QueryServer
  • #1344 - feat(perp): PerpKeeperV2 AddMargin and RemoveMargin
  • #1343 - feat(perp): add PerpKeeperV2 MultiLiquidate
  • #1342 - feat(perp): market not enabled can only be used to close out existing positions
  • #1342 - feat(perp): market not enabled can only be used to close out existing positions
  • #1341 - feat(bindings/oracle): add bindings for oracle module params
  • #1340 - feat(wasm): Enforce x/sudo contract permission checks on the shifter contract + integration tests
  • #1338 - feat(perp): V2 OpenPosition

Bug Fixes (Breaking)

  • #1586 - fix(sudo): make messages compatible with Amino
  • #1565 - fix(oracle)!: Count vote omission as abstain for less slashing + more stability
  • #1493 - fix(perp): allow ClosePosition when there is bad debt
  • #1476 - fix(wasm)!: call ValidateBasic before all sdk.Msg calls for the bindings-perp contract + remove sudo permissioning
  • #1467 - fix(oracle): make calcTwap safer
  • #1467 - fix(oracle): make calcTwap safer
  • #1464 - fix(gov): wire legacy proposal handlers
  • #1464 - fix(gov): wire legacy proposal handlers
  • #1459 - fix(spot): wire x/spot msgService into app router
  • #1459 - fix(spot): wire x/spot msgService into app router
  • #1452 - fix(oracle): continue with abci hook during error
  • #1451 - fix(perp): decrease position with zero size
  • #1446 - fix(cmd): Add custom InitCmd to set set desired Tendermint consensus params for each node.
  • #1441 - fix(oracle): ignore abstain votes in std dev calculation
  • #1425 - fix: remove positions from state when closed with reverse position
  • #1423 - fix: remove panics from abci hooks
  • #1422 - fix(oracle): handle zero oracle rewards
  • #1420 - refactor(oracle): update default params
  • #1419 - fix(spot): add pools to genesis state
  • #1417 - fix: run end blocker on block end for perp v2
  • #1414 - fix(oracle): Add deterministic map iterations to avoid consensus failure.
  • #1413 - fix(perp): provide descriptive errors when all liquidations fail in MultiLiquidate
  • #1413 - fix(perp): provide descriptive errors when all liquidations fail in MultiLiquidate
  • #1397 - fix: ensure margin is high enough when removing it
  • #1383 - feat: enforce contract to be whitelisted when calling perp bindings
  • #1379 - feat(perp): check for denom in add/remove margin
  • #1210 - fix(ci): fix docker push workflow

Else (Breaking)

  • #1477 - refactor(oracle)!: Move away from deprecated events to typed events in x/oracle
  • #1477 - refactor(oracle)!: Move away from deprecated events to typed events in x/oracle
  • #1473 - refactor(perp)!: rename OpenPosition to MarketOrder
  • #1473 - refactor(perp)!: rename OpenPosition to MarketOrder
  • #1427 - refactor(perp)!: PositionChangedEvent MarginToUser
  • #1427 - refactor(perp)!: PositionChangedEvent MarginToUser
  • #1426 - refactor(perp): remove price fluctuation limit check
  • #1388 - refactor(perp)!: idempotent position changed event
  • #1388 - refactor(perp)!: idempotent position changed event
  • #1385 - test(perp): add clearing house negative tests
  • #1385 - test(perp): add clearing house negative tests
  • #1382 - refactor(perp)!: remove perpv1
  • #1382 - refactor(perp)!: remove perpv1
  • #1356 - build: Regress wasmvm (v1.1.1), tendermint (v0.34.24), and Cosmos-SDK (v0.45.14) dependencies
  • #1356 - build: Regress wasmvm (v1.1.1), tendermint (v0.34.24), and Cosmos-SDK (v0.45.14) dependencies
  • #1346 - build: Upgrade wasmvm (v1.2.1), tendermint (v0.34.26), and Cosmos-SDK (v0.45.14) dependencies
  • #1346 - build: Upgrade wasmvm (v1.2.1), tendermint (v0.34.26), and Cosmos-SDK (v0.45.14) dependencies

Non-breaking/Compatible Improvements

  • #1579 - chore(proto): Add a buf.gen.rs.yaml and corresponding script to create Rust types for Wasm Stargate messages
  • #1574 - chore(goreleaser): update wasmvm to v1.4.0
  • #1558 - feat(perp): paginated query to read the position store
  • #1555 - feat(devgas): Convert legacy ABCI events to typed proto events
  • #1554 - refactor: runs gofumpt formatter, which has nice conventions: go install mvdan.cc/gofumpt@latest
  • #1536 - test(perp): add more tests to perp module and cli
  • #1533 - feat(perp): add differential fields to PositionChangedEvent
  • #1527 - test(common): add docs for testutil and increase test coverage
  • #1521 - test(sudo): increase unit test coverage
  • #1519 - test: add more tests to x/perp keeper
  • #1518 - test: add more tests to x/perp
  • #1517 - test: add more tests to x/hooks
  • #1506 - refactor(oracle): Implement OrderedMap and use it for iterating through maps in x/oracle
  • #1500 - refactor(perp): clean up reverse market order mechanics
  • #1466 - refactor(perp): PositionLiquidatedEvent
  • #1466 - refactor(perp): PositionLiquidatedEvent
  • #1462 - fix(perp): Add pair to liquidation failed event.
  • #1424 - feat(perp): Add change type and exchanged margin to position changed events.
  • #1408 - feat(spot): idempotent events
  • #1406 - feat(perp): emit additional event info
  • #1405 - ci: use Buf to build protos
  • #1390 - fix(localnet.sh): Fix genesis market initialization + add force exits on failure
  • #1369 - refactor(oracle): divert rewards from perpv2 instead of perpv1
  • #1365 - refactor(perp): split perp module into v1/ and v2/

Dependencies

  • #1523 - chore: bump cosmos-sdk to v0.47.4

  • #1381 - chore(deps): Bump github.com/cosmos/cosmos-sdk to 0.45.16

  • Bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible (#1339)

  • Bump github.com/CosmWasm/wasmvm from 1.2.1 to 1.4.0 (#1354, #1507, #1564)

  • Bump github.com/spf13/cast from 1.5.0 to 1.5.1 (#1358)

  • Bump github.com/stretchr/testify from 1.8.2 to 1.8.4 (#1384, #1435)

  • Bump cosmossdk.io/math from 1.0.0-beta.6 to 1.1.2 (#1394, #1547)

  • Bump google.golang.org/grpc from 1.53.0 to 1.58.2 (#1395, #1437, #1443, #1497, #1525, #1568, #1582, #1598)

  • Bump github.com/gin-gonic/gin from 1.8.1 to 1.9.1 (#1409)

  • Bump github.com/spf13/viper from 1.15.0 to 1.16.0 (#1436)

  • Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#1431)

  • Bump github.com/cosmos/ibc-go/v7 from 7.1.0 to 7.3.0 (#1445, #1562)

  • Bump bufbuild/buf-setup-action from 1.21.0 to 1.26.1 (#1449, #1469, #1505, #1510, #1537, #1540, #1544)

  • Bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (#1450)

  • Bump cosmossdk.io/errors from 1.0.0-beta.7 to 1.0.0 (#1499)

  • Bump github.com/holiman/uint256 from 1.2.2 to 1.2.3 (#1504)

  • Bump docker/build-push-action from 4 to 5 (#1572)

  • Bump docker/login-action from 2 to 3 (#1571)

  • Bump docker/setup-buildx-action from 2 to 3 (#1570)

  • Bump docker/setup-qemu-action from 2 to 3 (#1569)

  • Bump github.com/cosmos/cosmos-sdk from v0.47.4 to v0.47.5 (#1578)

  • Bump codecov/codecov-action from 3 to 4 (#1583)

  • Bump actions/checkout from 3 to 4 (#1593)

  • Bump github.com/docker/distribution from 2.8.1+incompatible to 2.8.2+incompatible (#1339)

  • Bump github.com/CosmWasm/wasmvm from 1.2.1 to 1.3.0 (#1354, #1507)

  • Bump github.com/spf13/cast from 1.5.0 to 1.5.1 (#1358)

  • Bump github.com/stretchr/testify from 1.8.2 to 1.8.4 (#1384, #1435)

  • Bump cosmossdk.io/math from 1.0.0-beta.6 to 1.1.2 (#1394, #1547)

  • Bump google.golang.org/grpc from 1.53.0 to 1.57.0 (#1395, #1437, #1443, #1497, #1525)

  • Bump github.com/gin-gonic/gin from 1.8.1 to 1.9.1 (#1409)

  • Bump github.com/spf13/viper from 1.15.0 to 1.16.0 (#1436)

  • Bump github.com/prometheus/client_golang from 1.15.1 to 1.16.0 (#1431)

  • Bump github.com/cosmos/ibc-go/v7 from 7.1.0 to 7.3.0 (#1445, #1562)

  • Bump bufbuild/buf-setup-action from 1.21.0 to 1.26.1 (#1449, #1469, #1505, #1510, #1537, #1540, #1544)

  • Bump google.golang.org/protobuf from 1.30.0 to 1.31.0 (#1450)

  • Bump cosmossdk.io/errors from 1.0.0-beta.7 to 1.0.0 (#1499)

  • Bump github.com/holiman/uint256 from 1.2.2 to 1.2.3 (#1504)

  • Bump actions/checkout from 3 to 4 (#1563)

[v0.19.4] - 2023-05-26

State Machine Breaking

  • #1336 - feat: move oracle params out of params subspace and onto the keeper
  • #1336 - feat: move oracle params out of params subspace and onto the keeper
  • #1335 - refactor(perp): move remaining perpv1 files to v1 directory
  • #1334 - feat(perp): add PerpKeeperV2 ClosePosition
  • #1333 - feat(perp): add basic clearing house functions
  • #1332 - feat(perp): add hooks to update funding rate
  • #1331 - refactor(perp): create perp v1 type package and module package
  • #1329 - feat(perp): add PerpKeeperV2 withdraw methods
  • #1328 - feat(perp): add PerpKeeperV2 swap methods
  • #1322 - build(deps): Bumps github.com/armon/go-metrics from 0.4.0 to 0.4.1.
  • #1319 - test: add integration test actions
  • #1317 - feat(testutil): Use secp256k1 algo for private key generation in common/testutil.
  • #1317 - feat(sudo): Implement and test CLI commands for tx and queries.
  • #1317 - feat(sudo): Implement and test CLI commands for tx and queries.
  • #1315 - feat: oracle rewards distribution every week
  • #1315 - feat: oracle rewards distribution every week
  • #1312 - feat(wasm): wire depth shift handler to the wasm router
  • #1312 - feat(wasm): wire depth shift handler to the wasm router
  • #1311 - feat(perp): add PerpKeeperV2
  • #1311 - feat(perp): add Calc and Twap methods
  • #1309 - feat: minimum swap amount set to $1
  • #1309 - feat: minimum swap amount set to $1
  • #1308 - feat(perp): ensure there's no int overflow in liq depth calculation
  • #1307 - feat(sudo): Create the x/sudo module + integration tests
  • #1307 - feat(sudo): Create the x/sudo module + integration tests
  • #1306 - feat(perp): complete perp v2 types
  • #1306 - feat(perp): complete perp v2 types
  • #1305 - refactor(perp!): Remove unnecessary protos
  • #1305 - refactor(perp!): Remove unnecessary protos
  • #1304 - feat: db backend - rocksdb
  • #1304 - feat: db backend - rocksdb
  • #1302 - refactor(oracle)!: price snapshot start time inclusive
  • #1302 - refactor(oracle)!: price snapshot start time inclusive
  • #1301 - fix(epochs)!: correct epoch start time
  • #1301 - fix(epochs)!: correct epoch start time
  • #1299 - feat(wasm): Add peg shift bindings
  • #1299 - feat(wasm): Add peg shift bindings
  • #1298 - refactor(perp)!: remove MaxOracleSpreadRatio from Perpv2
  • #1298 - refactor(perp)!: remove MaxOracleSpreadRatio from Perpv2
  • #1296 - refactor(perp)!: update perp v2 state protos
  • #1296 - refactor(perp)!: update perp v2 state protos
  • #1295 - refactor(app): Organize keepers, store keys, and module manager initialization in app.go
  • #1292 - feat(wasm): Add module bindings for execute calls in x/perp: OpenPosition, ClosePosition, AddMargin, RemoveMargin.
  • #1292 - feat(wasm): Add module bindings for execute calls in x/perp: OpenPosition, ClosePosition, AddMargin, RemoveMargin.
  • #1291 - refactor(perp)!: add perp v2 state protos
  • #1291 - refactor(perp)!: add perp v2 state protos
  • #1290 - refactor: fix quote/base reserve naming convention
  • #1289 - feat: SqrtDepth equal to base reserves when pool creation
  • #1287 - feat(wasm): Add module bindings for custom queries in x/perp: Reserves, AllMarkets, BasePrice, PremiumFraction, Metrics, PerpParams, PerpModuleAccounts
  • #1287 - feat(wasm): Add module bindings for custom queries in x/perp: Reserves, AllMarkets, BasePrice, PremiumFraction, Metrics, PerpParams, PerpModuleAccounts
  • #1286 - feat: bias is zero when creating pool
  • #1284 - feat: fails if base and quote reserves are not equal on CreatePool
  • #1282 - feat(inflation)!: add inflation module
  • #1282 - feat(inflation)!: add inflation module
  • #1281 - feat: add peg multiplier to the pricing logic
  • #1281 - feat: add peg multiplier to the pricing logic
  • #1271 - refactor(perp)!: vpool → perp/amm #2 | imports and renames
  • #1271 - refactor(perp)!: vpool → perp/amm #2 | imports and renames
  • #1270 - refactor(proto)!: lint protos and standardize versioning
  • #1270 - refactor(proto)!: lint protos and standardize versioning
  • #1269 - refactor(perp)!: merge x/util with x/perp
  • #1269 - refactor(perp)!: merge x/util with x/perp
  • #1267 - refactor(perp)!: vpool → perp/amm #1 | Moves types, keeper, and cli
  • #1267 - refactor(perp)!: vpool → perp/amm #1 | Moves types, keeper, and cli
  • #1255 - feat: add peg multiplier field into vpool, which for now defaults to 1
  • #1255 - feat: add peg multiplier field into vpool, which for now defaults to 1
  • #1254 - feat: add bias field into vpool
  • #1254 - feat: add bias field into vpool
  • #1248 - refactor(common): Combine x/testutil and x/common/testutil.
  • #1245 - fix(localnet.sh): force localnet.sh to work even if Coingecko is down
  • #1244 - feat: add typed event for oracle post price
  • #1243 - feat(vpool): sqrt of liquidity depth tracked on pool
  • #1243 - feat(vpool): sqrt of liquidity depth tracked on pool
  • #1240 - ci: Test make proto-gen when the proto gen scripts or .proto files change
  • #1237 - feat: reduce gas on openposition
  • #1229 - feat: upgrade ibc to v4.2.0 and wasm v0.30.0
  • #1229 - feat: upgrade ibc to v4.2.0 and wasm v0.30.0
  • #1228 - feat: update github.com/CosmWasm/wasmd 0.29.2
  • #1220 - feat: reduce gas fees when posting price
  • #1220 - feat: reduce gas fees when posting price
  • #1219 - fix(ci): use chaosnet image on chaosnet docker compose
  • #1212 - fix(spot): gracefully handle join spot pool with wrong tokens denom

Non-breaking/Compatible Improvements

  • #1337 - fix(ci): fix dockerfile with rocksdb
  • #1276 - feat: add ewma function
  • #1218 - ci(release): Publish chaosnet image when tagging a release
  • #1210 - fix(ci): fix docker push workflow

Dependencies

  • Bump technote-space/get-diff-action from 4 to 6 (#1327)

  • Bump robinraju/release-downloader from 1.6 to 1.8 (#1326)

  • Bump pozetroninc/github-action-get-latest-release from 0.6.0 to 0.7.0 (#1325)

  • Bump actions/setup-go from 3 to 4 (#1324)

  • #1321 - build(deps): bump github.com/prometheus/client_golang from 1.15.0 to 1.15.1

  • #1256 - chore(deps): bump github.com/spf13/cobra from 1.6.1 to 1.7.0

  • #1231 - chore(deps): bump github.com/cosmos/ibc-go/v4 from 4.2.0 to 4.3.0 #1231

  • #1230 - chore(deps): Bump github.com/holiman/uint256 from 1.2.1 to 1.2.2

  • #1223 - chore(deps): bump github.com/golang/protobuf from 1.5.2 to 1.5.3

  • #1222 - chore(deps): bump google.golang.org/protobuf from 1.28.2-0.20220831092852-f930b1dc76e8 to 1.29.0

  • #1211 - chore(deps): Bump github.com/stretchr/testify from 1.8.1 to 1.8.2

  • #1283 - chore(deps): bump github.com/prometheus/client_golang from 1.14.0 to 1.15.0

v0.19.2 - 2023-02-24

Summary: Changes up to pull request #1208

State Machine Breaking

  • #1196 - refactor(spot)!: default whitelisted asset and query cli
  • #1195 - feat(perp)!: Add MultiLiquidation feature for perps
  • #1194 - fix(oracle): local min voters
  • #1187 - feat(oracle): default vote threshold and min voters
  • #1176 - refactor(spot)!: replace x/dex module with x/spot.
  • #1173 - refactor(spot)!: replace x/dex module with x/spot.
  • #1171 - refactor(asset)!: Replace common.AssetPair with asset.Pair.
  • #1164 - refactor: remove client interface for liquidate msg
  • #1158 - feat(asset-registry)!: Add AssetRegistry
  • #1156 - refactor: remove lockup & incentivation module
  • #1154 - refactor(asset-pair)!: refactors common.AssetPair as an extension of string
  • #1151 - fix(dex): fix swap calculation for stableswap pools
  • #1131 - fix(oracle): use correct distribution module account

Non-breaking/Compatible Improvements

  • #1205 - test: first testing framework skeleton and example
  • #1203 - ci: make chaosnet pull nibiru image if --build is not specified
  • #1199 - chore(deps): bump golang.org/x/net from 0.4.0 to 0.7.0
  • #1197 - feat: add fees into events in spot module: EventPoolExited, EventPoolCreated, EventAssetsSwapped.
  • #1197 - refactor(testutil): clean up x/common/testutil test setup code
  • #1193 - refactor(oracle): clean up x/oracle/keeper tests
  • #1192 - feat: chaosnet docker-compose
  • #1191 - fix(oracle): default whitelisted pairs
  • #1190 - ci(release): fix TM_VERSION not being set on releases
  • #1189 - ci(codecov): add Codecov reporting
  • #1188 - fix(spot): remove A precision and clean up borked logic
  • #1184 - docs(oracle): proto type docs, (2) spec clean-up, and (3) remove panic case
  • #1181 - refactor(oracle): keeper method locations
  • #1180 - refactor(oracle): whitelist refactor
  • #1179 - refactor(oracle): types refactor for validator performance map and whitelist map
  • #1165 - chore(deps): bump cosmos-sdk to v0.45.12
  • #1161 - refactor: migrate simapp tests to use main app
  • #1160 - feat: generic set
  • #1149 - chore(deps): Bump github.com/btcsuite/btcd from 0.22.1 to 0.22.2
  • #1146 - fix: local docker-compose network
  • #1145 - chore: add USD quote asset
  • #1144 - ci: release for linux and darwin (arm64 and amd64)
  • #1141 - refactor(oracle): rename variables for readability
  • #1139 - feat: add default oracle whitelisted pairs
  • #1138 - refactor: put Makefile workflows in separate directory
  • #1135 - fix: add genesis oracle prices to localnet
  • #1134 - refactor: remove panics from vpool and spillovers from the perp module. It's now impossible to call functions in x/perp that would panic in vpool.
  • #1127 - refactor: remove unnecessary panics from x/dex and x/stablecoin
  • #1126 - test(oracle): stop the tyrannical behavior of TestFuzz_PickReferencePair
  • #1126 - test(oracle): stop the tyrannical behavior of TestFuzz_PickReferencePair
  • #1126 - refactor(perp): remove unnecessary panics
  • #1089 - refactor(deps): Bump github.com/holiman/uint256 from 1.1.1 to 1.2.1 (syntax changes)
  • #1032 - ci: Create e2e wasm contract test

[v0.16.3] - 2022-12-28

Features

  • #1115 - feat: improve single asset join calculation
  • #1117 - feat: wire multi-liquidate transaction
  • #1120 - feat: replace pricefeed with oracle

Bug Fixes

  • #1113 - fix: fix quick simulation issue
  • #1114 - fix(dex): fix single asset join
  • #1116 - fix(dex): unfroze pool when LP share supply of 0
  • #1124 - fix(dex): fix unexpected panic in stableswap calcs

[v0.16.2] - 2022-12-13

Features

  • #1032 - feeder: add price provide API and bitfinex price source
  • #1038 - feat(dex): add single asset join
  • #1050 - feat(dex): add stableswap pools
  • #1058 - feature: use collections external lib
  • #1082 - feat(vpool): Add gov proposal for editing the sswap invariant of a vpool..
  • #1092 - refactor(dex)!: revive dex module using intermediate test app
  • #1097 - feat(perp): Track and expose the net size of a pair with a query
  • #1105 - feat(perp): Add (notional) volume to metrics state

API Breaking

  • #1074 - feat(vpool): Add gov proposal for editing the vpool config without changing the reserves.

State Machine Breaking

  • #1102 - refactor(perp)!: replace CumulativePremiumFractions array with single value

Breaking Changes

  • #1074 - feat(vpool): Add gov proposal for editing the vpool config without changing the reserves.

Improvements

  • #1111 - feat(vpool)!: Use flags and certain default values instead of unnamed args for add-genesis-vpool to improve ease of use
  • #1046 - remove: feeder. The price feeder was moved to an external repo.
  • #1015 - feat(dex): throw error when swap output amount is less than 1
  • #1018 - chore(dex): refactor to match best practice
  • #1024 - refactor(oracle): remove Pair and PairList
  • #1034 - refactor(proto): use proto-typed events x/dex
  • #1035 - refactor(proto): use proto-typed events for epochs
  • #1014 - refactor(oracle): full refactor of EndBlock UpdateExchangeRates() long function
  • #1054 - chore(deps): Bump github.com/cosmos/ibc-go/v3 from 3.3.0 to 3.4.0
  • #1043 - chore(deps): Bump github.com/spf13/cobra from 1.6.0 to 1.6.1
  • #1056 - chore(deps): Bump github.com/prometheus/client_golang from 1.13.0 to 1.13.1
  • #1055 - chore(deps): Bump github.com/spf13/viper from 1.13.0 to 1.14.0
  • #1061 - feat(cmd): hard-code block time parameters in the Tendermint config
  • #1068 - refactor(vpool)!: Remove ReserveSnapshot from the vpool genesis state since reserves are taken automatically on vpool initialization.
  • #1064 - test(wasm): add test for Cosmwasm
  • #1075 - feat(dex): remove possibility to create multiple pools with the same assets
  • #1080 - feat(perp): Add exchanged notional to the position changed event #1080
  • #1082 - feat(localnet.sh): Set genesis prices based on real BTC and ETH prices
  • #1086 - refactor(perp)!: Removed unused field, LiquidationPenalty, from PositionChangedEvent
  • #1093 - simulation(dex): add simulation tests for stableswap pools
  • #1091 - refactor: Use common.Precision instead of 1_000_000 in the codebase
  • #1109 - refactor(vpool)!: Condense swap SwapXForY and SwapYForX events into SwapEvent

Bug Fixes

  • #1100 - fix(oracle): fix flaky oracle test
  • #1110 - fix(dex): fix dex issue on unsorted join pool

CI

  • #1088 - ci: build cross binaries

v0.15.0

CI

  • #785 - ci: create simulations job

State Machine Breaking

  • #994 - x/oracle refactor to use collections
  • #991 - collections refactoring of keys and values
  • #978 - x/vpool move state logic to collections
  • #977 - x/perp add whitelisted liquidators
  • #960 - x/common validate asset pair denoms
  • #952 - x/perp move state logic to collections
  • #872 - x/perp remove module balances from genesis
  • #878 - rename PremiumFraction to FundingRate
  • #900 - refactor x/vpool snapshot state management
  • #904 - refactor: change Pool name to VPool in vpool module
  • #894 - add the collections package!
  • #897 - x/pricefeed - use collections.
  • #933 - refactor(perp): remove whitelist and simplify state keys
  • #959 - feat(vpool): complete genesis import export
    • removed Params from genesis.
    • added pair into ReserveSnapshot type.
    • added validation of snapshots and snapshots in genesis.
  • #975 - fix(perp): funding payment calculations
  • #976 - refactor(epochs): refactor to increase readability and some tests
    • EpochInfo.CurrentEpoch changed from int64 to uint64.

API Breaking

  • #880 - refactor PostRawPrice return values
  • #900 - fix x/vpool twap calculation to be bounded in time
  • #919 - refactor(proto): vpool module files consistency
    • MarkPriceChanged renamed to MarkPriceChangedEvent
  • #875 - x/perp add MsgMultiLiquidate
  • #979 - refactor and clean VPool.

Improvements

  • #1044 - feat(wasm): cosmwasm module integration
  • #858 - fix trading limit ratio check; checks in both directions on both quote and base assets
  • #865 - refactor(vpool): clean up interface for CmdGetBaseAssetPrice to use add and remove as directions
  • #868 - refactor dex integration tests to be independent between them
  • #876 - chore(deps): bump github.com/spf13/viper from 1.12.0 to 1.13.0
  • #879 - test(perp): liquidate cli test and genesis fix for testutil initGenFiles
  • #889 - feat: decouple keeper from servers in pricefeed module
  • #886 - feat: decouple keeper from servers in perp module
  • #901 - refactor(vpool): remove GetUnderlyingPrice method
  • #902 - refactor(common): improve usability of common.AssetPair
  • #913 - chore(epochs): update x/epochs module
  • #911 - test(perp): add MsgOpenPosition simulation tests
  • #917 - refactor(proto): perp module files consistency
  • #920 - refactor(proto): pricefeed module files consistency
  • #926 - feat: use spot twap for funding rate calculation
  • #932 - refactor(perp): rename premium fraction to funding rate
  • #963 - test: add collections api tests
  • #971 - chore: use upstream 99designs/keyring module
  • #964 - test(vpool): refactor flaky vpool cli test
  • #956 - test(perp): partial liquidate unit test
  • #981 - chore(testutil): clean up x/testutil packages
  • #980 - test(perp): add MsgClosePosition, MsgAddMargin, and MsgRemoveMargin simulation tests
  • #987 - feat: create a query that directly returns all module accounts without pagination or iteration
  • #982 - improvements for pricefeed genesis
  • #989 - test(perp): cli test for AddMargin
  • #1001 - chore(deps): bump github.com/spf13/cobra from 1.5.0 to 1.6.0
  • #1013 - test(vpool): more calc twap tests and documentation
  • #1012 - test(vpool): make vpool simulation with random parameters

Features

  • #1019 - add fields to the snapshot reserve event
  • #1010 - feeder: initialize oracle feeder core logic
  • #966 - collections: add indexed map
  • #852 - feat(genesis): add cli command to add pairs at genesis
  • #861 - feat: query cumulative funding payments
  • #985 - feat: query all active positions for a trader
  • #997 - feat: emit ReserveSnapshotSavedEvent in vpool EndBlocker
  • #1011 - feat(perp): add DonateToEF cli command
  • #1044 - feat(wasm): cosmwasm module integration

Fixes

  • #1023 - collections: golang compiler bug
  • #1017 - collections: correctly reports value type and key in case of not found errors.
  • #857 - x/perp add proper stateless genesis validation checks
  • #874 - fix --home issue with unsafe-reset-all command, updating tendermint to v0.34.21
  • #892 - chore: fix localnet script
  • #925 - fix(vpool): snapshot iteration
  • #930 - fix(vpool): snapshot iteration on mark twap
  • #911 - fix(perp): handle issue where no vpool snapshots are found
  • #958 - fix(pricefeed): add twap to prices query
  • #961 - fix(perp): wire the funding rate query
  • #993 - fix(vpool): fluctuation limit check
  • #1000 - chore: bump cosmos-sdk to v0.45.9 to fix ibc bug
  • #1002 - fix: update go.mod dependencies to fix the protocgen script

v0.14.0

API Breaking

  • #830 - test(vpool): Make missing fields for 'query vpool all-pools' display as empty strings.
    • Improve test coverage of functions used in the query server.
    • Added 'pair' field to the all-pools to make the prices array easier to digest
  • #878 - rename funding-payments query to funding-rate

Improvements

  • #837 - simplify makefile, removing unused module creation and usage of new command to add vpool at genesis
  • #836 - refactor(genesis): DRY improvements and functions added to localnet.sh for readability
  • #842 - use self-hosted runner
  • #843 - add timeout to github actions integration tests
  • #847 - add command in localnet to whitelist oracle
  • #848 - add check max leverage on add vpool in genesis command

Fixes

  • #850 - x/vpool - properly validate vpools at genesis
  • #854 - add buildx to the docker release workflow

Features

  • #827 - feat(genesis): add cli command to add vpool at genesis
  • #838 - feat(genesis): add cli command to whitelist oracles at genesis
  • #846 - x/oracle remove reference pair

v0.13.0 - 2022-08-16

API Breaking

  • #831 - remove modules that are not used in testnet

CI

  • #795 - integration tests run when PR is approved
  • #826 - create and push docker image on release

Improvements

  • #798 - fix integration tests caused by PR #786
  • #801 - remove unused pair constants
  • #788 - add --overwrite flag to the nibid init call of localnet.sh
  • #804 - bump ibc-go to v3.1.1
  • #817 - Make post prices transactions gasless for whitelisted oracles
  • #818 - fix(localnet.sh): add max leverage to vpools in genesis to fix open-position
  • #819 - add golangci-linter using docker in Makefile
  • #835 - x/oracle cleanup code

Features

  • #839 - x/oracle rewarding
  • #791 Add the x/oracle module
  • #811 Return the index twap in QueryPrice cmd
  • #813 - (vpool): Expose mark price, mark TWAP, index price, and k (swap invariant) in the all-pools query
  • #816 - Remove tobin tax from x/oracle
  • #810 - feat(x/perp): expose 'marginRatioIndex' and block number on QueryPosition
  • #832 - x/oracle app wiring

Documentation

  • #814 - docs(perp): Added events specification for the perp module.

v0.12.1 - 2022-08-04

  • #796 - fix bug that caused that epochKeeper was nil when running epoch hook from Perp module
  • #793 - add a vpool parameter to limit leverage in open position

v0.12.0 - 2022-08-03

Improvements

  • #775 - bump google.golang.org/protobuf from 1.28.0 to 1.28.1
  • #768 - add simulation tests to make file
  • #767 - add fluctuation limit checks on OpenPosition.
  • #786 - add genesis params in localnet script.
  • #770 - Return err in case of zero time elapsed and zero snapshots on GetCurrentTWAP func. If zero time has elapsed, and snapshots exists, return the instantaneous average.

Bug Fixes

  • #766 - Fixed margin ratio calculation for trader position.
  • #776 - Fix a bug where the user could open infinite leverage positions
  • #779 - Fix issue with released tokens being invalid in ExitPool

Testing

  • #782 - replace GitHub test workflows to use make commands
  • #784 - fix runsim
  • #783 - sanitise inputs for msg swap simulations

v0.11.0 - 2022-07-29

Documentation

  • #701 Add release process guide

Improvements

  • #715 - remove redundant perp.Keeper.SetPosition parameters
  • #718 - add guard clauses on OpenPosition (leverage and quote amount != 0)
  • #728 - add dependabot file into the project.
  • #723 - refactor perp keeper's RemoveMargin method
  • #730 - update localnet script.
  • #736 - Bumps github.com/spf13/cast from 1.4.1 to 1.5.0
  • #735 - Bump github.com/spf13/cobra from 1.4.0 to 1.5.0
  • #729 - move maintenance margin to the vpool module
  • #741 - remove unused code and refactored variable names.
  • #742 - Vpools are not tradeable if they have invalid oracle prices.
  • #739 - Bump github.com/spf13/viper from 1.11.0 to 1.12.0

API Breaking

  • #721 - Updated proto property names to adhere to standard snake_casing and added Unlock REST endpoint
  • #724 - Add position fields in ClosePositionResponse.
  • #737 - Renamed from property to avoid python name clash

State Machine Breaking

  • #733 - Bump github.com/cosmos/ibc-go/v3 from 3.0.0 to 3.1.0
  • #741 - Rename epoch_identifier param to funding_rate_interval.
  • #745 - Updated pricefeed twap calc to use bounded time

Bug Fixes

  • #746 - Pin cosmos-sdk version to v0.45 for proto generation.

v0.10.0 - 2022-07-18

Improvements

  • #705 Refactor PerpKeeper's AddMargin method to accept individual fields instead of the entire Msg object.

API Breaking

  • #709 Add fields to OpenPosition response.
  • #707 Add fluctuation limit checks in vpool methods.
  • #712 Add funding rate calculation and FundingRateChangedEvent.

Upgrades

  • #725 Add governance handler for creating new virtual pools.
  • #702 Add upgrade handler for v0.10.0.

v0.9.2 - 2022-07-11

Improvements

  • #686 Add changelog enforcer to github actions.
  • #681 Remove automatic release and leave integration tests when merge into master.
  • #684 Reorganize PerpKeeper methods.
  • #690 Call closePositionEntirely from ClosePosition.
  • #689 Apply funding rate calculation 48 times per day.

API Breaking

  • #687 Emit PositionChangedEvent upon changing margin.
  • #685 Represent PositionChangedEvent bad debt as Coin.
  • #697 Rename pricefeed keeper methods.
  • #689 Change liquidation params to 2.5% liquidation fee ratio and 25% partial liquidation ratio.

Testing

  • #695 Add OpenPosition integration tests.
  • #692 Add test coverage for Perp MsgServer methods.