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-clientlibrary (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 theHorizonnamespace (i.e.Serveris nowHorizon.Server), and new Soroban RPC interactions are in theSorobanRpcnamespace. - 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 namespaces have changed to move each server-dependent component into its own module. Shared components (e.g.
- The
SorobanRpc.Server.prepareTransactionandSorobanRpc.assembleTransactionmethods no longer need an optionalnetworkPassphraseparameter, 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->LiquidityPoolDepositedWithdrawLiquidityEffect->LiquidityPoolWithdrewLiquidityPoolTradeEffect->LiquidityPoolTradeLiquidityPoolCreatedEffect->LiquidityPoolCreatedLiquidityPoolRevokedEffect->LiquidityPoolRevokedLiquidityPoolRemovedEffect->LiquidityPoolRemoved
Added
- New effects have been added to support Protocol 20 (Soroban) (#842):
ContractCreditedoccurs when a Stellar asset moves into its corresponding Stellar Asset Contract instanceContractDebitedoccurs 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 assetcontracts_amount- the total units of that asset held by contracts
- New operation responses (#845):
invokeHostFunction: seeHorizon.InvokeHostFunctionOperationResponsebumpFootprintExpiration: seeHorizon.BumpFootprintExpirationOperationResponserestoreFootprint: seeHorizon.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-basehas 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-baselibrary 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):
ClaimableBalanceClawedBackis now definedtype EffectRecordnow has all of the effect types
- The
PaymentCallBuilderwas incorrectly indicating that it would return a collection ofPaymentrecords, while in reality it can return a handful of "payment-like" records (#885).
New Contributors
- @jhuntbach-bc made their first contribution in #801
- @kknownymouss made their first contribution in #797
- @criadoperez made their first contribution in #853
- @IgorShadurin made their first contribution in #879
Full Changelog: v10.4.1...v11.0.0