A breaking change will get clearly marked in this log.
- Updates the SEP-10 utility function parameters to support SEP-10 v3.1 (#607)
- A new required
webAuthDomainparameter was added to the following functionsutils.buildChallengeTx()utils.readChallengeTx()utils.verifyChallengeTxThreshold()utils.verifyChallengeTxSigners()
- The
webAuthDomainparameter is expected to match the value of the Manage Data operation with the 'web_auth_domain' key, if present
- A new required
- Fixes bug where the first Manage Data operation in a challenge transaction could have a null value (#591)
-
Upgraded
axiospackage to version^0.21.1from^0.19.0to fix security vulnerabilities (#608) -
Upgraded
js-stellar-basepackage to version^4.0.3from^4.0.0to allow accounts with a balance of zero (#616)
This release includes a major-version increase due to breaking changes included.
- Updates the SEP-10 utility function parameters and return values to support SEP-10 v3.0
- The following functions replaced the
homeDomainparameter withhomeDomains(note: plural):utils.readChallengeTx()utils.verifyChallengeTxThreshold()utils.verifyChallengeTxSigners()
utils.readChallengeTx()now returns an additional object attribute,matchedHomeDomain
- The following functions replaced the
- Update challenge transaction helpers for SEP0010 v3.0.0. (#596)
- Restore
homeDomainvalidation inreadChallengeTx().
- Restore
- Update challenge transaction helpers for SEP0010 v2.1.0. (#581)
- Remove verification of home domain.
- Allow additional manage data operations that have the source account set as the server key.
- Update claim predicate fields to match Horizon 1.9.1 (#575).
- Add support for claimable balances (#572). Extend server class to allow loading claimable balances from Horizon. The following functions are available:
server.claimableBalances();
server.claimableBalances().claimant(claimant);
server.claimableBalances().sponsor(sponsorID);
server.claimableBalances().asset(asset);
server.claimableBalances().claimableBalance(balanceID);
-
Add the following attributes to
AccountResponse(#572):sponsor?: stringnum_sponsoring: numbernum_sponsored: number
-
Add the optional attribute
sponsortoAccountSigner,BalanceLineAsset,ClaimableBalanceRecord, andOfferRecord(#572). -
Add
sponsorfiltering support foroffersandaccounts(#572).server.offers().sponsor(accountID)server.accounts().sponsor(accountID)
-
Extend operation responses to support new operations (#572).
create_claimable_balancewith the following fields:asset- asset available to be claimed (in canonical form),amount- amount available to be claimed,claimants- list of claimants with predicates (see below):destination- destination account ID,predicate- predicate required to claim a balance (see below).
claim_claimable_balancewith the following fields:balance_id- unique ID of balance to be claimed,claimant- account ID of a claimant.
begin_sponsoring_future_reserveswith the following fields:sponsored_id- account ID for which future reserves will be sponsored.
end_sponsoring_future_reserveswith the following fields:begin_sponsor- account sponsoring reserves.
revoke_sponsorshipwith the following fields:account_id- if account sponsorship was revoked,claimable_balance_id- if claimable balance sponsorship was revoked,data_account_id- if account data sponsorship was revoked,data_name- if account data sponsorship was revoked,offer_id- if offer sponsorship was revoked,trustline_account_id- if trustline sponsorship was revoked,trustline_asset- if trustline sponsorship was revoked,signer_account_id- if signer sponsorship was revoked,signer_key- if signer sponsorship was revoked.
-
Extend effect responses to support new effects (#572).
claimable_balance_createdwith the following fields:balance_id- unique ID of claimable balance,asset- asset available to be claimed (in canonical form),amount- amount available to be claimed.
claimable_balance_claimant_createdwith the following fields:balance_id- unique ID of a claimable balance,asset- asset available to be claimed (in canonical form),amount- amount available to be claimed,predicate- predicate required to claim a balance (see below).
claimable_balance_claimedwith the following fields:balance_id- unique ID of a claimable balance,asset- asset available to be claimed (in canonical form),amount- amount available to be claimed,
account_sponsorship_createdwith the following fields:sponsor- sponsor of an account.
account_sponsorship_updatedwith the following fields:new_sponsor- new sponsor of an account,former_sponsor- former sponsor of an account.
account_sponsorship_removedwith the following fields:former_sponsor- former sponsor of an account.
trustline_sponsorship_createdwith the following fields:sponsor- sponsor of a trustline.
trustline_sponsorship_updatedwith the following fields:new_sponsor- new sponsor of a trustline,former_sponsor- former sponsor of a trustline.
trustline_sponsorship_removedwith the following fields:former_sponsor- former sponsor of a trustline.
claimable_balance_sponsorship_createdwith the following fields:sponsor- sponsor of a claimable balance.
claimable_balance_sponsorship_updatedwith the following fields:new_sponsor- new sponsor of a claimable balance,former_sponsor- former sponsor of a claimable balance.
claimable_balance_sponsorship_removedwith the following fields:former_sponsor- former sponsor of a claimable balance.
signer_sponsorship_createdwith the following fields:signer- signer being sponsored.sponsor- signer sponsor.
signer_sponsorship_updatedwith the following fields:signer- signer being sponsored.former_sponsor- the former sponsor of the signer.new_sponsor- the new sponsor of the signer.
signer_sponsorship_removedwith the following fields:former_sponsor- former sponsor of a signer.
- Update
stellar-basetov4.0.0which introduces a breaking change in the internal XDR library.
The following functions were renamed:
xdr.OperationBody.setOption()->xdr.OperationBody.setOptions()xdr.OperationBody.manageDatum()->xdr.OperationBody.manageData()xdr.OperationType.setOption()->xdr.OperationType.setOptions()xdr.OperationType.manageDatum()->xdr.OperationType.manageData()
The following enum values were rename in OperationType:
setOption->setOptionsmanageDatum->manageData
- Add
tx_set_operation_counttoledgerresource (#559).
- Fix regression on
server.offer().forAccount()which wasn't allowing streaming (#533).
- Allow submitTransaction to receive a FeeBumpTransaction (#548).
- Skip SEP0029 (memo required check) for multiplexed accounts (#538).
- Fix missing documentation for
stellar-base(#544). - Move dom-monkeypatch to root types and publish to npm (#543).
- Add fee bump related attributes to
TransactionResponse(#532):fee_account: string.fee_bump_transaction: FeeBumpTransactionResponse:interface FeeBumpTransactionResponse { hash: string; signatures: string[]; }
inner_transaction: InnerTransactionResponse:interface InnerTransactionResponse { hash: string; signatures: string[]; max_fee: string; }
- Add
memo_bytes: stringtoTransactionResponse(#532). - Add
authorize_to_maintain_liabilities: booleantoAllowTrustOperation(#532). - Add
is_authorized_to_maintain_liabilities: booleantoBalanceLineNative(#532). - Add new result codes to
TransactionFailedResultCodes(#531).TX_FEE_BUMP_INNER_SUCCESS = "tx_fee_bump_inner_success", TX_FEE_BUMP_INNER_FAILED = "tx_fee_bump_inner_failed", TX_NOT_SUPPORTED = "tx_not_supported", TX_SUCCESS = "tx_success", TX_TOO_EARLY = "tx_too_early", TX_TOO_LATE = "tx_too_late", TX_MISSING_OPERATION = "tx_missing_operation", TX_INSUFFICIENT_BALANCE = "tx_insufficient_balance", TX_NO_SOURCE_ACCOUNT = "tx_no_source_account", TX_INSUFFICIENT_FEE = "tx_insufficient_fee", TX_INTERNAL_ERROR = "tx_internal_error",
- The attributes
max_feeandfee_chargedinTransactionResponsecan be now anumberor astring. Update your code to handle both types since Horizon will start sendingstringin version1.3.0(#528). - Bump
stellar-basetov3.0.0: This new version of stellar-base brings support for protocol 13, including multiple breaking changes which might affect your code, please review the list of breaking changes in stellar-base@3.0.0 release (#524). - Make
networkPassphrasea required argument inUtils.buildChallengeTxandUtils.readChallengeTx(#524). - Remove
Server.paths(#525).
- Update
stellar-basetov3.0.0-alpha-1.
- Bump
stellar-basetov3.0.0-alpha-0: This new version of stellar-base brings support for protocol 13, including multiple breaking changes which might affect your code, please review the list of breaking changes in stellar-base@3.0.0-alpha.0 release (#524). - Make
networkPassphrasea required argument inUtils.buildChallengeTxandUtils.readChallengeTx(#524). - Remove
Server.paths(#525).
-
Add SEP0029 (memo required) support. (#516)
Extends
server.submitTransactionto always run a memo required check before sending the transaction. If any of the destinations require a memo and the transaction doesn't include one, then anAccountRequiresMemoErrorwill be thrown.You can skip this check by passing
{skipMemoRequiredCheck: true}toserver.submitTransaction:server.submitTransaction(tx, {skipMemoRequiredCheck: true})The check runs for each operation of type:
paymentpathPaymentStrictReceivepathPaymentStrictSendmergeAccount
If the transaction includes a memo, then memo required checking is skipped.
See SEP0029 for more information about memo required check.
- Fix URI TypeScript reference. (#509)
- Fix docs build. (#503)
- Fix documentation for method to filter offers by account. (#507)
- Fix types and add missing attribute to
account_response. (#504)
- Add
.offermethod toOfferCallBuilderwhich allows fetching a single offer by ID. (#499)
- Fix broken link to Stellar logo+wordmark. (#496)
- Fix
_linkomition for AccountResponse class. (#495)
- Update challenge transaction helpers for SEP0010. (#497)
-
Add support for top-level offers endpoint with
seller,selling, andbuyingfilter. (#485) Horizon 1.0 includes a new/offersend-point, which allows you to list all offers, supporting filtering byseller,selling, orbuyingasset.You can fetch data from this endpoint by doing
server.offers()and use any of the following filters:seller:server.offers().forAccount(accountId)buying:server.offers().buying(asset)selling:server.offers().selling(asset)
This introduced a breaking change since it modified the signature for the function
server.offers().Before, if you wanted to list all the offers for a given account, you'd do:
server.offers('accounts', accountID)Starting on this version you'll need to do:
server.offers().forAccount(accountId)You can do now things that were not possible before, like finding all offers for an account filtering by the selling or buying asset
server.offers().forAccount(accountId).selling(assetA).buying(assetB) -
Add support for filtering accounts by
signerorasset(#474) Horizon 1.0 includes a new/accountsend-point, which allows you to list all accounts who have another account as a signer or hold a given asset.You can fetch data from this endpoint by doing
server.accounts()and use any of the following filters:accountID:server.accounts().accountId(accountId), returns a single account.forSigner:server.accounts().forSigner(accountId), returns accounts whereaccountIdis a signer.forAsset:server.accounts().forAsset(asset), returns accounts which hold theasset.
-
Add TypeScript typings for new fields in
fee_stats. (#462)
- Changed TypeScript typing for multiple operations "type", it will match the new value on Horizon. (#477)
- Fix fetchTimebounds() (#487)
- Clone the passed URI in CallBuilder constructor, to not mutate the outside ref (#473)
- Use axios CancelToken to ensure timeout (#482)
-
Remove
fee_paidfield from transaction response. (#476) -
Remove all
*_accepted_feefrom FeeStatsResponse. (#463) -
Change function signature for
server.offers. (#485) The signature for the functionserver.offers()was changed to bring suppport for other filters.Before, if you wanted to list all the offers for a given account, you'd do:
server.offers('accounts', accountID)Starting on this version you'll need to do:
server.offers().accountId(accountId)
-
Horizon 0.25.0 will change the data type for multiple attributes from
Int64tostring. When the JSON payload includes anInt64, there are scenarios where large number data can be incorrectly parsed, since JavaScript doesn't supportInt64values. You can read more about it in #1363.This release extends the data types for the following attributes to be of type
stringornumber:EffectRecord#offer_idEffectRecord#new_seqOfferRecord#idTradeAggregationRecord#timestampTradeAggregationRecord#trade_countManageOfferOperationResponse#offer_idPassiveOfferOperationResponse#offer_id
We recommend you update your code to handle both
stringornumberin the fields listed above, so that once Horizon 0.25.0 is released, your application will be able to handle the new type without breaking.
- Add
fee_chargedanmax_feetoTransactionResponseinterface. (455)
- Horizon 0.25 will stop sending the property
fee_paidin the transaction response. Usefee_chargedandmax_fee, read more about it in 450.
- Upgrade
stellar-basetov2.1.2. (452)
- Change arguments on server.strictReceivePaths since we included
destinationAccountas an argument, but it is not longer required by Horizon. (477)
-
Add
server.strictReceivePathswhich adds support for/paths/strict-receive. (444) This function takes a list of source assets or a source address, a destination address, a destination asset and a destination amount.You can call it passing a list of source assets:
server.strictReceivePaths(sourceAssets,destinationAsset, destinationAmount)Or a by passing a Stellar source account address:
server.strictReceivePaths(sourceAccount,destinationAsset, destinationAmount)When you call this function with a Stellar account address, it will look at the account’s trustlines and use them to determine all payment paths that can satisfy the desired amount.
-
Add
server.strictSendPathswhich adds support for/paths/strict-send. (444) This function takes the asset you want to send, and the amount of that asset, along with either a list of destination assets or a destination address.You can call it passing a list of destination assets:
server.strictSendPaths(sourceAsset, sourceAmount, [destinationAsset]).call()Or a by passing a Stellar account address:
server.strictSendPaths(sourceAsset, sourceAmount, "GDRREYWHQWJDICNH4SAH4TT2JRBYRPTDYIMLK4UWBDT3X3ZVVYT6I4UQ").call()When you call this function with a Stellar account address, it will look at the account’s trustlines and use them to determine all payment paths that can satisfy the desired amount.
- Server#paths is deprecated in favor of Server#strictReceivePaths. (444)
- Add join method to call builder. (#436)
- Drop Support for Node 6 since it has been end-of-lifed and no longer in LTS. We now require Node 10 which is the current LTS until April 1st, 2021. (#424
- Add feeStats support. (#409)
- Fix Util.verifyChallengeTx documentation (#405)
- Fix: listen to stream events with addEventListener (#408)
- Fix ServerApi's OrderbookRecord type (#401)
- Set
namein custom errors (#403)
- Fix manage data value in SEP0010 challenge builder. (#396)
- Add support for networkPassphrase in SEP0010 challenge builder. (#397)
- Add helper
Utils.verifyChallengeTxto verify SEP0010 "Challenge" Transaction. (#388) - Add helper
Utils.verifyTxSignedByto verify that a transaction has been signed by a given account. (#388)
- Check for a global EventSource before deciding what to use. This allows you to inject polyfills in other environments like react-native. (#389)
- Fix CallBuilder onmessage type (#385)
- Add single script to build docs and call it when combined with jsdoc. (#380)
- Add SEP0010 transaction challenge builder. (#375)
- Add
home_domainto ServerApi.AccountRecord (#376)
- Fix jsdoc's build in after_deploy (#373)
- Create new URI instead of passing serverUrl (Fix #379). (#382)
- Breaking change Port stellar-sdk to Typescript. Because we use a slightly
different build process, there could be some unanticipated bugs. Additionally,
some type definitions have changed:
- Types that were once in the
Servernamespace but didn't actually deal with theServerclass have been broken out into a new namespace,ServerApi. So, for example,Server.AccountRecord->ServerApi.AccountRecord. Server.AccountResponseis out of theServernamespace ->AccountResponseServer.*CallBuilderis out of theServernamespace ->*CallBuilderHorizonResponseAccountis nowHorizon.AccountResponse
- Types that were once in the
- Upgrade Webpack to v4.
- Add support for providing app name and version to request headers.
- (NPM wouldn't accept the 2.0.0 version, so we're publishing to 2.0.1.)
Many thanks to @Ffloriel and @Akuukis for their help with this release!
- Make CallCollectionFunction return a CollectionPage.
- Update Horizon.AccountSigner[] types.
- Automatically tag alpha / beta releases as "next" in NPM.
- Upgrade axios to 0.19.0 to close a security vulnerability.
- Some type fixes.
- Upgrade stellar-base to v1.0.2 to fix a bug with the browser bundle.
- Upgrade stellar-base to v1.0.1, which makes available again the deprecated
operation functions
Operation.manageOfferandOperation.createPassiveOffer(with a warning). - Fix the documentation around timebounds.
- Upgrade stellar-base to v1.0.0, which introduces two breaking changes.
- Switch stellar-sdk's versioning to true semver! 🎉
- Add types for LedgerCallBuilder.ledger.
- Add types for Server.operationFeeStats.
- Add types for the HorizonAxiosClient export.
- Move @types/* from devDependencies to dependencies.
- Pass and use a stream response type to CallBuilders if it's different from the normal call response.
- Upgrade stellar-base to a version that includes types, and remove @types/stellar-base as a result.
- In .travis.yml, try to switch from the encrypted API key to an environment var.
- Fix Server.transactions and Server.payments definitions to properly return collections
- Renew the npm publish key
- Add Typescript type definitions (imported from DefinitelyTyped).
- Make these changes to those definitions:
- Add definitions for Server.fetchBaseFee and Server.fetchTimebounds
- CallBuilder: No long always returns CollectionPaged results. Interfaces that extend CallBuilder should specify whether their response is a collection or not
- CallBuilder: Add inflation_destination and last_modified_ledger property
- OfferRecord: Fix the returned properties
- TradeRecord: Fix the returned properties
- TradesCallBuilder: Add forAccount method
- TransactionCallBuilder: Add includeFailed method
- Horizon.BalanceLineNative/Asset: Add buying_liabilities / selling_liabilities properties
- Fix documentation links.
- Breaking change:
stellar-sdkno longer ships with anEventSourcepolyfill. If you plan to support IE11 / Edge, please useevent-source-polyfillto setwindow.EventSource. - Upgrade
stellar-baseto a version that doesn't use thecryptolibrary, fixing a bug with Angular 6 - Add
Server.prototype.fetchTimebounds, a helper function that helps you set thetimeboundsproperty when inittingTransactionBuilder. It bases the timebounds on server time rather than local time.
- Updated some out-of-date dependencies
- Update documentation to explicitly set fees
- Add
Server.prototype.fetchBaseFee, which devs can use to fetch the current base fee; we plan to add more functions to help suggest fees in future releases - Add
includeFailedtoOperationCallBuilderfor including failed transactions in calls - Add
operationFeeStatstoServerfor the new fee stats endpoint - After submitting a transaction with a
manageOfferoperation, return a new propertyofferResults, which explains what happened to the offer. SeeServer.prototype.submitTransactionfor documentation.
- Update
stellar-baseto0.11.0 - Added ESLint and Prettier to enforce code style
- Upgraded dependencies, including Babel to 6
- Bump local node version to 6.14.0
- Update
stellar-baseto0.10.0:- Breaking change Added
TransactionBuilder.setTimeoutmethod that setstimebounds.max_timeon a transaction. Because of the distributed nature of the Stellar network it is possible that the status of your transaction will be determined after a long time if the network is highly congested. If you want to be sure to receive the status of the transaction within a given period you should set the TimeBounds withmaxTimeon the transaction (this is whatsetTimeoutdoes internally; if there'sminTimeset but nomaxTimeit will be added). Call toTransactionBuilder.setTimeoutis required if Transaction does not havemax_timeset. If you don't want to set timeout, useTimeoutInfinite. In general you should setTimeoutInfiniteonly in smart contracts. Please checkTransactionBuilder.setTimeoutdocs for more information. - Fixed decoding empty
homeDomain.
- Breaking change Added
- Add
offsetparameter to TradeAggregationCallBuilder to reflect new changes to the endpoint in horizon-0.15.0
- Update
js-xdr(by updatingstellar-base) to support unmarshaling non-utf8 strings. - String fields returned by
Operation.fromXDRObject()are of typeBuffernow (exceptSetOptions.home_domainandManageData.name- both required to be ASCII by stellar-core).
- Update
stellar-baseand xdr files.
- Update
stellar-base(andjs-xdr).
- Update
stellar-baseto0.8.1.
- Update
stellar-baseto0.8.0withbump_sequencesupport.
- Removed
.babelrcfile from the NPM package.
-
stellar-sdkis now using nativePromiseinstead ofbluebird. Thecatchfunction is different. Instead of:.catch(StellarSdk.NotFoundError, function (err) { /* ... */ })
please use the following snippet:
.catch(function (err) { if (err instanceof StellarSdk.NotFoundError) { /* ... */ } })
-
We no longer support IE 11, Firefox < 42, Chrome < 49.
- Fixed
_ is undefinedbug. - Browser build is around 130 KB smaller!
- Added
timeoutoption toStellarTomlResolverandFederationServercalls (stellar#158). - Fixed adding random value to URLs multiple times (stellar#169).
- Fixed jsdoc for classes that extend
CallBuilder. - Updated dependencies.
- Added
yarn.lockfile to repository.
- Add an allowed trade aggregation resolution of one minute
- Various bug fixes
- Improved documentation
- Modify
/tradesendpoint to reflect changes in horizon. - Add
/trade_aggregationssupport. - Add
/assetssupport.
- Upgrade
stellar-base.
- Allow hex string in setOptions signers.
- Upgrade
stellar-base.
- Support for new signer types:
sha256Hash,preAuthTx. StrKeyhelper class withstrkeyencoding related methods.- Removed deprecated methods:
Keypair.isValidPublicKey(useStrKey),Keypair.isValidSecretKey(useStrKey),Keypair.fromSeed,Keypair.seed,Keypair.rawSeed. - Breaking changes:
Networkmust be explicitly selected. Previously testnet was a default network.Operation.setOptions()methodsignerparam changed.Keypair.fromAccountId()renamed toKeypair.fromPublicKey().Keypair.accountId()renamed toKeypair.publicKey().- Dropping support for
End-of-Lifenode versions.
- Updated
stellar.tomllocation
forUpdatemethods of call builders now accept strings and numbers.- Create a copy of attribute in a response if there is a link with the same name
(ex.
transaction.ledger,transaction._links.ledger).
- Breaking change
CallBuilder.streamnow reconnects when no data was received for a long time. This is to prevent permanent disconnects (more in: #76). Also, this method now returnsclosecallback instead ofEventSourceobject. - Breaking change
Server.loadAccountnow returns theAccountResponseobject. - Breaking change Upgraded
stellar-baseto0.6.0.ed25519package is now an optional dependency. CheckStellarSdk.FastSigningvariable to check ifed25519package is available. More in README file. - New
StellarTomlResolverclass that allows gettingstellar.tomlfile for a domain. - New
Configclass to set global config values.
- Fixed XDR decoding issue when using firefox
- Breaking change
ServerandFederationServerconstructors no longer accept object inserverUrlparameter. - Breaking change Removed
AccountCallBuilder.addressmethod. UseAccountCallBuilder.accountIdinstead. - Breaking change It's no longer possible to connect to insecure server in
ServerorFederationServerunlessallowHttpflag inoptsis set. - Updated dependencies.
- Updated dependency (
stellar-base).
- Updated dependencies.
- Added tests.
- Added
CHANGELOG.mdfile.
stellar-basebump. (c90c68f)
- Breaking change Bumped
stellar-baseto 0.5.0. (b810aef)