Skip to content

v9.0.0-beta.0

Pre-release
Pre-release
Compare
Choose a tag to compare
@Shaptic Shaptic released this 02 Sep 21:15
· 142 commits to master since this release
bb58357

This beta release adds support for Automated Market Makers. For details, you can refer to CAP-38 for XDR changes and this document for detailed changes to the Horizon API. Install it via yarn upgrade stellar-sdk@beta.

Add

  • Introduced a LiquidityPoolCallBuilder to make calls to a new endpoint:

    • /liquidity_pools[?reserves=...] - a collection of liquidity pools, optionally filtered by one or more assets (#682)
    • /liquidity_pools/:id - a specific liquidity pool (#687)
  • Expanded the TransactionCallBuilder, OperationCallBuilder, and EffectsCallBuilders to apply to specific liquidity pools (#689). This corresponds to the following new endpoints:

    • /liquidity_pools/:id/transactions
    • /liquidity_pools/:id/operations
    • /liquidity_pools/:id/effects
  • Expanded the TradesCallBuilder to support fetching liquidity pool trades and accepts a new trade_type filter (#685):

    • /trades?trade_type={orderbook,liquidity_pools}
    • A liquidity pool trade contains the following fields:
      • liquidity_pool_fee_bp: LP fee expressed in basis points, and either
      • base_liquidity_pool_id or counter_liquidity_pool_id
  • Added new effects related to liquidity pools (#690):

    • DepositLiquidityEffect
    • WithdrawLiquidityEffect
    • LiquidityPoolTradeEffect
    • LiquidityPoolCreatedEffect
    • LiquidityPoolRemovedEffect
    • LiquidityPoolRevokedEffect
  • Added new responses related to liquidity pool operations (#692):

    • DepositLiquidityOperationResponse
    • WithdrawLiquidityOperationResponse

Updates

  • Updated the underlying stellar-base library to v6.0.1 to include CAP-38 changes (#681).

  • Updated various developer dependencies to secure versions (#671).

  • Updated AccountResponse to include liquidity pool shares in its balances field (#688).

  • Updated AccountCallBuilder to allow filtering based on participation in a certain liquidity pool (#688), corresponding to the following new filter:

    • /accounts?reserves=[...list of assets...]
  • Updated RevokeSponsorshipOperationResponse to contain an optional attribute trustline_liquidity_pool_id, for when a liquidity pool trustline is revoked (#690).

Breaking changes

  • A TradeRecord can now correspond to two different types of trades and has changed (#685):

    • Orderbook (the existing structure)
      • counter_offer_id and base_offer_id only show up in these records
      • the redundant offer_id field was removed; it matches base_offer_id
    • LiquidityPool (new)
      • base_account xor counter_account will appear in these records
    • price fields changed from numbers to strings
    • The links to base and counter can now point to either an account or a liquidity pool
  • An account's balances array can now include a new type (#688):

    • asset_type can now be liquidity_pool_shares
    • The following fields are not included in pool share balances:
      • buying_liabilities
      • selling_liabilities
      • asset_code
      • asset_issue
  • The ChangeTrustOperationResponse has changed (#688, #692):

    • asset_type can now be liquidity_pool_shares
    • asset_code, asset_issuer, and trustee are now optional
    • liquidity_pool_id is a new optional field
  • The trustline effects (TrustlineCreated, TrustlineUpdated, TrustlineRevoked) have changed (#690):

    • the asset type can now be liquidity_pool_shares
    • they can optionally include a liquidity_pool_id
  • Trustline sponsorship effects (TrustlineSponsorshipCreated, TrustlineSponsorshipUpdated, TrustlineSponsorshipRemoved) have been updated (#690):

    • the asset field is now optional, and is replaced by
    • the liquidity_pool_id field for liquidity pools