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 theXrpClientandXpringClient, allowing memo data to be attached to the transaction when sending XRP. - A new method
enableDepositAuthis added toXrpClientwhich enables Deposit Authorization for the specified XRPL account. (See https://xrpl.org/depositauth.html)
Utils.byteArrayToHexis deprecated. Please useCommonUtils.byteArrayToHex.Utils.hexStringToByteArrayis 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 theaddressForPayIdmethod inPayIdClient. - A new method,
allAddressesForPayId, is added toPayIdClient.
-
PayIDClientwas deprecated for two releases and has been removed. UsePayIdClientinstead. -
PayIDUtilswas deprecated for two releases and has been removed. UsePayIdUtilsinstead. -
XRPPayIDClientwas deprecated for two releases and has been removed. UseXrpPayIdClientinstead. -
XRPPayIDClientInterfacewas deprecated for two releases and has been removed. UseXrpPayIdClientInterfaceinstead. -
JavaScriptPayIDUtilswas deprecated for two releases and has been removed. UseJavaScriptPayIdUtilsinstead. -
AbstractPayIDwas deprecated for two releases and has been removed. UseAbstractPayIdinstead. -
PayIdis deprecated. Please use the idiomatically casedPayIDinterface instead. -
PayIdComponentswas deprecated for two releases and has been removed. UsePayIDComponentsinterface instead. -
PayIDExceptionwas deprecated for two releases and has been removed. UsePayIdExceptionclass instead. -
PayIDExceptionTypewas deprecated for two releases and has been removed. UsePayIdExceptionTypeenum instead. -
XRPLNetworkwas deprecated for two releases and has been removed. UseXRPLNetworkinstead. -
DefaultXRPClientwas deprecated for two releases and has been removed. UseDefaultXrpClientinstead. -
XRPClientwas deprecated for two releases and has been removed. UseXrpClientinstead. -
XRPClientDecoratorwas deprecated for two releases and has been removed. UseXrpClientDecoratorinstead. -
XRPClientInterfacewas deprecated for two releases and has been removed. UseXrpClientInterfaceinstead. -
XRPExceptionwas deprecated for two releases and has been removed. UseXrpExceptioninstead. -
XRPExceptionTypewas deprecated for two releases and has been removed. UseXrpExceptionTypeinstead. -
XRPClientwas deprecated for two releases and has been removed. UseXrpClientinstead. -
XRPCurrencyAmountwas deprecated for two releases and has been removed. UseXrpCurrencyAmountinstead. -
XRPIssuedCurrencywas deprecated for two releases and has been removed. UseXrpIssuedCurrencyinstead. -
XRPMemowas deprecated for two releases and has been removed. UseXrpMemoinstead. -
XRPPathwas deprecated for two releases and has been removed. UseXrpPathinstead. -
XRPPathElementwas deprecated for two releases and has been removed. UseXrpPathElementinstead. -
XRPPaymentwas deprecated for two releases and has been removed. UseXrpPaymentinstead. -
XRPSignerwas deprecated for two releases and has been removed. UseXrpSignerinstead. -
XRPTransactionwas deprecated for two releases and has been removed. UseXrpTransactioninstead. -
XRPCurrencywas deprecated for two releases and has been removed. UseXrpCurrencyinstead. -
The
networkparameter passed to the constructor ofPayIdClienthas been removed. Clients should favor calling the newcryptoAddressForPayIdmethod which allows them to specify the network at request time. -
addressForPayIdmethod has been removed fromPayIdClientand replaced withcryptoAddressForPayId
- The fix for destination tags in 5.2.2 was incorrectly applied only to the deprecated class
XRPClient. This release applies it toXrpClientas well.
- Destination tags were being dropped from payments. This release fixes the issue.
XrpPaymentandXrpTransactionnow contain X-address representations of their address and tag fields. (See https://xrpaddress.info/)
XrpTransaction.accountandXrpTransaction.sourceTagare deprecated. Please use the X-address encoded fieldsourceXAddressinstead.XrpPayment.destinationandXrpPayment.destinationTagare deprecated.
Please use the X-address encoded fielddestinationXAddressinstead.
PayIdClientprovides the functionality ofPayIDClientunder an idiomatically cased name.PayIdUtilsprovides the functionality ofPayIDUtilsunder an idiomatically cased name.XrpPayIdClientprovides the functionality ofXRPPayIDClientunder an idiomatically cased name.XrpPayIdClientInterfaceprovides the functionality ofXRPPayIDClientInterfaceunder an idiomatically cased name.JavaScriptPayIdUtilsprovides the functionality ofJavaScriptPayIDUtilsunder an idiomatically cased name.
PayIDClientis deprecated, use the idiomatically namedPayIdClientinstead.PayIDUtilsis deprecated, use the idiomatically namedPayIdUtilsinstead.XRPPayIDClientis deprecated, use the idiomatically namedXrpPayIdClientinstead.XRPPayIDClientInterfaceis deprecated, use the idiomatically namedXrpPayIdClientInterfaceinstead.JavaScriptPayIDUtilsis deprecated, use the idiomatically namedJavaScriptPayIdUtilsinstead.
- A new method,
getPayment, added toXRPClientfor retrieving payment transactions by hash. XrplNetworkprovides the functionality ofXRPLNetworkunder an idiomatic cased name.DefaultXrpClientprovides the functionality ofDefaultXRPClientunder an idiomatic cased name.XrpClientprovides the functionality ofXRPClientunder an idiomatic cased name.XrpClientDecoratorprovides the functionality ofXRPClientDecoratorunder an idiomatic cased name.XrpClientInterfaceprovides the functionality ofXRPClientInterfaceunder an idiomatic cased name.XrpExceptionprovides the functionality ofXRPExceptionunder an idiomatic cased name.XrpExceptionTypeprovides the functionality ofXRPExceptionTypeunder an idiomatic cased name.XrpClientprovides the functionality ofXRPClientunder an idiomatic cased name.XrpCurrencyAmountprovides the functionality ofXRPCurrencyAmountunder an idiomatic cased name.XrpIssuedCurrencyprovides the functionality ofXRPIssuedCurrencyunder an idiomatic cased name.XrpMemoprovides the functionality ofXRPMemounder an idiomatic cased name.XrpPathprovides the functionality ofXRPPathunder an idiomatic cased name.XrpPathElementprovides the functionality ofXRPPathElementunder an idiomatic cased name.XrpPaymentprovides the functionality ofXRPPaymentunder an idiomatic cased name.XrpSignerprovides the functionality ofXRPSignerunder an idiomatic cased name.XrpTransactionprovides the functionality ofXRPTransactionunder an idiomatic cased name.XrpCurrencyprovides the functionality ofXRPCurrencyunder an idiomatic cased name.
XRPLNetworkis deprecated, please use the idiomatically namedXRPLNetworkinstead.DefaultXRPClientis deprecated, please use the idiomatically namedDefaultXrpClientinstead.XRPClientis deprecated, please use the idiomatically namedXrpClientinstead.XRPClientDecoratoris deprecated, please use the idiomatically namedXrpClientDecoratorinstead.XRPClientInterfaceis deprecated, please use the idiomatically namedXrpClientInterfaceinstead.XRPExceptionis deprecated, please use the idiomatically namedXrpExceptioninstead.XRPExceptionTypeis deprecated, please use the idiomatically namedXrpExceptionTypeinstead.XRPClientis deprecated, please use the idiomatically namedXrpClientinstead.XRPCurrencyAmountis deprecated, please use the idiomatically namedXrpCurrencyAmountinstead.XRPIssuedCurrencyis deprecated, please use the idiomatically namedXrpIssuedCurrencyinstead.XRPMemois deprecated, please use the idiomatically namedXrpMemoinstead.XRPPathis deprecated, please use the idiomatically namedXrpPathinstead.XRPPathElementis deprecated, please use the idiomatically namedXrpPathElementinstead.XRPPaymentis deprecated, please use the idiomatically namedXrpPaymentinstead.XRPSigneris deprecated, please use the idiomatically namedXrpSignerinstead.XRPTransactionis deprecated, please use the idiomatically namedXrpTransactioninstead.XRPCurrencyis deprecated, please use the idiomatically namedXrpCurrencyinstead.
- A new class,
AbstractPayId, replaces the functionality inAbstractPayIDwith an idiomatically cased name. - A new interface,
PayId, replaces the functionality inPayIDwith an idiomatically cased name. - A new interface,
PayIdComponents, replaces the functionality inPayIDComponentswith an idiomatically cased name.
AbstractPayIDis deprecated. Please use the idiomatically casedAbstractPayIdclass instead.PayIdis deprecated. Please use the idiomatically casedPayIDinterface instead.PayIdComponentsis deprecated. Please use the idiomatically casedPayIDComponentsinterface 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 inPayIDExceptionwith an idiomatically cased name. - A new enum,
PayIdExceptionType, replaces the functionality inPayIDExceptionTypewith an idiomatically cased name.
PayIDExceptionis deprecated. Please use the idiomatically casedPayIdExceptionclass instead.PayIDExceptionTypeis deprecated. Please use the idiomatically casedPayIdExceptionTypeenum instead.
xrpToDropsanddropsToXrpconversion utilities added toio.xpring.xrpl.Utils
XRPTransactioncontains additional synthetic fields to represent the timestamp, hash, and deliveredAmount of the transaction.
XRPClientrequires 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
paymentHistorymethod toXRPClient. This method allows clients to retrieve payment history for an address. - A new
accountExistsmethod added to XRPClient which determines whether a given address exists on the XRP Ledger.
- The
XRPClientconstructor requires a new parameter that identifies the network it is connected to. - Classes in
io.xpring.ilpnow throw anIlpExceptionrather than aXpringException. - Classes in
io.xpring.xrpnow throw anXRPExceptionrather than aXpringException. IlpClientmethods now throwIlpExceptions 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 previouslyStatusRuntimeExceptions
- The
XpringExceptionclass is removed and no longer exists. - All legacy services are removed from XpringKit. All RPCs go through rippled's protocol buffer API.
- A new
getPaymentStatusis added which retrieves the status of payment transactions.
XpringClientis removed from XpringKit. This class has been deprecated since 1.5.0. Clients should useXRPClientinstead.getTransactionStatusis removed. Please usegetPaymentStatusinstead.
XRPClientnow uses rippled's protocol buffer API rather than the legacy API. Users who wish to use the legacy API should passfalseforuseNewProtocolBuffersin the constructor.- Introduces a breaking change to
IlpClientAPI.IlpClient.getBalancenow returns anAccountBalanceinstead of a protobuf generatedGetBalanceResponse.IlpClient.sendPaymentnow consumes aPaymentRequestinstead of individual parameters, and now returns aPaymentResultinstead 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.
XRPClientis a renamed version of XpringClient to better clarify the class's role in the SDKILPClientis a new class for interacting with the ILP Network.
- The
XpringClientclass is deprecated. Please useXRPClientinstead.
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.v1toorg.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
XpringKitExceptiontoXpringException. 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.