All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
This release contains updated dependencies for stability and security.
- A new method,
sendWithDetails
, is exposed on theXrpClient
andXpringClient
, allowing memo data to be attached to the transaction when sending XRP. - A new method
enableDepositAuth
is added toXrpClient
which enables Deposit Authorization for the specified XRPL account. (See https://xrpl.org/depositauth.html)
Utils.byteArrayToHex
is deprecated. Please useCommonUtils.byteArrayToHex
.Utils.hexStringToByteArray
is deprecated. Please useCommonUtils.stringToByteArray
.
This release contains updated dependencies for stability and security.
This release contains updated dependencies for stability and security.
This new release contains production ready classes for PayID.
This release also provides idiomatic capitalization. Previously, classes that were 'PayID' are now named as 'PayId' and classes which were named as 'XRP' are now named 'Xrp'.
- A new method,
cryptoAddressForPayId
, replaces theaddressForPayId
method inPayIdClient
. - A new method,
allAddressesForPayId
, is added toPayIdClient
.
-
PayIDClient
was deprecated for two releases and has been removed. UsePayIdClient
instead. -
PayIDUtils
was deprecated for two releases and has been removed. UsePayIdUtils
instead. -
XRPPayIDClient
was deprecated for two releases and has been removed. UseXrpPayIdClient
instead. -
XRPPayIDClientInterface
was deprecated for two releases and has been removed. UseXrpPayIdClientInterface
instead. -
JavaScriptPayIDUtils
was deprecated for two releases and has been removed. UseJavaScriptPayIdUtils
instead. -
AbstractPayID
was deprecated for two releases and has been removed. UseAbstractPayId
instead. -
PayId
is deprecated. Please use the idiomatically casedPayID
interface instead. -
PayIdComponents
was deprecated for two releases and has been removed. UsePayIDComponents
interface instead. -
PayIDException
was deprecated for two releases and has been removed. UsePayIdException
class instead. -
PayIDExceptionType
was deprecated for two releases and has been removed. UsePayIdExceptionType
enum instead. -
XRPLNetwork
was deprecated for two releases and has been removed. UseXRPLNetwork
instead. -
DefaultXRPClient
was deprecated for two releases and has been removed. UseDefaultXrpClient
instead. -
XRPClient
was deprecated for two releases and has been removed. UseXrpClient
instead. -
XRPClientDecorator
was deprecated for two releases and has been removed. UseXrpClientDecorator
instead. -
XRPClientInterface
was deprecated for two releases and has been removed. UseXrpClientInterface
instead. -
XRPException
was deprecated for two releases and has been removed. UseXrpException
instead. -
XRPExceptionType
was deprecated for two releases and has been removed. UseXrpExceptionType
instead. -
XRPClient
was deprecated for two releases and has been removed. UseXrpClient
instead. -
XRPCurrencyAmount
was deprecated for two releases and has been removed. UseXrpCurrencyAmount
instead. -
XRPIssuedCurrency
was deprecated for two releases and has been removed. UseXrpIssuedCurrency
instead. -
XRPMemo
was deprecated for two releases and has been removed. UseXrpMemo
instead. -
XRPPath
was deprecated for two releases and has been removed. UseXrpPath
instead. -
XRPPathElement
was deprecated for two releases and has been removed. UseXrpPathElement
instead. -
XRPPayment
was deprecated for two releases and has been removed. UseXrpPayment
instead. -
XRPSigner
was deprecated for two releases and has been removed. UseXrpSigner
instead. -
XRPTransaction
was deprecated for two releases and has been removed. UseXrpTransaction
instead. -
XRPCurrency
was deprecated for two releases and has been removed. UseXrpCurrency
instead. -
The
network
parameter passed to the constructor ofPayIdClient
has been removed. Clients should favor calling the newcryptoAddressForPayId
method which allows them to specify the network at request time. -
addressForPayId
method has been removed fromPayIdClient
and replaced withcryptoAddressForPayId
- The fix for destination tags in 5.2.2 was incorrectly applied only to the deprecated class
XRPClient
. This release applies it toXrpClient
as well.
- Destination tags were being dropped from payments. This release fixes the issue.
XrpPayment
andXrpTransaction
now contain X-address representations of their address and tag fields. (See https://xrpaddress.info/)
XrpTransaction.account
andXrpTransaction.sourceTag
are deprecated. Please use the X-address encoded fieldsourceXAddress
instead.XrpPayment.destination
andXrpPayment.destinationTag
are deprecated.
Please use the X-address encoded fielddestinationXAddress
instead.
PayIdClient
provides the functionality ofPayIDClient
under an idiomatically cased name.PayIdUtils
provides the functionality ofPayIDUtils
under an idiomatically cased name.XrpPayIdClient
provides the functionality ofXRPPayIDClient
under an idiomatically cased name.XrpPayIdClientInterface
provides the functionality ofXRPPayIDClientInterface
under an idiomatically cased name.JavaScriptPayIdUtils
provides the functionality ofJavaScriptPayIDUtils
under an idiomatically cased name.
PayIDClient
is deprecated, use the idiomatically namedPayIdClient
instead.PayIDUtils
is deprecated, use the idiomatically namedPayIdUtils
instead.XRPPayIDClient
is deprecated, use the idiomatically namedXrpPayIdClient
instead.XRPPayIDClientInterface
is deprecated, use the idiomatically namedXrpPayIdClientInterface
instead.JavaScriptPayIDUtils
is deprecated, use the idiomatically namedJavaScriptPayIdUtils
instead.
- A new method,
getPayment
, added toXRPClient
for retrieving payment transactions by hash. XrplNetwork
provides the functionality ofXRPLNetwork
under an idiomatic cased name.DefaultXrpClient
provides the functionality ofDefaultXRPClient
under an idiomatic cased name.XrpClient
provides the functionality ofXRPClient
under an idiomatic cased name.XrpClientDecorator
provides the functionality ofXRPClientDecorator
under an idiomatic cased name.XrpClientInterface
provides the functionality ofXRPClientInterface
under an idiomatic cased name.XrpException
provides the functionality ofXRPException
under an idiomatic cased name.XrpExceptionType
provides the functionality ofXRPExceptionType
under an idiomatic cased name.XrpClient
provides the functionality ofXRPClient
under an idiomatic cased name.XrpCurrencyAmount
provides the functionality ofXRPCurrencyAmount
under an idiomatic cased name.XrpIssuedCurrency
provides the functionality ofXRPIssuedCurrency
under an idiomatic cased name.XrpMemo
provides the functionality ofXRPMemo
under an idiomatic cased name.XrpPath
provides the functionality ofXRPPath
under an idiomatic cased name.XrpPathElement
provides the functionality ofXRPPathElement
under an idiomatic cased name.XrpPayment
provides the functionality ofXRPPayment
under an idiomatic cased name.XrpSigner
provides the functionality ofXRPSigner
under an idiomatic cased name.XrpTransaction
provides the functionality ofXRPTransaction
under an idiomatic cased name.XrpCurrency
provides the functionality ofXRPCurrency
under an idiomatic cased name.
XRPLNetwork
is deprecated, please use the idiomatically namedXRPLNetwork
instead.DefaultXRPClient
is deprecated, please use the idiomatically namedDefaultXrpClient
instead.XRPClient
is deprecated, please use the idiomatically namedXrpClient
instead.XRPClientDecorator
is deprecated, please use the idiomatically namedXrpClientDecorator
instead.XRPClientInterface
is deprecated, please use the idiomatically namedXrpClientInterface
instead.XRPException
is deprecated, please use the idiomatically namedXrpException
instead.XRPExceptionType
is deprecated, please use the idiomatically namedXrpExceptionType
instead.XRPClient
is deprecated, please use the idiomatically namedXrpClient
instead.XRPCurrencyAmount
is deprecated, please use the idiomatically namedXrpCurrencyAmount
instead.XRPIssuedCurrency
is deprecated, please use the idiomatically namedXrpIssuedCurrency
instead.XRPMemo
is deprecated, please use the idiomatically namedXrpMemo
instead.XRPPath
is deprecated, please use the idiomatically namedXrpPath
instead.XRPPathElement
is deprecated, please use the idiomatically namedXrpPathElement
instead.XRPPayment
is deprecated, please use the idiomatically namedXrpPayment
instead.XRPSigner
is deprecated, please use the idiomatically namedXrpSigner
instead.XRPTransaction
is deprecated, please use the idiomatically namedXrpTransaction
instead.XRPCurrency
is deprecated, please use the idiomatically namedXrpCurrency
instead.
- A new class,
AbstractPayId
, replaces the functionality inAbstractPayID
with an idiomatically cased name. - A new interface,
PayId
, replaces the functionality inPayID
with an idiomatically cased name. - A new interface,
PayIdComponents
, replaces the functionality inPayIDComponents
with an idiomatically cased name.
AbstractPayID
is deprecated. Please use the idiomatically casedAbstractPayId
class instead.PayId
is deprecated. Please use the idiomatically casedPayID
interface instead.PayIdComponents
is deprecated. Please use the idiomatically casedPayIDComponents
interface instead.
This release contains minor deprecations of names of methods and classes to make this library more idiomatic with the wider Java ecosystem.
- A new class,
PayIdException
, replaces the functionality inPayIDException
with an idiomatically cased name. - A new enum,
PayIdExceptionType
, replaces the functionality inPayIDExceptionType
with an idiomatically cased name.
PayIDException
is deprecated. Please use the idiomatically casedPayIdException
class instead.PayIDExceptionType
is deprecated. Please use the idiomatically casedPayIdExceptionType
enum instead.
xrpToDrops
anddropsToXrp
conversion utilities added toio.xpring.xrpl.Utils
XRPTransaction
contains additional synthetic fields to represent the timestamp, hash, and deliveredAmount of the transaction.
XRPClient
requires a new parameter in it's constructor that identifies the network it is attached to.
This major release contains new features in XRP to check for existence of an account and to retrieve payment history for an account.
We make several breaking API changes in order to accomodate some larger refactors across the codebase and standardize interfaces. In particular, exception naming is refactored.
Additionally, this release turns down support for the legacy protocol buffers. This functionality has been defaulted to off and slated for removal for several releases.
- Add a new
paymentHistory
method toXRPClient
. This method allows clients to retrieve payment history for an address. - A new
accountExists
method added to XRPClient which determines whether a given address exists on the XRP Ledger.
- The
XRPClient
constructor requires a new parameter that identifies the network it is connected to. - Classes in
io.xpring.ilp
now throw anIlpException
rather than aXpringException
. - Classes in
io.xpring.xrp
now throw anXRPException
rather than aXpringException
. IlpClient
methods now throwIlpException
s if something goes wrong during the call (either client side or server side). This is only breaking if users are handling special error cases, which were previouslyStatusRuntimeException
s
- The
XpringException
class is removed and no longer exists. - All legacy services are removed from XpringKit. All RPCs go through rippled's protocol buffer API.
- A new
getPaymentStatus
is added which retrieves the status of payment transactions.
XpringClient
is removed from XpringKit. This class has been deprecated since 1.5.0. Clients should useXRPClient
instead.getTransactionStatus
is removed. Please usegetPaymentStatus
instead.
XRPClient
now uses rippled's protocol buffer API rather than the legacy API. Users who wish to use the legacy API should passfalse
foruseNewProtocolBuffers
in the constructor.- Introduces a breaking change to
IlpClient
API.IlpClient.getBalance
now returns anAccountBalance
instead of a protobuf generatedGetBalanceResponse
.IlpClient.sendPayment
now consumes aPaymentRequest
instead of individual parameters, and now returns aPaymentResult
instead of a protobuf generatedSendPaymentResponse
This release contains new functionality for InterLedger Protocol (ILP) in the ILPClient
class.
This release also deprecates XpringClient
and creates a new class called XRPClient
with the same API. Clients should move to using XRPClient
at their convenience.
XRPClient
is a renamed version of XpringClient to better clarify the class's role in the SDKILPClient
is a new class for interacting with the ILP Network.
- The
XpringClient
class is deprecated. Please useXRPClient
instead.
This version uses new protocol buffers from rippled which have breaking changes in them. Specifically, the breaking changes include:
- Re-ordering and repurposing of fields in order to add additional layers of abstraction
- Change package from
rpc.v1
toorg.xrpl.rpc.v1
This change is transparent to public API users. However, clients will need to connect to a rippled node which is built at any commit after #3254.
This release adds support for the new rippled protocol buffers and adds browser compatibility support.
New Protocol Buffers from rippled rippled implemented protocol buffer support natively, which uses a new and incompatible set of protocol buffers. The implementation in rippled was completed in: XRPLF/rippled#3159. Xpring4j is now capable of using these protocol buffers. This change is opt-in and non-breaking.
To switch to these protocol buffers, pass true to the useNewProtocolBuffer parameter in XpringClient's constructor. The default for this field is false. The remote rippled node must have gRPC enabled.
This release contains some breaking changes that fix and productionize this library. In particular, users will now have to provide a URL for a remote gRPC node when using XpringClient
. Clients can use grpc.xpring.tech:80
if they wish to use Xpring's hosted TestNet service.
Additionally, exceptions were mistakenly named XpringKitException
, which was a reference to the Swift variant of this library. This is a simple rename, no functionality is added, changed or removed.
- Renamed
XpringKitException
toXpringException
. XpringKit is the name of the Swift flavor of the Xpring SDK. - Require a gRPC parameter in XpringClient's initializer. A default value is no longer provided.