As this project is pre 1.0, breaking changes may happen for minor version bumps. A breaking change will get clearly notified in this log.
- Fix the deployment CI that uploads the jar to the GitHub release [2]. (#453)
- Fix the deployment CI that uploads the jar to the GitHub release. (#452)
- Fix missing
auth_clawback_enabled
field in AccountResponse class. (#449)
- Fix bug in
KeyPair.fromSecretSeed(char[] seed)
. (#447) - Shade kotlin dependencies to prevent 'Duplicate class' errors. (#448)
- Update JDK compatibility version from Java 1.6 to Java 1.8 and bump the version of few libraries (#444):
- com.squareup.okhttp3 from
v3.11.0
tov4.10.0
. - commons-io:commons-io from
v2.6
tov2.11.0
. - junit:junit from
v4.12
tov4.13.2
. - org.threeten:threetenbp from
v1.4.4
tov1.6.0
. - org.mockito:mockito-core from
v2.21.0
tov4.6.1
. - javax.xml.bind:jaxb-api from
v2.3.0
tov2.3.1
.
- com.squareup.okhttp3 from
- Bump gson version from
v2.8.5
tov2.9.0
. (#443)
- Fix the
Sep10Challenge.verifyTransactionSignatures
method to handle/ignore signers that are not ed25519 compliant. (#440)
- Add memo to
Sep10Challenge.newChallenge()
andSep10Challenge.readChallengeTransaction
. (#435)
- Update TransactionResponse to include new Protocol 19 Preconditions (#428).
- Fix asset compare to when asset code are equals (#424).
- LiquidityPoolIDDeserializer is missing from the PageDeserializer. (#422)
- Update XDR definitions and auto-generated classes to support upcoming protocol 19 release (#416).
- Extend StrKey implementation to handle CAP 40 Payload Signer.
- Extended Transaction submission settings, additional new Preconditions can be added now, refer to CAP 21 Transaction Preconditions.
- org.stellar.sdk.Transaction.Builder
- deprecated
addTimeBounds()
useaddPreconditions()
instead - deprecated
setTimeout()
useaddPreconditions()
instead - deprecated
Transaction.Builder
use TransactionBuilder instead
- deprecated
- org.stellar.sdk.Transaction
getSignatures()
returns an ImmutableList of signatures, do NOT add signatures to the collection returned. useaddSignature(DecoratedSignature signature)
instead.
- Fixed NPE on TrustlineCreatedEffectResponse.getAsset() for liquidity pool asset type. Consolidated Asset factory creation pattern, made consistent for all asset types including native, alpha4, alpha12, liquidity pool shares. (#398).
- org.stellar.sdk.Asset.createNonNativeAsset() is now private. (#398).
- org.stellar.sdk.responses.effects.TrustlineCUDResponse, removed non-default public constructor, it wasn't needed. (#398).
- Muxed accounts are now supported by default. Previously we added opt in support for muxed accounts. But now we are changing the default behavior so that muxed accounts are rendered using their 'M' address encoding (#399).
- Fix missing Liquidity Pool ID in AccountResponse Balance (#379).
- Fix null pointer when calling ChangeTrustOperationResponse.getAsset() for LiquidityPool trust line (#378).
- Changed the access modifiers of the inner static classes of
AccountResponse
to public (#390). - Use the new ClaimableBalance Predicate AbsBeforeEpoch field to avoid parsing errors on potential large dates in AbsBefore (#394).
- Changed offer ids to be represented in requests and response models as long data type. (#386).
- Changed all MuxedId attributes to be of data type
java.math.BigInteger
in request and response models (#388).
- Fixed bug in parsing liquidity pool operation and effect responses (#373).
- Added support for 'client_domain' ManageData operations in SEP 10 challenges (#368).
- Add 5 minute grace period to SEP-10 challenge parsing function (#366).
- Add opt-in support for SEP23 M-strkeys for
MuxedAccount
s - Add
getClaimableBalanceId()
method toTransaction
class which returns the claimable balance id for a given operation. - Add support for additional _muxed and _muxed_id optional fields in Horizon's JSON responses (available since Horizon 2.4, following what's described in SEP 23).
- Added TransactionsRequestBuilder.forClaimableBalance(), and OperationsRequestBuilder.forClaimableBalance().
- Added support for new
accounts
,balances
,claimable_balances_amount
, andnum_claimable_balances
fields on Assets.
-
Operation
allow_trust
is deprecated in favor ofset_trust_line_flags
(although it will still be supported by the network) -
Effects
trustline_authorized
,trustline_authorized_to_maintain_liabilities
andtrustline_deauthorized
are deprecated in favor oftrustline_flags_updated
. Note how we intentionally didn't add a newtrustline_authorized_clawback_enabled
effect.
For uniformity, the allow_trust
operation will start producing trustline_flags_updated
from this release.
For now trustline_authorized
, trustline_authorized_to_maintain_liabilities
and trustline_deauthorized
will continue to be emitted as a result of the allow_trust
operation but in the future we may stop doing so.
Deprecated | New class |
---|---|
org.stellar.sdk.AllowTrustOperation |
org.stellar.sdk.SetTrustlineFlagsOperation |
org.stellar.sdk.responses.operations.AllowTrustOperationResponse |
org.stellar.sdk.responses.operations.SetTrustLineFlagsOperationResponse |
org.stellar.sdk.responses.effects.TrustlineAuthorizedEffectResponse |
org.stellar.sdk.responses.effects.TrustlineFlagsUpdatedEffectResponse |
org.stellar.sdk.responses.effects.TrustlineAuthorizedToMaintainLiabilitiesEffectResponse |
org.stellar.sdk.responses.effects.TrustlineFlagsUpdatedEffectResponse |
org.stellar.sdk.responses.effects.TrustlineDeauthorizedEffectResponse |
org.stellar.sdk.responses.effects.TrustlineFlagsUpdatedEffectResponse |
-
clawback
implemented inorg.stellar.sdk.ClawbackOperation
claws back a trustline from a given asset holder. -
clawback_claimable_balance
implemented inorg.stellar.sdk.ClawbackClaimableBalanceOperation
claws back a claimable balance. -
set_trust_line_flags
implemented inorg.stellar.sdk.SetTrustlineFlagsOperation
modifies a trustline's flags. This operation should be used instead oforg.stellar.sdk.AllowTrustOperation
.
-
trustline_flags_updated
implemented inorg.stellar.sdk.responses.effects.TrustlineFlagsUpdatedEffectResponse
, with the following fields:- Asset fields (like explained in the operations above):
asset_type
asset_code
asset_issuer
trustor
- account whose trustline the effect refers toauthorized_flag
- true to indicate the flag is set, field ommited if not setauthorized_to_maintain_liabilites
- true to indicate the flag is set, field ommited if not setclawback_enabled_flag
- true to indicate that the flag is set, field ommitted if not set
- Asset fields (like explained in the operations above):
-
claimable_balance_clawed_back
implemented inorg.stellar.sdk.responses.effects.ClaimableBalanceClawedBackEffectResponse
, with the following fields:balance_id
- claimable balance identifer of the claimable balance clawed back
- Updates the SEP-10 utility function parameters to support SEP-10 v3.1 (#319)
- A new required
webAuthDomain
parameter was added to the following functionsSep10Challenge#newChallenge(KeyPair, Network, String, String, String, TimeBounds)
Sep10Challenge#readChallengeTransaction(String, String, Network, String, String)
Sep10Challenge#readChallengeTransaction(String, String, Network, String[], String)
Sep10Challenge#verifyChallengeTransactionSigners(String, String, Network, String, String, Set)
Sep10Challenge#verifyChallengeTransactionSigners(String, String, Network, String[], String, Set)
Sep10Challenge#verifyChallengeTransactionThreshold(String, String, Network, String[], String, int, Set)
Sep10Challenge#verifyChallengeTransactionThreshold(String, String, Network, String, String, int, Set)
- 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
- Fix several bugs in revoke operations. (#317)
-
The XDR classes have been regenerated using the latest version of xdrgen which provides the following two features:
- Builder static inner classes to unions and structs
- Constructors for typedefs
- Update challenge transaction helpers for SEP-0010 v3.0.0. (#308)
- Fix the decoding of
balanceId
inorg.stellar.sdk.ClaimClaimableBalanceOperation
. (#310)
- Fix NullPointerException in
org.stellar.sdk.responses.operations.RevokeSponsorshipOperationResponse
accessor methods.
-
Change the type of
offerId
from java.lang.Integer to java.lang.Long to align with the 64-bit size of offer IDs. (#303).This change affects the following fields:
- org.stellar.sdk.responses.operations.CreatePassiveSellOfferOperationResponse.offerId
- org.stellar.sdk.responses.operations.ManageBuyOfferOperationResponse.offerId
- org.stellar.sdk.responses.operations.ManageSellOfferOperationResponse.offerId
- Update challenge transaction helpers for SEP-0010 v2.1.0. (#300).
- Remove verification of domain name.
- Allow additional manage data operations that have the source account set as the server key.
- Add support for claimable balances (#295). Extend server class to allow loading claimable balances from Horizon. The following functions are available:
server.claimableBalances();
server.claimableBalances().forClaimant(claimant);
server.claimableBalances().forSponsor(sponsorId);
server.claimableBalances().forAsset(asset);
server.claimableBalances().claimableBalance(balanceId);
-
Add the following attributes to
AccountResponse
(#295):Optional<String> getSponsor()
Integer getNumSponsoring()
Integer getNumSponsored()
-
Add the optional attribute
Optional<String> getSponsor()
toAccountResponse.Signer
,AccountResponse.Balance
,ClaimableBalanceResponse
, andOfferResponse
(#295). -
Add
sponsor
filtering support foroffers
andaccounts
(#295).server.offers().forSponsor(accountID)
server.accounts().forSponsor(accountID)
-
Extend operation responses to support new operations (#295).
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 (#295).
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.
- Replace
Sep10Challenge.newChallenge()
'sString anchorName
parameter withString domainName
- Add
String domainName
parameter toSep10Challenge.readChallengeTransaction()
,Sep10Challenge.verifyChallengeTransactionSigners()
, andSep10Challenge.verifyChallengeTransactionThreshold()
SEP-10 now requires clients to verify the SIGNING_KEY
included in the TOML file of the service requiring authentication is used to sign the challenge and that the challenge's Manage Data operation key includes the requested service's home domain. These checks ensure the challenge cannot be used in a relay attack.
The breaking changes described above support the added SEP-10 2.0 requirements for both servers and clients.
- Generate V1 transaction envelopes when constructing new Transaction instances (#285).
- Allow FeeBumpTransaction instances to wrap V0 transactions (#285).
- Rollback support for SEP23 (Muxed Account StrKey) (#282).
- Update XDR definitions and auto-generated classes to support upcoming protocol 13 release (#276).
- Extend StrKey implementation to handle CAP 27 Muxed Accounts (#276).
- Update
TransactionResponse
to include new fields which are relevant to CAP 15 Fee-Bump Transactions (#275). - Update
AccountResponse.Balance
,AllowTrustOperationResponse
, and createTrustlineAuthorizedToMaintainLiabilitiesEffectResponse
to support CAP 18 Fine-Grained Control of Authorization (#274). - Add
FeeBumpTransaction
andFeeBumpTransaction.Builder
for parsing and creating CAP 15 Fee-Bump Transactions (#278). - Add methods to
Server
for submitting CAP 15 Fee-Bump Transactions (#278). - Update SEP 10 implementation to reject fee-bump transactions and transactions with multiplexed addresses ([#278] (lightsail-network#278)).
- Update SEP 29 implementation to handle bump transactions (#278).
-
Add SEP0029 (memo required) support. (lightsail-network#272)
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 a true
skipMemoRequiredCheck
value toServer.submitTransaction
:server.submitTransaction(tx, 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.
- Update challenge transaction helpers for SEP-10 v1.3.0 (lightsail-network#263).
- Add support for /accounts end-point with ?signer and ?asset filters (lightsail-network#261).
- Add support for /offers end-point with query parameters (lightsail-network#261).
- Regenerate the XDR definitions to include MetaV2 support (lightsail-network#261).
- Horizon v0.24.0 added a
fee_charged
andmax_fee
object with information about max bid and actual fee paid for each transaction. - We are removing ``*_all_accepted_fee` fields in favor of the new keys, making it easier for people to understand the meaning the fields.
- Represent memo text contents as bytes because a memo text may not be valid UTF-8 string (lightsail-network#257).
- Validate name length when constructing org.stellar.sdk.ManageDataOperation instances.
- Validate home domain length when constructing org.stellar.sdk.SetOptionsOperation instances.
- Fix bug in
org.stellar.sdk.requests.OperationsRequestBuilder.operation(long operationId)
. The method submitted an HTTP request to Horizon with the following path, /operation/ , but the correct path is /operations/ - Rename
org.stellar.sdk.requests.PathsRequestBuilder
toorg.stellar.sdk.requests.StrictReceivePathsRequestBuilder
- Add
sourceAssets()
toorg.stellar.sdk.requests.StrictReceivePathsRequestBuilder
which allows a list of assets to be provided instead of a source account - Add
org.stellar.sdk.requests.StrictSendPathsRequestBuilder
which is the request builder for the /paths/strict-send endpoint - Removed deprecated classes:
org.stellar.sdk.PathPaymentOperation
andorg.stellar.sdk.responses.operations.PathPaymentOperationResponse
- The
fee_paid
field in the Horizon transaction response will be removed when Horizon 0.25 is released. Thefee_paid
field has been replaced bymax_fee
, which defines the maximum fee the source account is willing to pay, andfee_charged
, which defines the fee that was actually paid for a transaction. Consequently,getFeePaid()
has been removed fromorg.stellar.sdk.responses.Transaction
and has been replaced withgetMaxFee()
andgetFeeCharged()
.
The following methods are deprecated and will be removed in 0.11.0. Please switch to new methods and classes.
Deprecated | New method/class |
---|---|
org.stellar.sdk.PathPaymentOperation |
org.stellar.sdk.PathPaymentStrictReceiveOperation |
org.stellar.sdk.responses.operations.PathPaymentOperationResponse |
org.stellar.sdk.responses.operations.PathPaymentStrictReceiveOperationResponse |
- Add helper method to generate SEP 10 challenge
- Stellar Protocol 12 compatibility.
- Include
path
property in path payment operation responses. - Provide
includeTransactions()
method for constructing operations requests which include transaction data in the operations response. - Provide
includeTransactions()
method for constructing payments requests which include transaction data in the payments response.
- Use strings to represent account ids instead of KeyPair instances because account ids will not necessarily be valid public keys. If you try to parse an invalid public key into a KeyPair you will encounter an exception. To prevent exceptions when parsing horizon responses it is better to represent account ids as strings
- Removed deprecated methods and classes listed in the 0.7.0 changelog entry
- Configure network at the transaction and server level rather than using a singleton to determine which network to use globally.
- Implement hashCode() and equals() on Stellar classes and XDR generated classes
- Add streaming for account Offers
- Add callback to handle SSE failures
The following methods are deprecated and will be removed in 0.8.0. Please switch to new methods and classes.
Deprecated | New method/class |
---|---|
org.stellar.sdk.Server#operationFeeStats |
org.stellar.sdk.Server#feeStats |
org.stellar.sdk.requests.OperationFeeStatsRequestBuilder |
org.stellar.sdk.requests.FeeStatsRequestBuilder |
org.stellar.sdk.responses.OperationFeeStatsResponse |
org.stellar.sdk.responses.FeeStatsResponse |
org.stellar.sdk.responses.operations.CreatePassiveOfferOperationResponse |
org.stellar.sdk.responses.operations.CreatePassiveSellOfferOperationResponse |
org.stellar.sdk.responses.operations.ManageOfferOperationResponse |
org.stellar.sdk.responses.operations.ManageOfferSellOperationResponse |
org.stellar.sdk.CreatePassiveOfferOperation |
org.stellar.sdk.CreatePassiveSellOfferOperation |
org.stellar.sdk.ManageOfferOperation |
org.stellar.sdk.ManageSellOfferOperation |
- Stellar Protocol 11 compatibility (#199).
- Compatibility with Horizon API updates (#205).
- Add Support for
InflationOperation
inOperation.fromXdr
(#194). - Fixed exception thrown from
ManageOfferOperation.fromXDR
for some offers (#188). - Send Horizon client fingerprint (#190).
Server
now implementsCloseable
interface (#182).- Fixed
/order_book
endpoint streaming.
- Horizon 0.17.0 features (#180)
- Enable setting custom base fee (#177)
- Horizon 0.16.0 features (#172)
- Allow no signatures in Transaction.toEnvelopeXdr (#164)
- Fix dependencies shadowing (#173)
- Fixed streaming issues.
- Breaking change
Transaction.Builder
requiressetTimeout
method to be called. - Added Horizon 0.15.0 features.
- Improved streaming code and dependencies (thanks @jillesvangurp!).
- SEP-0005 derivation (thanks @westonal!).
- Non
ed25519
keys are now supported in all responses (fixes #126):SetOptionsOperationResponse.getSigner
is deprecated. Please useSetOptionsOperationResponse.getSignerKey
.AccountResponse.Signer.getAccountId
is deprecated. Please useAccountResponse.Signer.getKey
.
- Fixed
PathPaymentOperationResponse.getSourceAsset
method (#125).
- Fixed condition check in
TimeBounds
whenmaxTime
is equal0
.
- Protocol V10 updates:
Transaction
now has methods to create it from previously builtTransactionEnvelope
.- Improved
Server.submitTransaction
method, now throws exception for timeouts.
- Fixed
MemoReturnHash#toXdr()
method. - Patch for Horizon Timeout responses (
SubmitTransactionResponse.getEnvelopeXdr()
andSubmitTransactionResponse.getResultXdr()
).
- Full compatibility with Horizon 0.13.0 API.
- Fixed
Page.getNextPage
#66.
- Java SDK now works in Android!
Price
constructor is now public.- Added support for new endpoints and fields added in Horizon v0.12.0.
- Fixed
pad()
method inXdrInputStream
. - Added utf8 string support for
XdrDataInputStream
andXdrDataOutputStream
. - Fixed
AllowTrustOperation.Builder
forASSET_TYPE_CREDIT_ALPHANUM12
assets.
KeyPair.sign
now throwsRuntimeException
whenKeyPair
object does not contain a secret key.SubmitTransactionResponse.getOfferIdFromResult
if offer was taken andtx_result
does not contain offer ID.
- Regenerated XDR classes:
XdrDataOutputStream
class is now padding opaque data.XdrDataInputStream
class is now throwing an IOException when padding bytes are not zeros.- Made methods that shouldn't be used outside of
XdrDataOutputStream
andXdrDataInputStream
classes private. - Removed unused imports and variables.
- Added ability to set TimeBounds using Transaction.Builder
- Implemented
/order_book
and/order_book/trades
requests.
- Fixed a bug in
AssetDeserializer
. - Fixed a bug in
TransactionResponse
.
- Support for new signer types:
sha256Hash
,preAuthTx
. - Breaking change
Network
must be explicitly selected. Previously testnet was a default network.
- New location of
stellar.toml
file
- Fixed a bug in
OffersRequestBuilder.execute(URI uri)
(799f0df).
- Update and fix XDR (0b404d9).
- Added ResultCodes to SubmitTransactionResponse (79e2260).
Transaction.Builder.addOperation
is now thread safe (248a4a1).- Added
hashCode
method forAsset
classes (ab822e5). FederationResponse
constructor is now public. (c4c5a4d).- Updates to javadoc.
- Breaking change Merged java-stellar-base and java-stellar-sdk. More info in #19.