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 as described in The Cargo Book.
0.14.0 - 2024-07-04
- A batteries-included payment gateway built around the core library.
get_ids()
method to invoice stores.is_empty()
method to invoice stores.is_paid()
method toPaymentGateway
.get_invoice_ids()
method toPaymentGateway
.build_with_mock_daemon()
method toPaymentGateway
.
- Update MSRV to 1.76
- Replace invoice store
try_iter()
method withtry_for_each()
.
is_expired()
returning false when invoice is awaiting configrmation despite it being expired.
0.13.0 - 2023-07-23
OutputKeyStorage
trait, allowing AcceptXMR to store used output keys for burning bug mitigation.HeightStorage
trait, allowing AcceptXMR to store the most recently scanned height so that blocks are never skipped after extended downtime.Storage
supertrait over all necessary storage traits.initial_height()
method toPaymentGatewayBuilder
, allowing users to scan from wallet restore height to aid in burning bug mitigation.
- Update
indexmap
to version2.0.0
- Moved
flush()
method fromInvoiceStorage
trait to theStorage
trait.
0.12.1 - 2023-06-23
- Use webpki CA roots instead of native for better portability.
Invoice
'sexpiration_in()
function returning expiration height instead of block difference when called before first scan.- Documentation not getting built with all features on docs.rs -- @hinto-janai
- Only amount of first owned output was considered -- reported by @spirobel
0.12.0 - 2023-03-18
InvoiceStorage
trait, allowing library users to use custom storage layers.InMemory
store to be used for testing and other applications where persistence is not needed.Sqlite
store as a reliable alternative toSled
.account_index()
method toPaymentGatewayBuilder
for specifying the account index to be used. Defaults to0
.custom_storage
example showcasing new custom storage layer functionality.- Implement
Ord
andPartialOrd
forInvoiceId
. blocking_recv
as a replacement for the previously synchronousrecv
.
- Increase MSRV to 1.65.
- Add additional
store
argument toPaymentGateway::builder
for specifying storage layer implementation. - Move
bincode
(de)serialization behind a feature flag. - Make
PaymentGateway
generic overInvoiceStore
. - Change the return type of the
subscribe()
method ofPaymentGateway
toOption<Subscriber>
instead ofResult<Option<Subscriber>>
. - Change the
recv()
method ofSubscriber
to returnOption
instead ofResult
. - Make the
recv()
method ofSubscriber
anasync
method. Please useblocking_recv()
if you need to block while waiting. - Make the
recv_timeout
method ofSubscriber
anasync
method. - Change the
Output
ofSubscriber
'sFuture
impl toOption<Invoice>
instead ofResult<Invoice>
.
db_path()
method ofPaymentGateway
. Please choose and construct anInvoiceStore
instead.Iterator
implementation onSubscriber
.
0.11.1 - 2022-09-05
- Update monero-rs to 0.18, bringing support for view tags and bulletproofs+.
0.11.0 - 2022-08-06
- Add a
status()
method toPaymentGateway
for determining whether thePaymentGateway
is already running. - Add a
stop()
method toPaymentGateway
so that it can be gracefully shut down. - Add a
uri()
method toInvoice
which returns a valid monero URI as a string. The URI auto-fills the amount due for the end user. - Add
xmr_requested()
method toinvoice
which returns the amount requested in XMR. - Add
xmr_paid()
method toinvoice
which returns the amount paid in XMR. - Implement
Future
forSubscriber
. - Add TLS support.
- Add daemon login support.
- Replace Reqwest with Hyper to improve compile time.
- Increase MSRV to 1.61.
- Update dependencies.
- Use primary address instead of public spend key when creating
PaymentGateway
s. - Change some parameter types in API to make expensive memory operations like
Clone
s more apparent. - Reduce demo address loading time by getting the address immediately rather than waiting for the first invoice update.
- Return an error when attempting to run a
PaymentGateway
which is already running.
- Fix a bug where a change in the order of transactions in the txpool would cause all relevant invoices to update, even though no new relevant transactions had been added.
0.10.1 - 2021-12-04
- Update demo's actix dependencies.
- Crash occurring when payment gateway starts and last height in database is very recent.
0.10.0 - 2021-11-21
- Initial release of the library