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
webAuthDomain
parameter was added to the following functionsutils.buildChallengeTx()
utils.readChallengeTx()
utils.verifyChallengeTxThreshold()
utils.verifyChallengeTxSigners()
- The
webAuthDomain
parameter 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
axios
package to version^0.21.1
from^0.19.0
to fix security vulnerabilities (#608) -
Upgraded
js-stellar-base
package to version^4.0.3
from^4.0.0
to 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
homeDomain
parameter 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
homeDomain
validation 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?: string
num_sponsoring: number
num_sponsored: number
-
Add the optional attribute
sponsor
toAccountSigner
,BalanceLineAsset
,ClaimableBalanceRecord
, andOfferRecord
(#572). -
Add
sponsor
filtering support foroffers
andaccounts
(#572).server.offers().sponsor(accountID)
server.accounts().sponsor(accountID)
-
Extend operation responses to support new operations (#572).
create_claimable_balance
with 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_balance
with the following fields:balance_id
- unique ID of balance to be claimed,claimant
- account ID of a claimant.
begin_sponsoring_future_reserves
with the following fields:sponsored_id
- account ID for which future reserves will be sponsored.
end_sponsoring_future_reserves
with the following fields:begin_sponsor
- account sponsoring reserves.
revoke_sponsorship
with 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_created
with 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_created
with 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_claimed
with 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_created
with the following fields:sponsor
- sponsor of an account.
account_sponsorship_updated
with the following fields:new_sponsor
- new sponsor of an account,former_sponsor
- former sponsor of an account.
account_sponsorship_removed
with the following fields:former_sponsor
- former sponsor of an account.
trustline_sponsorship_created
with the following fields:sponsor
- sponsor of a trustline.
trustline_sponsorship_updated
with the following fields:new_sponsor
- new sponsor of a trustline,former_sponsor
- former sponsor of a trustline.
trustline_sponsorship_removed
with the following fields:former_sponsor
- former sponsor of a trustline.
claimable_balance_sponsorship_created
with the following fields:sponsor
- sponsor of a claimable balance.
claimable_balance_sponsorship_updated
with the following fields:new_sponsor
- new sponsor of a claimable balance,former_sponsor
- former sponsor of a claimable balance.
claimable_balance_sponsorship_removed
with the following fields:former_sponsor
- former sponsor of a claimable balance.
signer_sponsorship_created
with the following fields:signer
- signer being sponsored.sponsor
- signer sponsor.
signer_sponsorship_updated
with 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_removed
with the following fields:former_sponsor
- former sponsor of a signer.
- Update
stellar-base
tov4.0.0
which 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
->setOptions
manageDatum
->manageData
- Add
tx_set_operation_count
toledger
resource (#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: string
toTransactionResponse
(#532). - Add
authorize_to_maintain_liabilities: boolean
toAllowTrustOperation
(#532). - Add
is_authorized_to_maintain_liabilities: boolean
toBalanceLineNative
(#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_fee
andfee_charged
inTransactionResponse
can be now anumber
or astring
. Update your code to handle both types since Horizon will start sendingstring
in version1.3.0
(#528). - Bump
stellar-base
tov3.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 [email protected] release (#524). - Make
networkPassphrase
a required argument inUtils.buildChallengeTx
andUtils.readChallengeTx
(#524). - Remove
Server.paths
(#525).
- Update
stellar-base
tov3.0.0-alpha-1
.
- Bump
stellar-base
tov3.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 [email protected] release (#524). - Make
networkPassphrase
a required argument inUtils.buildChallengeTx
andUtils.readChallengeTx
(#524). - Remove
Server.paths
(#525).
-
Add SEP0029 (memo required) support. (#516)
Extends
server.submitTransaction
to 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 anAccountRequiresMemoError
will 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:
payment
pathPaymentStrictReceive
pathPaymentStrictSend
mergeAccount
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
.offer
method toOfferCallBuilder
which allows fetching a single offer by ID. (#499)
- Fix broken link to Stellar logo+wordmark. (#496)
- Fix
_link
omition for AccountResponse class. (#495)
- Update challenge transaction helpers for SEP0010. (#497)
-
Add support for top-level offers endpoint with
seller
,selling
, andbuying
filter. (#485) Horizon 1.0 includes a new/offers
end-point, which allows you to list all offers, supporting filtering byseller
,selling
, orbuying
asset.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
signer
orasset
(#474) Horizon 1.0 includes a new/accounts
end-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 whereaccountId
is 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_paid
field from transaction response. (#476) -
Remove all
*_accepted_fee
from 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
Int64
tostring
. When the JSON payload includes anInt64
, there are scenarios where large number data can be incorrectly parsed, since JavaScript doesn't supportInt64
values. You can read more about it in #1363.This release extends the data types for the following attributes to be of type
string
ornumber
:EffectRecord#offer_id
EffectRecord#new_seq
OfferRecord#id
TradeAggregationRecord#timestamp
TradeAggregationRecord#trade_count
ManageOfferOperationResponse#offer_id
PassiveOfferOperationResponse#offer_id
We recommend you update your code to handle both
string
ornumber
in 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_charged
anmax_fee
toTransactionResponse
interface. (455)
- Horizon 0.25 will stop sending the property
fee_paid
in the transaction response. Usefee_charged
andmax_fee
, read more about it in 450.
- Upgrade
stellar-base
tov2.1.2
. (452)
- Change arguments on server.strictReceivePaths since we included
destinationAccount
as an argument, but it is not longer required by Horizon. (477)
-
Add
server.strictReceivePaths
which 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.strictSendPaths
which 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
name
in custom errors (#403)
- Fix manage data value in SEP0010 challenge builder. (#396)
- Add support for networkPassphrase in SEP0010 challenge builder. (#397)
- Add helper
Utils.verifyChallengeTx
to verify SEP0010 "Challenge" Transaction. (#388) - Add helper
Utils.verifyTxSignedBy
to 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_domain
to 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
Server
namespace but didn't actually deal with theServer
class have been broken out into a new namespace,ServerApi
. So, for example,Server.AccountRecord
->ServerApi.AccountRecord
. Server.AccountResponse
is out of theServer
namespace ->AccountResponse
Server.*CallBuilder
is out of theServer
namespace ->*CallBuilder
HorizonResponseAccount
is 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.manageOffer
andOperation.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-sdk
no longer ships with anEventSource
polyfill. If you plan to support IE11 / Edge, please useevent-source-polyfill
to setwindow.EventSource
. - Upgrade
stellar-base
to a version that doesn't use thecrypto
library, fixing a bug with Angular 6 - Add
Server.prototype.fetchTimebounds
, a helper function that helps you set thetimebounds
property 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
includeFailed
toOperationCallBuilder
for including failed transactions in calls - Add
operationFeeStats
toServer
for the new fee stats endpoint - After submitting a transaction with a
manageOffer
operation, return a new propertyofferResults
, which explains what happened to the offer. SeeServer.prototype.submitTransaction
for documentation.
- Update
stellar-base
to0.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-base
to0.10.0
:- Breaking change Added
TransactionBuilder.setTimeout
method that setstimebounds.max_time
on 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 withmaxTime
on the transaction (this is whatsetTimeout
does internally; if there'sminTime
set but nomaxTime
it will be added). Call toTransactionBuilder.setTimeout
is required if Transaction does not havemax_time
set. If you don't want to set timeout, useTimeoutInfinite
. In general you should setTimeoutInfinite
only in smart contracts. Please checkTransactionBuilder.setTimeout
docs for more information. - Fixed decoding empty
homeDomain
.
- Breaking change Added
- Add
offset
parameter 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 typeBuffer
now (exceptSetOptions.home_domain
andManageData.name
- both required to be ASCII by stellar-core).
- Update
stellar-base
and xdr files.
- Update
stellar-base
(andjs-xdr
).
- Update
stellar-base
to0.8.1
.
- Update
stellar-base
to0.8.0
withbump_sequence
support.
- Removed
.babelrc
file from the NPM package.
-
stellar-sdk
is now using nativePromise
instead ofbluebird
. Thecatch
function 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 undefined
bug. - Browser build is around 130 KB smaller!
- Added
timeout
option toStellarTomlResolver
andFederationServer
calls (stellar#158). - Fixed adding random value to URLs multiple times (stellar#169).
- Fixed jsdoc for classes that extend
CallBuilder
. - Updated dependencies.
- Added
yarn.lock
file to repository.
- Add an allowed trade aggregation resolution of one minute
- Various bug fixes
- Improved documentation
- Modify
/trades
endpoint to reflect changes in horizon. - Add
/trade_aggregations
support. - Add
/assets
support.
- Upgrade
stellar-base
.
- Allow hex string in setOptions signers.
- Upgrade
stellar-base
.
- Support for new signer types:
sha256Hash
,preAuthTx
. StrKey
helper class withstrkey
encoding related methods.- Removed deprecated methods:
Keypair.isValidPublicKey
(useStrKey
),Keypair.isValidSecretKey
(useStrKey
),Keypair.fromSeed
,Keypair.seed
,Keypair.rawSeed
. - Breaking changes:
Network
must be explicitly selected. Previously testnet was a default network.Operation.setOptions()
methodsigner
param changed.Keypair.fromAccountId()
renamed toKeypair.fromPublicKey()
.Keypair.accountId()
renamed toKeypair.publicKey()
.- Dropping support for
End-of-Life
node versions.
- Updated
stellar.toml
location
forUpdate
methods 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.stream
now reconnects when no data was received for a long time. This is to prevent permanent disconnects (more in: #76). Also, this method now returnsclose
callback instead ofEventSource
object. - Breaking change
Server.loadAccount
now returns theAccountResponse
object. - Breaking change Upgraded
stellar-base
to0.6.0
.ed25519
package is now an optional dependency. CheckStellarSdk.FastSigning
variable to check ifed25519
package is available. More in README file. - New
StellarTomlResolver
class that allows gettingstellar.toml
file for a domain. - New
Config
class to set global config values.
- Fixed XDR decoding issue when using firefox
- Breaking change
Server
andFederationServer
constructors no longer accept object inserverUrl
parameter. - Breaking change Removed
AccountCallBuilder.address
method. UseAccountCallBuilder.accountId
instead. - Breaking change It's no longer possible to connect to insecure server in
Server
orFederationServer
unlessallowHttp
flag inopts
is set. - Updated dependencies.
- Updated dependency (
stellar-base
).
- Updated dependencies.
- Added tests.
- Added
CHANGELOG.md
file.
stellar-base
bump. (c90c68f)
- Breaking change Bumped
stellar-base
to 0.5.0. (b810aef)