Skip to content

v0.7.0

Latest

Choose a tag to compare

@BitcoinZavior BitcoinZavior released this 22 Jan 17:34
7aa6198

[0.7.0]

Updated ldk-node to 0.7.0.
Updated flutter_rust_bridge to 2.11.1.
Updated freezed to 3.2.0.
Updated freezed-annotation to 3.1.0.

APIs Added

Channel Management

  • Channel Splicing: Experimental support via spliceIn() and spliceOut() methods
  • openChannel and openAnnouncedChannel (replaces connectOpenChannel)

Payments

  • Async Payments: Static invoice support with receiveStaticInvoice() and sendStaticInvoice()
  • Custom Preimage: sendWithPreimage() for spontaneous payments
  • Route Parameters: RouteParametersConfig support for BOLT12 payments and refunds
  • Unified QR: node.unifiedQrPayment & UnifiedQrPayment handler for generating and paying unified QR codes
  • BOLT12 support for quantity and payerNote fields
  • SendingParameters support when sending BOLT11 payments

Chain Data Sources

  • Bitcoin Core REST: ChainDataSourceConfig.bitcoindRest()
  • Bitcoin Core RPC: setChainSourceBitcoinRpc() for chain and fee estimation data
  • Electrum: ChainDataSourceConfig.electrum() with ElectrumSyncConfig and background sync options
  • Esplora with Headers: ChainDataSourceConfig.esploraWithHeaders() for custom HTTP headers
  • Renamed setEsploraServersetChainSourceEsplora with EsploraSyncConfig

FeeRate Class

  • Constants: zero, min, max, broadcastMin, dust
  • Constructors: fromSatPerKwu(), fromSatPerVb(), fromSatPerVbUnchecked()
  • Converters: toSatPerVbFloor(), toSatPerVbCeil(), toSatPerKwu()
  • Enhanced OnChainPayment methods with FeeRate parameter support

LSP Integration

  • LSPS2 service with receiveViaJitChannel() and receiveVariableAmountViaJitChannel()
  • Bolt11Jit payment variant with LSP fee limits and counterparty skimmed fee tracking

Events

  • payment_preimage field in PaymentSuccessful events
  • PaymentForwarded events for tracking forwarded payments with fee/routing info
  • Custom TLV records in PaymentClaimable and PaymentReceived via customRecords

Pathfinding

  • importPathfindingScores() and mergePathfindingScores()

Configuration

  • Mnemonic.generateWithWordCount() for configurable entropy
  • builder.setNodeAlias for public node announcements
  • Experimental encrypted VSS remote storage via builder.buildWithVssStore & builder.buildWithVssStoreAndFixedHeaders

Other

  • On-chain transactions now included in payment store and exposed via payment APIs

Breaking Changes

  • flutter_rust_bridge updated from 2.6.0 to 2.11.1 — may require changes in low-level FFI bindings
  • freezed updated to 3.2.0 — may require regeneration of freezed classes
  • node.connectOpenChannel split into openChannel and openAnnouncedChannel
  • setEsploraServer renamed to setChainSourceEsplora
  • Payment events include new fields (preimage, customRecords) affecting event handling code

Fixed

  • Node no longer enters unrecoverable state when previously generated transaction is accepted first (fixed in bdk_wallet 2.0.0)
  • Node no longer throws exception on persistence failure during event handling — events replay until successful
  • Node can now use confirmed on-chain funds to spend/bump Anchor outputs
  • FeeRate FFI type conflicts resolved with native Dart solution
  • ChannelConfig refactored — now allows querying current MaxDustHTLCExposure limit

Notes

  • Splicing-related transactions may still get misclassified in the payment store
  • Liquidity service data is now persisted across restarts
  • Improved shutdown robustness and reduced IO load via differential channel monitor updates
  • VSS support is alpha/experimental — may throw exceptions on unrecoverable persistence failures
  • Custom TLV sending (sendWithCustomTlvs) not yet exposed in public API