Skip to content

Latest commit

 

History

History
336 lines (258 loc) · 17.1 KB

CHANGELOG.md

File metadata and controls

336 lines (258 loc) · 17.1 KB

CHANGELOG

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

[1.1.0] - 2024-08-27

Changed

  • decimal: Rename to soroban-decimal and publish in crates.io (#299)
  • curve: try to optimize piecewise linear implementation (#307)
  • Update soroban-sdk-rs to version 20.5.0 (#308)
  • Pool and Pool Stable: adds verification if the current timestamp is after a desired timestamp (#322)
  • All: adds helper function that safely casts i128 to u128 (#365)

Added

  • Factory: Allows creation of stable pools (#301)
  • Trader: Adds nominated trader contract to the DEX (#288)
  • Multihop: Allows multihop swaps for stable pool (#303)
  • Stake rewards: Create a new contract and prepare first testcases (#306)
  • Trader: Adds a check if the contract has been already initialized (#329)
  • All: Adds more test that verify the authorization during execution (#363)

Fixed

  • Pool stable: Wrong calculation of swap constant reduces stable pool's efficiency (#366)

1.0.0 - 2024-05-08

Changed

  • Token: Update the contract to latest version from soroban-examples (#274)
  • Update soroban-sdk-rs to 20.5.0 (#275)
  • CI: Update rust to 1.77.0 (#275)
  • Pool: Replace belief_price swap parameter with minimum amount of tokens expected to be received (#280)
  • Stake: Checks if curve complexity is too high during operations and also optimises the curve combine process (#283)
  • Pool: Temporarily disable the feature that allows to provide liquidity with a single token (#289)
  • Stake: Optimize the process of adding stake if done within 12 hour period between stakes (#295)

Added

  • vesting: Add vesting contract (#267)
  • all: changes panic! to panic_with_error (#269)
  • Audit Report from Veridise (#291)
  • all: added entrypoint to update the contracts (#293)
  • Pool and Pool Stable: adds query for totally issued tokens (#298)

Bug fixes

0.9.0 - 2024-03-12

Changed

  • Stake: unbonding now automatically pays the rewards (#170)
  • Factory: add query displaying data for given user (#176)
  • Update soroban-sdk version from v20.0.3 to v20.1.0 ([#193])
  • Fixes documentation and naming (#200)
  • Multihop: adds a new field in the Swap struct, that hold max_belief_price ([234])
  • Fixes incorrect assignment of total_fee_bps in both pool and pool stable ([235])
  • Pool: adds a missed part of return_amount argument (#238)
  • Pool: Replace panic! with panic_with_error! to provide more contextual information (#206)
  • Multihop: changes total_commission_amount type in SimulateSwap and SimulateReverseSwap (#236)
  • Multihop: removes unnecessary unwrap of a value (#240)
  • Factory, Multihop, Pool, Pool_stable, Phoenix: adds lp_token decimal's as a const instead a user input (#241)
  • Factory, Multihop, Pool, Pool_stable: adds a new parameter for creating liquidity pool (#243)
  • Update soroban-sdk version from v20.1.0 to v20.4.0 (#262)

Added

  • Adds a new macro that validates the bps arguments value (#199)
  • Added test coverage for Decimal (#244)

Bug fixes

  • Pool stable: Fixes an error in the compute_swap function, where commission isn't deducted ([233])
  • Pool and Pool stable: extend check if the swapped token is within pool (#237)
  • Pool and Pool stable: adds missing validation of max_spread in do_swap (#239)
  • Pool: Adds a validation for when shares can be zero during withdrawal (#245)
  • Pool: adds new check that verifies the input params for get_deposit_amounts (#246)
  • Stake: Adds access control to create distribution flow (#249)

0.8.0 - 2024-01-17

Changed

  • Factory: Replace tuple in a query query_for_pool_by_pair_tuple with a two separate parameters; rename that query to query_for_pool_by_token_pair (#144)
  • Total surrender refactor: replace all errors with panics (#140)
  • Pool/Pool stable: Replace sell_a parameter in simulate swap messages with offer_asset address ([#154])
  • Multihop: Implement simulate swap/reverse swap queries (#147)
  • Factory: Initializes the Multihop contract upon initializing Factory (#158)
  • Multihop: Checks if the list of Swaps being sent is not empty / is valid (#159)
  • Multihop: Adds a new parameter to SimulateSwapResponse and SimulateReverseSwapResponse, that keeps information about spread (#168)
  • Temporarily disable the referral feature ([#191])
  • Update soroban-sdk version to v20.0.3 ([#174])

Bug fixes

  • All: Adds a flag in all contract initialization functions to check if the contract has been already initialized (#157)

0.7.0 - 2023-10-10

Added

  • Stake: Implement APR query (#101)
  • Multihop: Provide swap implementation and a testing framework (#133)
  • Multihop: Refactor swap algorithm and fix authorization issue on subsequent swaps (#138)

Changed

  • Pair: Replace sell_a parameter in swap message with offer_asset address (#141)
  • Pool: Rename pair to pool to avoid further confusion in names (#139)

0.6.0 - 2023-09-20

Added

  • Stake: Create new distribution structure for staking rewards flow (#83)
  • DEX deployment script (#97)
  • Stake: Implement full distribution mechanism for static rewards (#88)
  • Stable pair: Initialize contract (#108)
  • Stake: Added new variable TotalStaked in storage (#94)
  • Pair: Deployment of Stake contract during initialization (#98)
  • Factory: Contract that allows us to deploy Liquidity Pools (#112)
  • Decimal: Implement from_atomics and to_string (#115)
  • Curve: Implement end helper (#115)
  • Phoenix: Helper library for commonly used functions, structs, etc... (#116)
  • Factory: Adds functionality that provides more detailed information about a single pool or a vector of pools (#128)
  • Factory: Adds new query to search for a liquidity pool address by a tuple of token addresses. (#131)

Changed

  • Curve: Modify implementation to not use named fields in Curve enum, since they are not allowed currently in soroban-sdk (#86)
  • Curve: Modify implementation of PiecewiseLinear type to avoid using tuple due to soroban-sdk limitations (#100)
  • Pair: Removes redundant slippage check (#96)
  • All: more granular error handling (#95)
  • All: changed the test for auths() and panic! (#90)
  • Factory: Remove pair initialization through client in order to not import other contract in binary (#122)

Fixed

  • Stake: Reward distribution points are now updated when new user bonds (#118)

0.5.0 - 2023-08-04

Added

  • Stake: Implement bonding and unbonding (#78 #79)

Changed

  • Update soroban-sdk from v0.8.4 to v0.9.2 (#81)

0.4.0 - 2023-07-04

Fixed

  • Pair: Incorrect division of assets during providing liquidity with single token; solution was to implement binary search approximation algorithm that finds optimal division to keep the pool ratio intact (within 1%) (#66)

Added

  • Curve: Add fully functional implementation of distribution curve that handles 3 types (constant, linear and piecewise linear) (#62)
  • CI: Upload CI results to codecov and implement coverage badge in the readme (#64)
  • Pair: input parameter validation (>= 0) (#66)

Changed

  • Decimal: use num_bigint crate to increase increase range of allowed values and prevent avoidable overflow; increase test coverage (#55)
  • Pair: modify swap signature to accept spread as BPS instead of plain number translated to percentage (#56)
  • Pair: implement update_config message (#58)
  • Decimal: Replace wee-alloc in favor of soroban allo features (#63)

0.3.1 - 2023-06-27

Added

  • Pair: implement checksum in release artifacts (#37)
  • Pair: implement withdraw endpoint in pair contract (#38)
  • Pair: implement protocol fees that are subtracted during the swap (#40)
  • Pair: implement slippage tolerance into pair contract (#41)
  • Pair: implement swap/reverse swap simulation (#45)
  • Pair: implement upgrade entrypoint (#46)
  • Pair: implement single asset liqudity providing (#50)

Changed

  • Decimal: replace u128 with i128 in Decimal crate implementation... because someone sometime might want to use negative numbers in their contracts (#38)
  • improved architecture docs (#44)

0.2.7 - 2023-06-22

Added

  • CI: automated release job which will create artifacts after new tag publication (#29)
  • standarized Makefiles across whole repository (#29)

Changed

  • better error support for pair contract; introduced logs and events (#28)

0.2.0 - 2023-06-20

Added

  • initial architecture draft (#2)
  • rust workspace with working CI (#5)
  • implement crate to easier manipulate Decimal types (#21)
  • XYK pair swap implementation (#19)
  • pool state queries (#24)