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)
This release contains updated dependencies for stability and security.
XRPTransaction.account
andXRPTransaction.sourceTag
were deprecated for two releases and have been removed. Please use the X-address encoded fieldsourceXAddress
instead.XRPPayment.destination
andXRPPayment.destinationTag
were deprecated for two releases and have been removed. Please use the X-address encoded fielddestinationXAddress
instead.
This new release contains production ready classes for PayID.
PayIDClient
is no longer bound to a single network at initialization time. Instead, networks are passed to the class as method parameters.
- A new method,
cryptoAddress(for:on:callbackQueue:completion:)
, replacesaddress(for:callbackQueue:completion:)
method inPayIDClient
. - A new method,
cryptoAddress(for:on:)
, replacesaddress(for:)
, method inPayIDClient
. - A new method,
allAddresses(for:callbackQueue:completion:)
, is added toPayIDClient
. - A new method,
allAddresses(for:)
, is added toPayIDClient
. - A new parameter,
callbackQueue
is added toPayIDClient
'saddress(for:completion)
method. - A new method,
address(for:)
is added toPayIDClient
to provide synchronous resolution functionality. - A new parameter,
callbackQueue
is added toXRPPayIDClient
'sxrpAddress(for:completion)
method. - A new method,
xrpAddress(for:)
is added toXRPPayIDClient
to provide synchronous resolution functionality. - A new parameter,
callbackQueue
is added toXpringClient
'ssend(_:to:from:completion)
method. - A new method,
send(_:to:from:)
is added toXpringClient
to provide synchronous send functionality.
- The
network
parameter inPayIDClient
's initializer is removed. address(for:callbackQueue:completion:)
is removed fromPayIDClient.
address(for:)
is removed fromPayIDClient.
- 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/)- A new method on
PayIDClient
,address(for:)
, provides a synchronous implementation ofaddress(for:completion:)
. - A new parameter,
callbackQueue
, inPayIDClient
'saddress(for:callbackQueue:completion:)
allows callers to specify the queue to run the callback on.
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.
- A new method,
getPayment
, added toXRPClient
for retrieving payment transactions by hash. - A new class,
DefaultILPCLient
, provides the functionality ofDefaultIlpClient
under an idiomatic name. - A new class,
ILPClient
, provides the functionality ofIlpClient
under an idiomatic name. - A new protocol,
ILPClientDecorator
, provides the functionality ofIlpClientDecorator
under an idiomatic name. - A new enum,
ILPError
, provides the functionality ofIlpError
under an idiomatic name. - A new class,
ILPNetworkBalanceClient
, provides the functionality ofIlpNetworkBalanceClient
under an idiomatic name. - A new class,
ILPNetworkPaymentClient
, provides the functionality ofIlpNetworkPaymentClient
under an idiomatic name. - A new class,
ILPCredentials
, provides the functionality ofIlpCredentials
under an idiomatic name.
DefaultIlpClient
is now deprecated. Please useDefaultILPClient
instead.IlpClient
is now deprecated. Please useILPClient
instead.IlpClientDecorator
is now deprecated. Please useILPClientDecorator
instead.IlpError
is now deprecated. Please useILPError
instead.IlpNetworkBalanceClient
is now deprecated. Please useILPNetworkBalanceClient
instead.IlpNetworkPaymentClient
is now deprecated. Please useILPNetworkPaymentClient
instead.IlpCredentials
is now deprecated. Please useILPCredentials
instead.
This fix release contains minor updates and performance improvements.
xrpToDrops
anddropsToXrp
conversion utilities added toUtils
This release contains serveral breaking changes that are required in order to:
- Support more protocols than just XRP Ledger (ILP, etc)
- Migrate the library to use the rippled node directly
Please note the changes and deprecations below.
- All legacy services are removed from XpringKit. All RPC's go through rippled's protocol buffer API.
getTransactionStatus
is removed. Please usegetPaymentStatus
instead.
XRPClient
requires a new parameter in its constructor that identifies the network it is attached to.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.IlpClient
methods now throwIlpError
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 previouslyRPCError
s
- A new
getPaymentStatus
is added which retrieves the status of payment transactions.
getTransactionStatus
is deprecated. Please usegetPaymentStatus
instead.
- Add a new
paymentHistory
method toXRPClient
. This method allows clients to retrieve payment history for an address. XpringClient
is removed from XpringKit. This class has been deprecated since 1.5.0. Clients should useXRPClient
instead.- Introduces a breaking change to
IlpClient
API.IlpClient.getBalance
now returns anAccountBalance
instead of a protobuf generatedGetBalanceResponse
.IlpClient.send
has been changed toIlpClient.sendPayment
to better align with other versions of the Xpring SDKIlpClient.sendPayment
now consumes aPaymentRequest
instead of individual parameters, and now returns aPaymentResult
instead of a protobuf generatedSendPaymentResponse
- Fixed a bug in
DefaultIlpClient
. "Bearer " prefix was not being prepended to auth tokens, which caused authentication issues on Hermes.- "Bearer " prefix now gets prepended to auth tokens, if it is not already there
This version introduces a public API to retrieve balances and send payments over ILP. Additionally, the deployment target for XpringKit is now explicitly set to macOS 10.13 and higher.
XpringClient
has been renamed toXRPClient
, along with all associated classes, and should be used going forward. Top-level classXpringClient
still exists alongsideXRPClient
and will be deprecated in the future.getTransactionStatus
will now returnTransactionStatus.unknown
if the transaction hash provided references a transaction that is a partial payment or a non payment transaction. This behavior is only enabled when using the rippled protocol buffer implementation.
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.