Skip to content

v11.0.0

Compare
Choose a tag to compare
@Shaptic Shaptic released this 07 Dec 20:26
· 100 commits to master since this release
69f7699

This is the stable Protocol 20 release.

v11.0.0: Protocol 20, Soroban!

Breaking Changes

  • The package has been renamed: it is now @stellar/stellar-sdk.
  • The new minimum version is Node 18.
  • The soroban-client library (stellar/js-soroban-client) has been merged into this package, causing significant breaking changes in the module structure (#860):
    • The namespaces have changed to move each server-dependent component into its own module. Shared components (e.g. TransactionBuilder) are still in the top level, Horizon-specific interactions are in the Horizon namespace (i.e. Server is now Horizon.Server), and new Soroban RPC interactions are in the SorobanRpc namespace.
    • There is a detailed migration guide available to outline both the literal (i.e. necessary code changes) and philosophical (i.e. how to find certain functionality) changes needed to adapt to this merge.
  • The SorobanRpc.Server.prepareTransaction and SorobanRpc.assembleTransaction methods no longer need an optional networkPassphrase parameter, because it is implicitly part of the transaction already (#870).
  • Certain effects have been renamed to align better with the "tense" that other structures have (#844):
    • DepositLiquidityEffect -> LiquidityPoolDeposited
    • WithdrawLiquidityEffect -> LiquidityPoolWithdrew
    • LiquidityPoolTradeEffect -> LiquidityPoolTrade
    • LiquidityPoolCreatedEffect -> LiquidityPoolCreated
    • LiquidityPoolRevokedEffect -> LiquidityPoolRevoked
    • LiquidityPoolRemovedEffect -> LiquidityPoolRemoved

Added

  • New effects have been added to support Protocol 20 (Soroban) (#842):
    • ContractCredited occurs when a Stellar asset moves into its corresponding Stellar Asset Contract instance
    • ContractDebited occurs when a Stellar asset moves out of its corresponding Stellar Asset Contract instance
  • Asset stat records (ServerApi.AssetRecord) contain two new fields to support the Protocol 20 (Soroban) release (#841):
    • num_contracts - the integer quantity of contracts that hold this asset
    • contracts_amount - the total units of that asset held by contracts
  • New operation responses (#845):
    • invokeHostFunction: see Horizon.InvokeHostFunctionOperationResponse
    • bumpFootprintExpiration: see Horizon.BumpFootprintExpirationOperationResponse
    • restoreFootprint: see Horizon.RestoreFootprintOperationResponse
    • You can refer to the actual definitions for details, but the gist of the schemas is below:
interface InvokeHostFunctionOperationResponse {
  function: string;
  parameters: {
    value: string;
    type: string;
  }[];
  address: string;
  salt: string;
  asset_balance_changes: {
    type: string;
    from: string;
    to: string;
    amount: string;
  }[];
}
interface BumpFootprintExpirationOperationResponse {
  ledgersToExpire: string;
}
interface RestoreFootprintOperationResponse {};

Updated

  • Build system has been overhauled to support Webpack 5 (#814).
  • stellar-base has been updated to its corresponding overhaul (#818).
  • Bundle size has decreased by dropping unnecessary dependencies (lodash: #822, es6-promise: #823, polyfills: #825, detect-node: #831).
  • Dependencies have been updated to their latest versions (#825, #827).
  • The stellar-base library has been upgraded to support the latest Protocol 20 XDR schema and all Soroban functionality (#861).

Fixed

  • Missing fields have been added to certain API responses (#801 and #797).
  • Some effect definitions that were missing have been added (#842):
    • ClaimableBalanceClawedBack is now defined
    • type EffectRecord now has all of the effect types
  • The PaymentCallBuilder was incorrectly indicating that it would return a collection of Payment records, while in reality it can return a handful of "payment-like" records (#885).

New Contributors

Full Changelog: v10.4.1...v11.0.0