Releases: stellar/js-soroban-client
v1.0.1
Warning: This library is no longer being maintained, in favor of the @stellar/stellar-sdk
package. Please read the migration guide for how to upgrade to that package. Future changes will only be made there.
This release merely correctly marks the package as deprecated.
v1.0.0
Warning: This library is no longer being maintained, in favor of the @stellar/stellar-sdk
package. Please read the migration guide for how to upgrade to that package. Future changes will only be made there.
v1.0.0: Protocol 20, Soroban!
This is the stable Protocol 20 release. The following is a list of changes since the previous beta:
Breaking Changes
- See the new deprecation warning at the top of this document and in the README.
- XDR has been upgraded to the latest
stellar-base
release, supporting the current stable XDR for Protocol 20 (#167).
Fixed
- The
Server.getEvents
method now correctly parses responses without acontractId
field set: theevents[i].contractId
field on an event will be omitted if there was no ID in the event (e.g. for system events; (#172)). - The
Server.getEvents()
method will correctly parse the event value as anxdr.ScVal
rather than anxdr.DiagnosticEvent
(#172). - The
Server.getEvents()
method will correctly setstartLedger
to be a number rather than a string (#174).
Full Changelog: v0.11.2...v1.0.0
v1.0.0-beta.4
Note: This version is currently only compatible with Stellar networks running the Protocol 20 release candidate such as the current Testnet and Futurenet (using stellar/stellar-xdr@9ac0264).
This is a patch release: please refer to v1.0.0-beta.0 or the link below for a complete changelog.
v1.0.0-beta.4
Fixed
- The
stellar-base
dependency has been upgraded to v10.0.0-beta.4 which fixes a bug with large sequence numbers (#170).
Full Changelog: v0.11.2...v1.0.0-beta.4
v1.0.0-beta.3
Note: This version is currently only compatible with Stellar networks running the Protocol 20 release candidate such as the current Testnet (using stellar/stellar-xdr@9ac0264).
This is a patch release: please refer to v1.0.0-beta.0 for a complete changelog.
v1.0.0-beta.3
Added
- Responses for
Server.getContractData
andServer.getLedgerEntries
now include anexpirationLedgerSeq
attribute on ledger data entries that have expiry information (#153). - The new
Server._simulateTransaction
method will return the raw response directly from the RPC server rather than parsing XDR fields (#160).
Breaking Changes
- The
stellar-base
dependency has been upgraded to v10.0.0-beta.3 which contains breaking changes related to auth helpers and some bugfixes (#158). - All endpoints will now automatically decode XDR structures whenever possible. In particular,
- For the
Server.getLedgerEntries
response (#154), we parse:entries
is now guaranteed to exist, but it may be emptyentries[i].key
is an instance ofxdr.LedgerKey
- the
entries[i].xdr
field is nowval
, instead entries[i].val
is an instance ofxdr.LedgerEntryData
- For the
Server.sendTransaction
response (#157), we parse:errorResultXdr
is renamed toerrorResult
- If it's present, it's an instance of
xdr.TransactionResult
- For the
Server.getEvents
response (#156), we parse:events[i].contractId
is now an instance ofContract
events[i].topic
is now a list of decodedxdr.ScVal
instancesevents[i].value.xdr
is now remapped directly toevents.value
events[i].value
is a decodedxdr.ScVal
instance
- For the
Server.sendTransaction
response (#157), we parse:errorResultXdr
is nowerrorResult
, a parsed instance ofxdr.TransactionResult
- For the
- If you want to continue to use the raw RPC responses, you can use the
_
-prefixed methods which will return the response directly:Server._getLedgerEntries
Server._sendTransaction
Server._getEvents
Server._simulateTransaction
Server._getTransaction
Full Changelog: v0.11.2...v1.0.0-beta.3
v1.0.0-beta.2
Note: This version is currently only compatible with Stellar networks running the Protocol 20 release candidate such as the current Testnet (using stellar/stellar-xdr@9ac0264).
This is a patch release: please refer to v1.0.0-beta.0 for a complete changelog.
Fixed
- The variations of responses from
simulateTransaction
were not always being parsed correctly (#146).
Full Changelog: v0.11.2...v1.0.0-beta.2
v1.0.0-beta.1
Note: This version is currently only compatible with Stellar networks running the Protocol 20 release candidate such as the current Testnet (using stellar/stellar-xdr@9ac0264).
This is a patch release: please refer to v1.0.0-beta.0 for a complete changelog.
Fixes
- stellar-base has been upgraded to v10.0.0-beta.1 which includes important bugfixes (#145).
Full Changelog: v0.11.2...v1.0.0-beta.1
v1.0.0-beta.0
Note: This version is currently only compatible with Stellar networks running the Protocol 20 release candidate such as the current Testnet (using stellar/stellar-xdr@9ac0264).
v1.0.0-beta.0: Protocol 20
Added
SorobanRpc.isSimulationSuccess
,SorobanRpc.isSimulationRestore
andSorobanRpc.isSimulationError
are helper methods to differentiate the various responses when simulating a transaction (#132).
Breaking Changes
- The XDR has been upgraded to the final testnet version via the
stellar-base
dependency (v10.0.0-beta.0, #135). - The
simulateTransaction
endpoint will now return arestorePreamble
structure containing the recommended footprint and minimum resource fee for a transaction with aOperation.restoreFootprint
which would have made the simulation succeed (#132). - It also parses and transforms the raw schema into something easier to access:
results?[]
is coalesced into a singleresult?
results[i].xdr
is nowresult.retval
- every XDR object is decoded when possible, e.g.
result.retval
is anxdr.ScVal
events?[]
now always exists (but may be empty)
Fixed
- Result types are now handled correctly by
ContractSpec
(#138).
Full Changelog: v0.11.2...v1.0.0-beta.0
v0.11.2
Note: This is likely to be the last release compatible with Preview 10.
Fixed
- The
stellar-base
dependency has been updated tov10.0.0-soroban.8
, fixing some bugs and adding some small things. Refer to its release notes (stellar/js-stellar-base#687) for details.
v0.11.1
v0.11.0
v0.11.0
Fixed
- The
SimulateTransactionResponse
's error field now has the correct type (that is,string
: #123). - Many irrelevant or unused dependencies have been eliminated (such as
eventsource
,lodash
, and others), lowering overall bundle size (#126).
Added
- A new
ContractSpec
class to facilitate building native JavaScript structures from custom contract types. Given a specification for the data structure (i.e.xdr.ScSpecEntry[]
), it will interpret the values via the specified type (#115).
Breaking Changes
- The minimum supported NodeJS version is now Node 16.
Server.prepareTransaction
now returns aTransactionBuilder
instance rather than an immutableTransaction
, in order to facilitate modifying your transaction after assembling it alongside the simulation response (#127).- The intent is to avoid cloning the transaction again (via
TransactionBuilder.cloneFrom
) if you need to modify parameters such as the storage access footprint. - To migrate your code, just call
.build()
on the return value.
- The intent is to avoid cloning the transaction again (via
- The RPC response schemas for simulation (see
Server.simulateTransaction()
) have been upgraded to parse the base64-encoded XDR automatically. The full interface changes are in the pull request (#127), but succinctly:SimulateTransactionResponse
->RawSimulateTransactionResponse
SimulateHostFunctionResult
->RawSimulateHostFunctionResult
- Now,
SimulateTransactionResponse
andSimulateHostFunctionResult
include the full, decoded XDR structures instead of raw, base64-encoded strings for the relevant fields (e.g.SimulateTransactionResponse.transactionData
is now an instance ofSorobanDataBuilder
,events
is now anxdr.DiagnosticEvent[]
[try outhumanizeEvents
for a friendlier representation of this field]). - The
SimulateTransactionResponse.results[]
field has been moved toSimulateTransactionResponse.result?
, since there will always be exactly zero or one result.
- The
GetTransactionStatus
is now anenum
with actual values rather than atype
(#129). - The RPC response schemas for retrieving transaction details (
Server.getTransaction()
) have been upgraded to parse the base64-encoded XDR automatically. The full interface changes are in the pull request (#129), but succinctly:GetTransactionResponse
->RawGetTransactionResponse
GetTransactionResponse
is now one ofGetSuccessfulTransactionResponse | GetFailedTransactionResponse | GetMissingTransactionResponse
, which gives proper typing to the interface depending on the response'sstatus
field.- All of the
*Xdr
properties are now full, decoded XDR structures. - There is a new
returnValue
field which is a decodedxdr.ScVal
, present iff the transaction was a successful Soroban function invocation.
Not all schemas have been broken in this manner in order to facilitate user feedback on this approach. Please add your 👍 or 👎 to #128 to vote on whether or not we should do this for the other response schemas.
Full Changelog: v0.10.1...v0.11.0