Protocol 23: SDK Changes
XDR Changes
- XDR should be upgraded to stellar-xdr@
4b7a2e. This includes, but is not limited to:
- Handling
LedgerCloseMetaV2 and TransactionMetaV4
- Handling the new variants of
ScAddress which can include muxed accounts, claimable balances, and liquidity pools
- Adding support for
StrKeys to encode claimable balances and liquidity pools, per SEP-23
- Several fields have been renamed, though their semantic meaning is identical.
Horizon
/assets will no longer include num_archived_contracts and archived_contracts_amount
/async_transaction drops the previously-deprecated field errorResultXdr
/operations and /payments, when returning an InvokeHostFunction operation involving a SAC transfer, will now include a new field under the asset_balance_changes list to convey muxed account information (when present):
destination_muxed_id: string; // a uint64
RPC
API Changes
getTransaction and getTransactions have changed in how they display events for the transaction:
- The top-level
diagnosticEvents[Xdr|Json] field is now deprecated.
- There is instead a new top-level object for found transactions. Note that each of these can also have a
Json suffix variation if "xdrFormat": "json" is passed to the request, if your SDK supports that mode of operation.
+"events": {
+ "diagnosticEventsXdr": [], // base64-encoded list of `xdr.DiagnosticEvent`s
+ "transactionEventsXdr": [], // base64-encoded list of `xdr.TransactionEvent`s
+ // base64-encoded list of lists of `xdr.ContractEvent`s, where each element of
+ // the list corresponds to the events for that operation in the transaction
+ "contractEventsXdr": [[]],
+}
getEvents will now:
- drop the previously deprecated
pagingToken field entirely in lieu of cursor
- requests can include a
** for a topic filter as its last element to allow 0+ trailing topics matching the filter
- no longer return events with
"type" == "diagnostic"
- return events for failed transactions
- deprecate the field
inSuccessfulContractCall
- include a field
opIndex: uint32 representing the operation at which an event occurred
- include details about the RPC's ledger range at the top level of its response:
+ "oldestLedger": 0, // uint32
+ "latestLedgerCloseTime": "0", // uint64 as a string
+ "oldestLedgerCloseTime": "0" // uint64 as a string
simulateTransaction has a new, optional authMode parameter:
authMode?: "" | "enforce" | "record" | "record_allow_nonroot"
You can refer to the release notes for more details.
Protocol 23: SDK Changes
XDR Changes
4b7a2e. This includes, but is not limited to:LedgerCloseMetaV2andTransactionMetaV4ScAddresswhich can include muxed accounts, claimable balances, and liquidity poolsStrKeys to encode claimable balances and liquidity pools, per SEP-23Horizon
/assetswill no longer includenum_archived_contractsandarchived_contracts_amount/async_transactiondrops the previously-deprecated fielderrorResultXdr/operationsand/payments, when returning anInvokeHostFunctionoperation involving a SAC transfer, will now include a new field under theasset_balance_changeslist to convey muxed account information (when present):RPC
API Changes
getTransactionandgetTransactionshave changed in how they display events for the transaction:diagnosticEvents[Xdr|Json]field is now deprecated.Jsonsuffix variation if"xdrFormat": "json"is passed to the request, if your SDK supports that mode of operation.getEventswill now:pagingTokenfield entirely in lieu ofcursor**for a topic filter as its last element to allow 0+ trailing topics matching the filter"type" == "diagnostic"inSuccessfulContractCallopIndex: uint32representing the operation at which an event occurredsimulateTransactionhas a new, optionalauthModeparameter:You can refer to the release notes for more details.