Skip to content

Latest commit

 

History

History
1051 lines (846 loc) · 84.4 KB

CHANGELOG.md

File metadata and controls

1051 lines (846 loc) · 84.4 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]

State Machine Breaking

For next mainnet version

  • #1766 - refactor(app-wasmext)!: remove wasmbinding CosmosMsg::Custom bindings.
  • #1776 - feat(inflation): make inflation params a collection and add commands to update them
  • #1872 - chore(math): use cosmossdk.io/math to replace sdk types
  • #1874 - chore(proto): remove the proto stringer as per Cosmos SDK migration guidelines
  • #1932 - fix(gosdk): fix keyring import functions

Nibiru EVM

  • #1837 - feat(eth): protos, eth types, and evm module types
  • #1838 - feat(eth): Go-ethereum, crypto, encoding, and unit tests for evm/types
  • #1841 - feat(eth): Collections encoders for bytes, Ethereum addresses, and Ethereum hashes
  • #1855 - feat(eth-pubsub): Implement in-memory EventBus for real-time topic management and event distribution
  • #1856 - feat(eth-rpc): Conversion types and functions between Ethereum txs and blocks and Tendermint ones.
  • #1861 - feat(eth-rpc): RPC backend, Ethereum tracer, KV indexer, and RPC APIs
  • #1869 - feat(eth): Module and start of keeper tests
  • #1871 - feat(evm): app config and json-rpc
  • #1873 - feat(evm): keeper collections and grpc query impls for EthAccount, NibiruAccount
  • #1883 - feat(evm): keeper logic, Ante handlers, EthCall, and EVM transactions.
  • #1887 - test(evm): eth api integration test suite
  • #1889 - feat: implemented basic evm tx methods
  • #1895 - refactor(geth): Reference go-ethereum as a submodule for easier change tracking with upstream
  • #1901 - test(evm): more e2e test contracts for edge cases
  • #1907 - test(evm): grpc_query full coverage
  • #1909 - chore(evm): set is_london true by default and removed from config
  • #1911 - chore(evm): simplified config by removing old eth forks
  • #1912 - test(evm): unit tests for evm_ante
  • #1914 - refactor(evm): Remove dead code and document non-EVM ante handler- #1917 - test(e2e-evm): TypeScript support. Type generation from compiled contracts. Formatter for TS code.
  • #1917 - test(e2e-evm): TypeScript support. Type generation from compiled contracts. Formatter for TS code.
  • #1922 - feat(evm): tracer option is read from the config.
  • #1936 - feat(evm): EVM fungible token protobufs and encoding tests
  • #1947 - fix(evm): fix FunToken state marshalling
  • #1949 - feat(evm): add fungible token mapping queries
  • #1950 - feat(evm): Tx to create FunToken mapping from ERC20, contract embeds, and ERC20 queries.
  • #1956 - feat(evm): msg to send bank coin to erc20
  • #1958 - chore(evm): wiped deprecated evm apis: miner, personal
  • #1959 - feat(evm): Add precompile to the EVM that enables transfers of ERC20 tokens to "nibi" accounts as regular Ethereum transactions
  • #1960 - test(network): graceful cleanup for more consistent CI runs
  • #1961 - chore(test): reverted funtoken precompile test back to the isolated state
  • #1962 - chore(evm): code cleanup, unused code, typos, styles, warnings
  • #1963 - feat(evm): Deduct a fee during the creation of a FunToken mapping. Implemented by deductCreateFunTokenFee inside of the eth.evm.v1.MsgCreateFunToken transaction.
  • #1965 - refactor(evm): remove evm post-processing hooks
  • #1966 - refactor(evm): clean up AnteHandler setup
  • #1967 - feat(evm): export genesis
  • #1968 - refactor(evm): funtoken events, cli commands and queries
  • #1970 - refactor(evm): move evm antehandlers to separate package. Remove "gosdk/sequence_test.go", which causes a race condition in CI.
  • #1971 - feat(evm): typed events for contract creation, contract execution and transfer
  • #1973 - chore(appconst): Add chain IDs ending in "3" to the "knownEthChainIDMap". This makes it possible to use devnet 3 and testnet 3.
  • #1976 - refactor(evm): unique chain ids for all networks
  • #1977 - fix(localnet): rolled back change of evm validator address with cosmos derivation path
  • #1979 - refactor(db): use pebbledb as the default db in integration tests
  • #1981 - fix(evm): remove isCheckTx() short circuit on AnteDecVerifyEthAcc
  • #1982 - feat(evm): add GlobalMinGasPrices
  • #1983 - chore(evm): remove ExtensionOptionsWeb3Tx and ExtensionOptionDynamicFeeTx
  • #1984 - refactor(evm): embeds
  • #1985 - feat(evm)!: Use atto denomination for the wei units in the EVM so that NIBI is "ether" to clients. Only micronibi (unibi) amounts can be transferred. All clients follow the constraint equation, 1 ether == 1 NIBI == 10^6 unibi == 10^18 wei.
  • #1986 - feat(evm): Combine both account queries into "/eth.evm.v1.Query/EthAccount", accepting both nibi-prefixed Bech32 addresses and Ethereum-type hexadecimal addresses as input.
  • #1989 - refactor(evm): simplify evm module address
  • #1996 - perf(evm-keeper-precompile): implement sorted map for k.precompiles to remove dead code
  • #1997 - refactor(evm): Remove unnecessary params: "enable_call", "enable_create".
  • #2000 - refactor(evm): simplify ERC-20 keeper methods
  • #2001 - refactor(evm): simplify FunToken methods and tests
  • #2002 - feat(evm): Add the account query to the EVM command. Cover the CLI with tests.
  • #2003 - fix(evm): fix FunToken conversions between Cosmos and EVM
  • #2004 - refactor(evm)!: replace HexAddr with EIP55Addr
  • #2006 - test(evm): e2e tests for eth_* endpoints
  • #2008 - refactor(evm): clean up precompile setups
  • #2013 - chore(evm): Set appropriate gas value for the required gas of the "IFunToken.sol" precompile.
  • #2014 - feat(evm): Emit block bloom event in EndBlock hook.
  • #2017 - fix(evm): Fix DynamicFeeTx gas cap parameters
  • #2019 - chore(evm): enabled debug rpc api on localnet.
  • #2020 - test(evm): e2e tests for debug namespace
  • #2022 - feat(evm): debug_traceCall method implemented
  • #2023 - fix(evm)!: adjusted generation and parsing of the block bloom events

