StellarCN / py-stellar-base

Stellar client library for the Python language
https://stellar-sdk.readthedocs.io
Apache License 2.0
348 stars 172 forks source link

Protocol 21 SDK Support #931

Closed psheth9 closed 5 months ago

psheth9 commented 6 months ago

Protocol 21 SDK Support

Once voted in, the release of Protocol 21 will introduce following new CAPs:

XDR changes:

XDR update issue details - https://github.com/stellar/stellar-xdr/commit/1a04392432dacc0092caaeae22a600ea1af3c6a5

Reference Implementations: js-sdk - https://github.com/stellar/js-stellar-base/pull/738

Soroban API Changes:

Breaking Changes:

Non Breaking changes:

New optional field in SimulateTransactionResponse which indicates how the state (ledger entries) will change as a result of the transaction execution.

StateDiff       []LedgerEntryDiff            `json:"stateDiff,omitempty"`   

type LedgerEntryDiff struct {
    Before string `json:"before,omitempty"` // LedgerEntry XDR in base64
    After  string `json:"after,omitempty"`  // LedgerEntry XDR in base64
}

New Ledger Range and Ledger Retention Window in getHealth Response


type HealthCheckResult struct {
    Status                string `json:"status"`
    LatestLedger          uint32 `json:"latestLedger"` // New
    OldestLedger          uint32 `json:"oldestLedger"` // New
    LedgerRetentionWindow uint32 `json:"ledgerRetentionWindow"` // New
}

Horizon API Changes:

Reference Implementations

Reference implementation authored by SDF:

You can follow each respective issue to its implementation PRs.