Skip to content

0.19.0

Compare
Choose a tag to compare
@tamirms tamirms released this 05 Oct 13:48
beed1c6

This version of the Java SDK implements full support for the upcoming Stellar Protocol 14 upgrade.

Add

  • 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() to AccountResponse.Signer, AccountResponse.Balance, ClaimableBalanceResponse, and OfferResponse (#295).

  • Add sponsor filtering support for offers and accounts (#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.

Breaking changes

  • Replace Sep10Challenge.newChallenge()'s String anchorName parameter with String domainName
  • Add String domainName parameter to Sep10Challenge.readChallengeTransaction(), Sep10Challenge.verifyChallengeTransactionSigners(), and Sep10Challenge.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.