Dapp modules: perp, spot, oracle, 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(perp): 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
  • #1710 - refactor(perp): Clean and organize module errors for x/perp

Non-breaking/Compatible Improvements

  • #1893 - feat(gosdk): migrate Go-sdk into the Nibiru blockchain repo.
  • #1899 - build(deps): cometbft v0.37.5, cosmos-sdk v0.47.11, proto-builder v0.14.0
  • #1913 - fix(tests): race condition from heavy Network tests
  • #1992 - chore: enabled grpc for localnet
  • #1999 - chore: update nibi go package version to v2

Dependencies

  • Bump github.com/grpc-ecosystem/grpc-gateway/v2 from 2.18.1 to 2.19.1 (#1767, #1782)
  • Bump robinraju/release-downloader from 1.8 to 1.11 (#1783, #1839, #1948)
  • Bump github.com/prometheus/client_golang from 1.17.0 to 1.18.0 (#1750)
  • Bump golang.org/x/crypto from 0.15.0 to 0.17.0 (#1724, #1843)
  • 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
  • Bump golang.org/x/net from 0.0.0-20220607020251-c690dde0001d to 0.23.0 in /geth (#1849)
  • Bump golang.org/x/net from 0.20.0 to 0.23.0 (#1850)
  • Bump github.com/supranational/blst from 0.3.8-0.20220526154634-513d2456b344 to 0.3.11 (#1851)
  • Bump golangci/golangci-lint-action from 4 to 6 (#1854, #1867)
  • Bump github.com/hashicorp/go-getter from 1.7.1 to 1.7.5 (#1858, #1938)
  • Bump github.com/btcsuite/btcd from 0.23.3 to 0.24.0 (#1862)
  • Bump pozetroninc/github-action-get-latest-release from 0.7.0 to 0.8.0 (#1863)
  • Bump bufbuild/buf-setup-action from 1.30.1 to 1.36.0 (#1891, #1900, #1923, #1972, #1974, #1988)

v1.5.0 - 2024-06-21

Nibiru v1.5.0 enables IBC CosmWasm smart contracts.

Features

  • #1931 - feat(ibc): add wasm route to IBC router

v1.4.0 - 2024-06-04

Nibiru v1.4.0 adds PebbleDB support and increases the wasm contract size limit to 3MB.

State Machine Breaking

  • #1906 - feat(wasm): increase contract size limit to 3MB

Features

  • #1818 - feat: add pebbledb support
  • #1908 - chore: make pebbledb the default db backend

v1.3.0 - 2024-05-07

Nibiru v1.3.0 adds interchain accounts.

Features

  • #1820 - feat: add interchain accounts

Bug Fixes

  • #1864 - fix(ica): add ICA controller stack

Improvements

  • #1859 - refactor(oracle): add oracle slashing events

v1.2.0 - 2024-03-28

Nibiru v1.2.0 adds a burn method to the x/inflation module that allows senders to burn tokens.

Features

  • #1832 - feat(tokenfactory): add burn method for native tokens

v1.1.0 - 2024-03-19

Nibiru v1.1.0 is the minor release used to add inflation to the network.

State Machine Breaking

  • #1786 - fix(inflation): fix inflation off-by 2 error
  • #1796 - fix(inflation): fix num skipped epoch when inflation is added to an existing chain
  • #1797 - fix(inflation): fix num skipped epoch updates logic
  • #1712 - refactor(inflation): turn inflation off by default

Bug Fixes

  • #1706 - fix: v1.1.0 upgrade handler
  • #1804 - fix(inflation): update default parameters
  • #1688 - fix(inflation): make default inflation allocation follow tokenomics

Features

  • #1670 - feat(inflation): Make inflation polynomial
  • #1682 - feat!: add upgrade handler for v1.1.0
  • #1776 - feat(inflation): make inflation params a collection and add commands to update them
  • #1795 - feat(inflation): add inflation tx cmds

Improvements

  • #1695 - feat(inflation): add events for inflation distribution
  • #1792 - fix(inflation): uncomment legacy amino register on app module basic
  • #1799 refactor,docs(inflation): Document everything + delete unused code. Make perp and spot optional features in localnet.sh

v1.0.3 - 2024-03-18

Fix

  • #1816 - fix(ibc): fix ibc transaction from wasm contract

CLI

  • #1731 - feat(cli): add cli command to decode stargate base64 messages
  • #1754 - refactor(decode-base64): clean code improvements and fn docs

v1.0.2 - 2024-03-03

Dependencies

  • 65c06ba - Bump cosmos-sdk to v0.47.10

v1.0.1 - 2024-02-09

Dependencies

  • #1778 - chore: bump librocksdb to v8.9.1

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.

  • [Release Link]
  • [Commits]
  • 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

Features

  • #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
  • #1573 - feat(perp): Close markets and compute settlement price

State Machine Breaking

  • #1609 - refactor(app)!: Remove x/stablecoin module.
  • #1613 - feat(app)!: enforce min commission by changing default and genesis validation
  • #1615 - feat(ante)!: Ante handler to add a maximum commission rate of 25% for validators.
  • #1616 - fix(app)!: Add custom wasm snapshotter for proper state exports
  • #1617 - fix(app)!: non-nil snapshot manager is not guaranteed in testapp
  • #1645 - fix(tokenfactory)!: token supply in bank keeper must be correct after MsgBurn.
  • #1646 - feat(wasmbinding)!: whitelisted stargate queries for QueryRequest::Stargate: auth, bank, gov, tokenfactory, epochs, inflation, oracle, sudo, devgas
  • #1667 - chore(inflation)!: unwire x/inflation

Improvements

  • #1610 - refactor(app): Simplify app.go with less redundant imports using struct embedding.
  • #1614 - refactor(proto): Use explicit namespacing on proto imports for #1608
  • #1630 - refactor(wasm): clean up wasmbinding/ folder structure
  • #1631 - fix(.goreleaser.yml): Load version for wasmvm dynamically.
  • #1638 - test(tokenfactory): integration test core logic with a real smart contract using nibiru-std
  • #1659 - refactor(oracle): curate oracle default whitelist

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.27.1 (#1624, #1641)
  • 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)
  • 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)

Bug Fixes

  • #1606 - fix(perp): emit MarketUpdatedEvent in the absence of index price
  • #1649 - fix(ledger): fix ledger for newer macos versions
  • #1655 - fix(inflation): inflate NIBI correctly to strategic treasury account

[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.