breez-sdk-spark 0.3.1__cp310-cp310-manylinux_2_31_aarch64.whl → 0.3.2__cp310-cp310-manylinux_2_31_aarch64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -2440,6 +2440,66 @@ class _UniffiConverterTypeCurrencyInfo(_UniffiConverterRustBuffer):
2440
2440
  _UniffiConverterSequenceTypeLocaleOverrides.write(value.locale_overrides, buf)
2441
2441
 
2442
2442
 
2443
+ class ExternalInputParser:
2444
+ """
2445
+ Configuration for an external input parser
2446
+ """
2447
+
2448
+ provider_id: "str"
2449
+ """
2450
+ An arbitrary parser provider id
2451
+ """
2452
+
2453
+ input_regex: "str"
2454
+ """
2455
+ The external parser will be used when an input conforms to this regex
2456
+ """
2457
+
2458
+ parser_url: "str"
2459
+ """
2460
+ The URL of the parser containing a placeholder `<input>` that will be replaced with the
2461
+ input to be parsed. The input is sanitized using percent encoding.
2462
+ """
2463
+
2464
+ def __init__(self, *, provider_id: "str", input_regex: "str", parser_url: "str"):
2465
+ self.provider_id = provider_id
2466
+ self.input_regex = input_regex
2467
+ self.parser_url = parser_url
2468
+
2469
+ def __str__(self):
2470
+ return "ExternalInputParser(provider_id={}, input_regex={}, parser_url={})".format(self.provider_id, self.input_regex, self.parser_url)
2471
+
2472
+ def __eq__(self, other):
2473
+ if self.provider_id != other.provider_id:
2474
+ return False
2475
+ if self.input_regex != other.input_regex:
2476
+ return False
2477
+ if self.parser_url != other.parser_url:
2478
+ return False
2479
+ return True
2480
+
2481
+ class _UniffiConverterTypeExternalInputParser(_UniffiConverterRustBuffer):
2482
+ @staticmethod
2483
+ def read(buf):
2484
+ return ExternalInputParser(
2485
+ provider_id=_UniffiConverterString.read(buf),
2486
+ input_regex=_UniffiConverterString.read(buf),
2487
+ parser_url=_UniffiConverterString.read(buf),
2488
+ )
2489
+
2490
+ @staticmethod
2491
+ def check_lower(value):
2492
+ _UniffiConverterString.check_lower(value.provider_id)
2493
+ _UniffiConverterString.check_lower(value.input_regex)
2494
+ _UniffiConverterString.check_lower(value.parser_url)
2495
+
2496
+ @staticmethod
2497
+ def write(value, buf):
2498
+ _UniffiConverterString.write(value.provider_id, buf)
2499
+ _UniffiConverterString.write(value.input_regex, buf)
2500
+ _UniffiConverterString.write(value.parser_url, buf)
2501
+
2502
+
2443
2503
  class FiatCurrency:
2444
2504
  """
2445
2505
  Wrapper around the [`CurrencyInfo`] of a fiat currency
@@ -5643,6 +5703,7 @@ __all__ = [
5643
5703
  "Bolt12OfferBlindedPath",
5644
5704
  "Bolt12OfferDetails",
5645
5705
  "CurrencyInfo",
5706
+ "ExternalInputParser",
5646
5707
  "FiatCurrency",
5647
5708
  "LightningAddressDetails",
5648
5709
  "LnurlAuthRequestDetails",
@@ -31,6 +31,7 @@ import asyncio
31
31
  import platform
32
32
  from .breez_sdk_common import BitcoinAddressDetails
33
33
  from .breez_sdk_common import Bolt11InvoiceDetails
34
+ from .breez_sdk_common import ExternalInputParser
34
35
  from .breez_sdk_common import FiatCurrency
35
36
  from .breez_sdk_common import FiatService
36
37
  from .breez_sdk_common import InputType
@@ -41,6 +42,7 @@ from .breez_sdk_common import SuccessAction
41
42
  from .breez_sdk_common import SuccessActionProcessed
42
43
  from .breez_sdk_common import _UniffiConverterTypeBitcoinAddressDetails
43
44
  from .breez_sdk_common import _UniffiConverterTypeBolt11InvoiceDetails
45
+ from .breez_sdk_common import _UniffiConverterTypeExternalInputParser
44
46
  from .breez_sdk_common import _UniffiConverterTypeFiatCurrency
45
47
  from .breez_sdk_common import _UniffiConverterTypeFiatService
46
48
  from .breez_sdk_common import _UniffiConverterTypeInputType
@@ -51,6 +53,7 @@ from .breez_sdk_common import _UniffiConverterTypeSuccessAction
51
53
  from .breez_sdk_common import _UniffiConverterTypeSuccessActionProcessed
52
54
  from .breez_sdk_common import _UniffiRustBuffer as _UniffiRustBufferBitcoinAddressDetails
53
55
  from .breez_sdk_common import _UniffiRustBuffer as _UniffiRustBufferBolt11InvoiceDetails
56
+ from .breez_sdk_common import _UniffiRustBuffer as _UniffiRustBufferExternalInputParser
54
57
  from .breez_sdk_common import _UniffiRustBuffer as _UniffiRustBufferFiatCurrency
55
58
  from .breez_sdk_common import _UniffiRustBuffer as _UniffiRustBufferFiatService
56
59
  from .breez_sdk_common import _UniffiRustBuffer as _UniffiRustBufferInputType
@@ -499,8 +502,6 @@ def _uniffi_check_api_checksums(lib):
499
502
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
500
503
  if lib.uniffi_breez_sdk_spark_checksum_func_init_logging() != 8518:
501
504
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
502
- if lib.uniffi_breez_sdk_spark_checksum_func_parse() != 58372:
503
- raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
504
505
  if lib.uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_address_utxos() != 20959:
505
506
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
506
507
  if lib.uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_transaction_status() != 23018:
@@ -537,6 +538,8 @@ def _uniffi_check_api_checksums(lib):
537
538
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
538
539
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_lnurl_pay() != 10147:
539
540
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
541
+ if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_parse() != 195:
542
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
540
543
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_lnurl_pay() != 37691:
541
544
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
542
545
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_send_payment() != 34185:
@@ -555,6 +558,8 @@ def _uniffi_check_api_checksums(lib):
555
558
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
556
559
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_wait_for_payment() != 64922:
557
560
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
561
+ if lib.uniffi_breez_sdk_spark_checksum_method_paymentobserver_before_send() != 30686:
562
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
558
563
  if lib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_build() != 8126:
559
564
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
560
565
  if lib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_chain_service() != 2848:
@@ -565,6 +570,8 @@ def _uniffi_check_api_checksums(lib):
565
570
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
566
571
  if lib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_lnurl_client() != 61720:
567
572
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
573
+ if lib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_payment_observer() != 21617:
574
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
568
575
  if lib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_rest_chain_service() != 56288:
569
576
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
570
577
  if lib.uniffi_breez_sdk_spark_checksum_method_storage_delete_cached_item() != 6883:
@@ -716,6 +723,8 @@ _UNIFFI_CALLBACK_INTERFACE_BITCOIN_CHAIN_SERVICE_METHOD2 = ctypes.CFUNCTYPE(None
716
723
  )
717
724
  _UNIFFI_CALLBACK_INTERFACE_BITCOIN_CHAIN_SERVICE_METHOD3 = ctypes.CFUNCTYPE(None,ctypes.c_uint64,_UniffiRustBuffer,_UNIFFI_FOREIGN_FUTURE_COMPLETE_VOID,ctypes.c_uint64,ctypes.POINTER(_UniffiForeignFuture),
718
725
  )
726
+ _UNIFFI_CALLBACK_INTERFACE_PAYMENT_OBSERVER_METHOD0 = ctypes.CFUNCTYPE(None,ctypes.c_uint64,_UniffiRustBuffer,_UNIFFI_FOREIGN_FUTURE_COMPLETE_VOID,ctypes.c_uint64,ctypes.POINTER(_UniffiForeignFuture),
727
+ )
719
728
  _UNIFFI_CALLBACK_INTERFACE_STORAGE_METHOD0 = ctypes.CFUNCTYPE(None,ctypes.c_uint64,_UniffiRustBuffer,_UNIFFI_FOREIGN_FUTURE_COMPLETE_VOID,ctypes.c_uint64,ctypes.POINTER(_UniffiForeignFuture),
720
729
  )
721
730
  _UNIFFI_CALLBACK_INTERFACE_STORAGE_METHOD1 = ctypes.CFUNCTYPE(None,ctypes.c_uint64,_UniffiRustBuffer,_UNIFFI_FOREIGN_FUTURE_COMPLETE_RUST_BUFFER,ctypes.c_uint64,ctypes.POINTER(_UniffiForeignFuture),
@@ -758,6 +767,11 @@ class _UniffiVTableCallbackInterfaceBitcoinChainService(ctypes.Structure):
758
767
  ("broadcast_transaction", _UNIFFI_CALLBACK_INTERFACE_BITCOIN_CHAIN_SERVICE_METHOD3),
759
768
  ("uniffi_free", _UNIFFI_CALLBACK_INTERFACE_FREE),
760
769
  ]
770
+ class _UniffiVTableCallbackInterfacePaymentObserver(ctypes.Structure):
771
+ _fields_ = [
772
+ ("before_send", _UNIFFI_CALLBACK_INTERFACE_PAYMENT_OBSERVER_METHOD0),
773
+ ("uniffi_free", _UNIFFI_CALLBACK_INTERFACE_FREE),
774
+ ]
761
775
  class _UniffiVTableCallbackInterfaceStorage(ctypes.Structure):
762
776
  _fields_ = [
763
777
  ("delete_cached_item", _UNIFFI_CALLBACK_INTERFACE_STORAGE_METHOD0),
@@ -883,6 +897,11 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_lnurl_pay.argtypes = (
883
897
  _UniffiRustBuffer,
884
898
  )
885
899
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_lnurl_pay.restype = ctypes.c_uint64
900
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_parse.argtypes = (
901
+ ctypes.c_void_p,
902
+ _UniffiRustBuffer,
903
+ )
904
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_parse.restype = ctypes.c_uint64
886
905
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_prepare_lnurl_pay.argtypes = (
887
906
  ctypes.c_void_p,
888
907
  _UniffiRustBuffer,
@@ -928,6 +947,25 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_wait_for_payment.argtypes =
928
947
  _UniffiRustBuffer,
929
948
  )
930
949
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_wait_for_payment.restype = ctypes.c_uint64
950
+ _UniffiLib.uniffi_breez_sdk_spark_fn_clone_paymentobserver.argtypes = (
951
+ ctypes.c_void_p,
952
+ ctypes.POINTER(_UniffiRustCallStatus),
953
+ )
954
+ _UniffiLib.uniffi_breez_sdk_spark_fn_clone_paymentobserver.restype = ctypes.c_void_p
955
+ _UniffiLib.uniffi_breez_sdk_spark_fn_free_paymentobserver.argtypes = (
956
+ ctypes.c_void_p,
957
+ ctypes.POINTER(_UniffiRustCallStatus),
958
+ )
959
+ _UniffiLib.uniffi_breez_sdk_spark_fn_free_paymentobserver.restype = None
960
+ _UniffiLib.uniffi_breez_sdk_spark_fn_init_callback_vtable_paymentobserver.argtypes = (
961
+ ctypes.POINTER(_UniffiVTableCallbackInterfacePaymentObserver),
962
+ )
963
+ _UniffiLib.uniffi_breez_sdk_spark_fn_init_callback_vtable_paymentobserver.restype = None
964
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_paymentobserver_before_send.argtypes = (
965
+ ctypes.c_void_p,
966
+ _UniffiRustBuffer,
967
+ )
968
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_paymentobserver_before_send.restype = ctypes.c_uint64
931
969
  _UniffiLib.uniffi_breez_sdk_spark_fn_clone_sdkbuilder.argtypes = (
932
970
  ctypes.c_void_p,
933
971
  ctypes.POINTER(_UniffiRustCallStatus),
@@ -971,6 +1009,11 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_lnurl_client.argtype
971
1009
  ctypes.c_void_p,
972
1010
  )
973
1011
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_lnurl_client.restype = ctypes.c_uint64
1012
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_payment_observer.argtypes = (
1013
+ ctypes.c_void_p,
1014
+ ctypes.c_void_p,
1015
+ )
1016
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_payment_observer.restype = ctypes.c_uint64
974
1017
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_rest_chain_service.argtypes = (
975
1018
  ctypes.c_void_p,
976
1019
  _UniffiRustBuffer,
@@ -1086,10 +1129,6 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_func_init_logging.argtypes = (
1086
1129
  ctypes.POINTER(_UniffiRustCallStatus),
1087
1130
  )
1088
1131
  _UniffiLib.uniffi_breez_sdk_spark_fn_func_init_logging.restype = None
1089
- _UniffiLib.uniffi_breez_sdk_spark_fn_func_parse.argtypes = (
1090
- _UniffiRustBuffer,
1091
- )
1092
- _UniffiLib.uniffi_breez_sdk_spark_fn_func_parse.restype = ctypes.c_uint64
1093
1132
  _UniffiLib.ffi_breez_sdk_spark_rustbuffer_alloc.argtypes = (
1094
1133
  ctypes.c_uint64,
1095
1134
  ctypes.POINTER(_UniffiRustCallStatus),
@@ -1370,9 +1409,6 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_func_default_storage.restype = ctypes
1370
1409
  _UniffiLib.uniffi_breez_sdk_spark_checksum_func_init_logging.argtypes = (
1371
1410
  )
1372
1411
  _UniffiLib.uniffi_breez_sdk_spark_checksum_func_init_logging.restype = ctypes.c_uint16
1373
- _UniffiLib.uniffi_breez_sdk_spark_checksum_func_parse.argtypes = (
1374
- )
1375
- _UniffiLib.uniffi_breez_sdk_spark_checksum_func_parse.restype = ctypes.c_uint16
1376
1412
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_address_utxos.argtypes = (
1377
1413
  )
1378
1414
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_get_address_utxos.restype = ctypes.c_uint16
@@ -1427,6 +1463,9 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_list_unclaimed_deposi
1427
1463
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_lnurl_pay.argtypes = (
1428
1464
  )
1429
1465
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_lnurl_pay.restype = ctypes.c_uint16
1466
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_parse.argtypes = (
1467
+ )
1468
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_parse.restype = ctypes.c_uint16
1430
1469
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_lnurl_pay.argtypes = (
1431
1470
  )
1432
1471
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_prepare_lnurl_pay.restype = ctypes.c_uint16
@@ -1454,6 +1493,9 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sync_wallet.restype =
1454
1493
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_wait_for_payment.argtypes = (
1455
1494
  )
1456
1495
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_wait_for_payment.restype = ctypes.c_uint16
1496
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_paymentobserver_before_send.argtypes = (
1497
+ )
1498
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_paymentobserver_before_send.restype = ctypes.c_uint16
1457
1499
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_build.argtypes = (
1458
1500
  )
1459
1501
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_build.restype = ctypes.c_uint16
@@ -1469,6 +1511,9 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_key_set.restyp
1469
1511
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_lnurl_client.argtypes = (
1470
1512
  )
1471
1513
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_lnurl_client.restype = ctypes.c_uint16
1514
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_payment_observer.argtypes = (
1515
+ )
1516
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_payment_observer.restype = ctypes.c_uint16
1472
1517
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_rest_chain_service.argtypes = (
1473
1518
  )
1474
1519
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_sdkbuilder_with_rest_chain_service.restype = ctypes.c_uint16
@@ -2061,6 +2106,8 @@ class BreezSdkProtocol(typing.Protocol):
2061
2106
  raise NotImplementedError
2062
2107
  def lnurl_pay(self, request: "LnurlPayRequest"):
2063
2108
  raise NotImplementedError
2109
+ def parse(self, input: "str"):
2110
+ raise NotImplementedError
2064
2111
  def prepare_lnurl_pay(self, request: "PrepareLnurlPayRequest"):
2065
2112
  raise NotImplementedError
2066
2113
  def prepare_send_payment(self, request: "PrepareSendPaymentRequest"):
@@ -2472,6 +2519,27 @@ _UniffiConverterTypeSdkError,
2472
2519
 
2473
2520
 
2474
2521
 
2522
+ async def parse(self, input: "str") -> "InputType":
2523
+ _UniffiConverterString.check_lower(input)
2524
+
2525
+ return await _uniffi_rust_call_async(
2526
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_parse(
2527
+ self._uniffi_clone_pointer(),
2528
+ _UniffiConverterString.lower(input)
2529
+ ),
2530
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
2531
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
2532
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_free_rust_buffer,
2533
+ # lift function
2534
+ _UniffiConverterTypeInputType.lift,
2535
+
2536
+ # Error FFI converter
2537
+ _UniffiConverterTypeSdkError,
2538
+
2539
+ )
2540
+
2541
+
2542
+
2475
2543
  async def prepare_lnurl_pay(self, request: "PrepareLnurlPayRequest") -> "PrepareLnurlPayResponse":
2476
2544
  _UniffiConverterTypePrepareLnurlPayRequest.check_lower(request)
2477
2545
 
@@ -2710,6 +2778,156 @@ class _UniffiConverterTypeBreezSdk:
2710
2778
 
2711
2779
 
2712
2780
 
2781
+ class PaymentObserver(typing.Protocol):
2782
+ """
2783
+ This interface is used to observe outgoing payments before Lightning, Spark and onchain Bitcoin payments.
2784
+ If the implementation returns an error, the payment is cancelled.
2785
+ """
2786
+
2787
+ def before_send(self, payments: "typing.List[ProvisionalPayment]"):
2788
+ """
2789
+ Called before Lightning, Spark or onchain Bitcoin payments are made
2790
+ """
2791
+
2792
+ raise NotImplementedError
2793
+
2794
+
2795
+ class PaymentObserverImpl:
2796
+ """
2797
+ This interface is used to observe outgoing payments before Lightning, Spark and onchain Bitcoin payments.
2798
+ If the implementation returns an error, the payment is cancelled.
2799
+ """
2800
+
2801
+ _pointer: ctypes.c_void_p
2802
+
2803
+ def __init__(self, *args, **kwargs):
2804
+ raise ValueError("This class has no default constructor")
2805
+
2806
+ def __del__(self):
2807
+ # In case of partial initialization of instances.
2808
+ pointer = getattr(self, "_pointer", None)
2809
+ if pointer is not None:
2810
+ _uniffi_rust_call(_UniffiLib.uniffi_breez_sdk_spark_fn_free_paymentobserver, pointer)
2811
+
2812
+ def _uniffi_clone_pointer(self):
2813
+ return _uniffi_rust_call(_UniffiLib.uniffi_breez_sdk_spark_fn_clone_paymentobserver, self._pointer)
2814
+
2815
+ # Used by alternative constructors or any methods which return this type.
2816
+ @classmethod
2817
+ def _make_instance_(cls, pointer):
2818
+ # Lightly yucky way to bypass the usual __init__ logic
2819
+ # and just create a new instance with the required pointer.
2820
+ inst = cls.__new__(cls)
2821
+ inst._pointer = pointer
2822
+ return inst
2823
+
2824
+ async def before_send(self, payments: "typing.List[ProvisionalPayment]") -> None:
2825
+
2826
+ """
2827
+ Called before Lightning, Spark or onchain Bitcoin payments are made
2828
+ """
2829
+
2830
+ _UniffiConverterSequenceTypeProvisionalPayment.check_lower(payments)
2831
+
2832
+ return await _uniffi_rust_call_async(
2833
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_paymentobserver_before_send(
2834
+ self._uniffi_clone_pointer(),
2835
+ _UniffiConverterSequenceTypeProvisionalPayment.lower(payments)
2836
+ ),
2837
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_poll_void,
2838
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_complete_void,
2839
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_free_void,
2840
+ # lift function
2841
+ lambda val: None,
2842
+
2843
+
2844
+ # Error FFI converter
2845
+ _UniffiConverterTypePaymentObserverError,
2846
+
2847
+ )
2848
+
2849
+
2850
+
2851
+
2852
+ # Put all the bits inside a class to keep the top-level namespace clean
2853
+ class _UniffiTraitImplPaymentObserver:
2854
+ # For each method, generate a callback function to pass to Rust
2855
+
2856
+ @_UNIFFI_CALLBACK_INTERFACE_PAYMENT_OBSERVER_METHOD0
2857
+ def before_send(
2858
+ uniffi_handle,
2859
+ payments,
2860
+ uniffi_future_callback,
2861
+ uniffi_callback_data,
2862
+ uniffi_out_return,
2863
+ ):
2864
+ uniffi_obj = _UniffiConverterTypePaymentObserver._handle_map.get(uniffi_handle)
2865
+ def make_call():
2866
+ args = (_UniffiConverterSequenceTypeProvisionalPayment.lift(payments), )
2867
+ method = uniffi_obj.before_send
2868
+ return method(*args)
2869
+
2870
+
2871
+ def handle_success(return_value):
2872
+ uniffi_future_callback(
2873
+ uniffi_callback_data,
2874
+ _UniffiForeignFutureStructVoid(
2875
+ _UniffiRustCallStatus.default()
2876
+ )
2877
+ )
2878
+
2879
+ def handle_error(status_code, rust_buffer):
2880
+ uniffi_future_callback(
2881
+ uniffi_callback_data,
2882
+ _UniffiForeignFutureStructVoid(
2883
+ _UniffiRustCallStatus(status_code, rust_buffer),
2884
+ )
2885
+ )
2886
+ uniffi_out_return[0] = _uniffi_trait_interface_call_async_with_error(make_call, handle_success, handle_error, PaymentObserverError, _UniffiConverterTypePaymentObserverError.lower)
2887
+
2888
+ @_UNIFFI_CALLBACK_INTERFACE_FREE
2889
+ def _uniffi_free(uniffi_handle):
2890
+ _UniffiConverterTypePaymentObserver._handle_map.remove(uniffi_handle)
2891
+
2892
+ # Generate the FFI VTable. This has a field for each callback interface method.
2893
+ _uniffi_vtable = _UniffiVTableCallbackInterfacePaymentObserver(
2894
+ before_send,
2895
+ _uniffi_free
2896
+ )
2897
+ # Send Rust a pointer to the VTable. Note: this means we need to keep the struct alive forever,
2898
+ # or else bad things will happen when Rust tries to access it.
2899
+ _UniffiLib.uniffi_breez_sdk_spark_fn_init_callback_vtable_paymentobserver(ctypes.byref(_uniffi_vtable))
2900
+
2901
+
2902
+
2903
+ class _UniffiConverterTypePaymentObserver:
2904
+ _handle_map = _UniffiHandleMap()
2905
+
2906
+ @staticmethod
2907
+ def lift(value: int):
2908
+ return PaymentObserverImpl._make_instance_(value)
2909
+
2910
+ @staticmethod
2911
+ def check_lower(value: PaymentObserver):
2912
+ pass
2913
+
2914
+ @staticmethod
2915
+ def lower(value: PaymentObserver):
2916
+ return _UniffiConverterTypePaymentObserver._handle_map.insert(value)
2917
+
2918
+ @classmethod
2919
+ def read(cls, buf: _UniffiRustBuffer):
2920
+ ptr = buf.read_u64()
2921
+ if ptr == 0:
2922
+ raise InternalError("Raw pointer value was null")
2923
+ return cls.lift(ptr)
2924
+
2925
+ @classmethod
2926
+ def write(cls, value: PaymentObserver, buf: _UniffiRustBuffer):
2927
+ buf.write_u64(cls.lower(value))
2928
+
2929
+
2930
+
2713
2931
  class SdkBuilderProtocol(typing.Protocol):
2714
2932
  """
2715
2933
  Builder for creating `BreezSdk` instances with customizable components.
@@ -2747,6 +2965,14 @@ class SdkBuilderProtocol(typing.Protocol):
2747
2965
 
2748
2966
  raise NotImplementedError
2749
2967
  def with_lnurl_client(self, lnurl_client: "RestClient"):
2968
+ raise NotImplementedError
2969
+ def with_payment_observer(self, payment_observer: "PaymentObserver"):
2970
+ """
2971
+ Sets the payment observer to be used by the SDK.
2972
+ Arguments:
2973
+ - `payment_observer`: The payment observer to be used.
2974
+ """
2975
+
2750
2976
  raise NotImplementedError
2751
2977
  def with_rest_chain_service(self, url: "str",credentials: "typing.Optional[Credentials]"):
2752
2978
  """
@@ -2946,6 +3172,36 @@ _UniffiConverterTypeSdkError,
2946
3172
 
2947
3173
 
2948
3174
 
3175
+ async def with_payment_observer(self, payment_observer: "PaymentObserver") -> None:
3176
+
3177
+ """
3178
+ Sets the payment observer to be used by the SDK.
3179
+ Arguments:
3180
+ - `payment_observer`: The payment observer to be used.
3181
+ """
3182
+
3183
+ _UniffiConverterTypePaymentObserver.check_lower(payment_observer)
3184
+
3185
+ return await _uniffi_rust_call_async(
3186
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_sdkbuilder_with_payment_observer(
3187
+ self._uniffi_clone_pointer(),
3188
+ _UniffiConverterTypePaymentObserver.lower(payment_observer)
3189
+ ),
3190
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_poll_void,
3191
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_complete_void,
3192
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_free_void,
3193
+ # lift function
3194
+ lambda val: None,
3195
+
3196
+
3197
+ # Error FFI converter
3198
+
3199
+ None,
3200
+
3201
+ )
3202
+
3203
+
3204
+
2949
3205
  async def with_rest_chain_service(self, url: "str",credentials: "typing.Optional[Credentials]") -> None:
2950
3206
 
2951
3207
  """
@@ -4140,16 +4396,32 @@ class Config:
4140
4396
  but is at the cost of privacy.
4141
4397
  """
4142
4398
 
4143
- def __init__(self, *, api_key: "typing.Optional[str]", network: "Network", sync_interval_secs: "int", max_deposit_claim_fee: "typing.Optional[Fee]", lnurl_domain: "typing.Optional[str]", prefer_spark_over_lightning: "bool"):
4399
+ external_input_parsers: "typing.Optional[typing.List[ExternalInputParser]]"
4400
+ """
4401
+ A set of external input parsers that are used by [`BreezSdk::parse`](crate::sdk::BreezSdk::parse) when the input
4402
+ is not recognized. See [`ExternalInputParser`] for more details on how to configure
4403
+ external parsing.
4404
+ """
4405
+
4406
+ use_default_external_input_parsers: "bool"
4407
+ """
4408
+ The SDK includes some default external input parsers
4409
+ ([`DEFAULT_EXTERNAL_INPUT_PARSERS`]).
4410
+ Set this to false in order to prevent their use.
4411
+ """
4412
+
4413
+ def __init__(self, *, api_key: "typing.Optional[str]", network: "Network", sync_interval_secs: "int", max_deposit_claim_fee: "typing.Optional[Fee]", lnurl_domain: "typing.Optional[str]", prefer_spark_over_lightning: "bool", external_input_parsers: "typing.Optional[typing.List[ExternalInputParser]]", use_default_external_input_parsers: "bool"):
4144
4414
  self.api_key = api_key
4145
4415
  self.network = network
4146
4416
  self.sync_interval_secs = sync_interval_secs
4147
4417
  self.max_deposit_claim_fee = max_deposit_claim_fee
4148
4418
  self.lnurl_domain = lnurl_domain
4149
4419
  self.prefer_spark_over_lightning = prefer_spark_over_lightning
4420
+ self.external_input_parsers = external_input_parsers
4421
+ self.use_default_external_input_parsers = use_default_external_input_parsers
4150
4422
 
4151
4423
  def __str__(self):
4152
- return "Config(api_key={}, network={}, sync_interval_secs={}, max_deposit_claim_fee={}, lnurl_domain={}, prefer_spark_over_lightning={})".format(self.api_key, self.network, self.sync_interval_secs, self.max_deposit_claim_fee, self.lnurl_domain, self.prefer_spark_over_lightning)
4424
+ return "Config(api_key={}, network={}, sync_interval_secs={}, max_deposit_claim_fee={}, lnurl_domain={}, prefer_spark_over_lightning={}, external_input_parsers={}, use_default_external_input_parsers={})".format(self.api_key, self.network, self.sync_interval_secs, self.max_deposit_claim_fee, self.lnurl_domain, self.prefer_spark_over_lightning, self.external_input_parsers, self.use_default_external_input_parsers)
4153
4425
 
4154
4426
  def __eq__(self, other):
4155
4427
  if self.api_key != other.api_key:
@@ -4164,6 +4436,10 @@ class Config:
4164
4436
  return False
4165
4437
  if self.prefer_spark_over_lightning != other.prefer_spark_over_lightning:
4166
4438
  return False
4439
+ if self.external_input_parsers != other.external_input_parsers:
4440
+ return False
4441
+ if self.use_default_external_input_parsers != other.use_default_external_input_parsers:
4442
+ return False
4167
4443
  return True
4168
4444
 
4169
4445
  class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
@@ -4176,6 +4452,8 @@ class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
4176
4452
  max_deposit_claim_fee=_UniffiConverterOptionalTypeFee.read(buf),
4177
4453
  lnurl_domain=_UniffiConverterOptionalString.read(buf),
4178
4454
  prefer_spark_over_lightning=_UniffiConverterBool.read(buf),
4455
+ external_input_parsers=_UniffiConverterOptionalSequenceTypeExternalInputParser.read(buf),
4456
+ use_default_external_input_parsers=_UniffiConverterBool.read(buf),
4179
4457
  )
4180
4458
 
4181
4459
  @staticmethod
@@ -4186,6 +4464,8 @@ class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
4186
4464
  _UniffiConverterOptionalTypeFee.check_lower(value.max_deposit_claim_fee)
4187
4465
  _UniffiConverterOptionalString.check_lower(value.lnurl_domain)
4188
4466
  _UniffiConverterBool.check_lower(value.prefer_spark_over_lightning)
4467
+ _UniffiConverterOptionalSequenceTypeExternalInputParser.check_lower(value.external_input_parsers)
4468
+ _UniffiConverterBool.check_lower(value.use_default_external_input_parsers)
4189
4469
 
4190
4470
  @staticmethod
4191
4471
  def write(value, buf):
@@ -4195,6 +4475,8 @@ class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
4195
4475
  _UniffiConverterOptionalTypeFee.write(value.max_deposit_claim_fee, buf)
4196
4476
  _UniffiConverterOptionalString.write(value.lnurl_domain, buf)
4197
4477
  _UniffiConverterBool.write(value.prefer_spark_over_lightning, buf)
4478
+ _UniffiConverterOptionalSequenceTypeExternalInputParser.write(value.external_input_parsers, buf)
4479
+ _UniffiConverterBool.write(value.use_default_external_input_parsers, buf)
4198
4480
 
4199
4481
 
4200
4482
  class ConnectRequest:
@@ -5063,12 +5345,12 @@ class Payment:
5063
5345
 
5064
5346
  amount: "U128"
5065
5347
  """
5066
- Amount in satoshis
5348
+ Amount in satoshis or token base units
5067
5349
  """
5068
5350
 
5069
5351
  fees: "U128"
5070
5352
  """
5071
- Fee paid in satoshis
5353
+ Fee paid in satoshis or token base units
5072
5354
  """
5073
5355
 
5074
5356
  timestamp: "int"
@@ -5428,6 +5710,61 @@ class _UniffiConverterTypePrepareSendPaymentResponse(_UniffiConverterRustBuffer)
5428
5710
  _UniffiConverterOptionalString.write(value.token_identifier, buf)
5429
5711
 
5430
5712
 
5713
+ class ProvisionalPayment:
5714
+ payment_id: "str"
5715
+ """
5716
+ Unique identifier for the payment
5717
+ """
5718
+
5719
+ amount: "U128"
5720
+ """
5721
+ Amount in satoshis or token base units
5722
+ """
5723
+
5724
+ details: "ProvisionalPaymentDetails"
5725
+ """
5726
+ Details of the payment
5727
+ """
5728
+
5729
+ def __init__(self, *, payment_id: "str", amount: "U128", details: "ProvisionalPaymentDetails"):
5730
+ self.payment_id = payment_id
5731
+ self.amount = amount
5732
+ self.details = details
5733
+
5734
+ def __str__(self):
5735
+ return "ProvisionalPayment(payment_id={}, amount={}, details={})".format(self.payment_id, self.amount, self.details)
5736
+
5737
+ def __eq__(self, other):
5738
+ if self.payment_id != other.payment_id:
5739
+ return False
5740
+ if self.amount != other.amount:
5741
+ return False
5742
+ if self.details != other.details:
5743
+ return False
5744
+ return True
5745
+
5746
+ class _UniffiConverterTypeProvisionalPayment(_UniffiConverterRustBuffer):
5747
+ @staticmethod
5748
+ def read(buf):
5749
+ return ProvisionalPayment(
5750
+ payment_id=_UniffiConverterString.read(buf),
5751
+ amount=_UniffiConverterTypeU128.read(buf),
5752
+ details=_UniffiConverterTypeProvisionalPaymentDetails.read(buf),
5753
+ )
5754
+
5755
+ @staticmethod
5756
+ def check_lower(value):
5757
+ _UniffiConverterString.check_lower(value.payment_id)
5758
+ _UniffiConverterTypeU128.check_lower(value.amount)
5759
+ _UniffiConverterTypeProvisionalPaymentDetails.check_lower(value.details)
5760
+
5761
+ @staticmethod
5762
+ def write(value, buf):
5763
+ _UniffiConverterString.write(value.payment_id, buf)
5764
+ _UniffiConverterTypeU128.write(value.amount, buf)
5765
+ _UniffiConverterTypeProvisionalPaymentDetails.write(value.details, buf)
5766
+
5767
+
5431
5768
  class ReceivePaymentRequest:
5432
5769
  payment_method: "ReceivePaymentMethod"
5433
5770
  def __init__(self, *, payment_method: "ReceivePaymentMethod"):
@@ -7008,14 +7345,94 @@ class _UniffiConverterTypePaymentMethod(_UniffiConverterRustBuffer):
7008
7345
 
7009
7346
 
7010
7347
 
7348
+ # PaymentObserverError
7349
+ # We want to define each variant as a nested class that's also a subclass,
7350
+ # which is tricky in Python. To accomplish this we're going to create each
7351
+ # class separately, then manually add the child classes to the base class's
7352
+ # __dict__. All of this happens in dummy class to avoid polluting the module
7353
+ # namespace.
7354
+ class PaymentObserverError(Exception):
7355
+ pass
7011
7356
 
7357
+ _UniffiTempPaymentObserverError = PaymentObserverError
7012
7358
 
7359
+ class PaymentObserverError: # type: ignore
7360
+ class ServiceConnectivity(_UniffiTempPaymentObserverError):
7361
+ def __init__(self, *values):
7362
+ if len(values) != 1:
7363
+ raise TypeError(f"Expected 1 arguments, found {len(values)}")
7364
+ if not isinstance(values[0], str):
7365
+ raise TypeError(f"unexpected type for tuple element 0 - expected 'str', got '{type(values[0])}'")
7366
+ super().__init__(", ".join(map(repr, values)))
7367
+ self._values = values
7368
+
7369
+ def __getitem__(self, index):
7370
+ return self._values[index]
7371
+
7372
+ def __repr__(self):
7373
+ return "PaymentObserverError.ServiceConnectivity({})".format(str(self))
7374
+ _UniffiTempPaymentObserverError.ServiceConnectivity = ServiceConnectivity # type: ignore
7375
+ class Generic(_UniffiTempPaymentObserverError):
7376
+ def __init__(self, *values):
7377
+ if len(values) != 1:
7378
+ raise TypeError(f"Expected 1 arguments, found {len(values)}")
7379
+ if not isinstance(values[0], str):
7380
+ raise TypeError(f"unexpected type for tuple element 0 - expected 'str', got '{type(values[0])}'")
7381
+ super().__init__(", ".join(map(repr, values)))
7382
+ self._values = values
7383
+
7384
+ def __getitem__(self, index):
7385
+ return self._values[index]
7386
+
7387
+ def __repr__(self):
7388
+ return "PaymentObserverError.Generic({})".format(str(self))
7389
+ _UniffiTempPaymentObserverError.Generic = Generic # type: ignore
7390
+
7391
+ PaymentObserverError = _UniffiTempPaymentObserverError # type: ignore
7392
+ del _UniffiTempPaymentObserverError
7393
+
7394
+
7395
+ class _UniffiConverterTypePaymentObserverError(_UniffiConverterRustBuffer):
7396
+ @staticmethod
7397
+ def read(buf):
7398
+ variant = buf.read_i32()
7399
+ if variant == 1:
7400
+ return PaymentObserverError.ServiceConnectivity(
7401
+ _UniffiConverterString.read(buf),
7402
+ )
7403
+ if variant == 2:
7404
+ return PaymentObserverError.Generic(
7405
+ _UniffiConverterString.read(buf),
7406
+ )
7407
+ raise InternalError("Raw enum value doesn't match any cases")
7408
+
7409
+ @staticmethod
7410
+ def check_lower(value):
7411
+ if isinstance(value, PaymentObserverError.ServiceConnectivity):
7412
+ _UniffiConverterString.check_lower(value._values[0])
7413
+ return
7414
+ if isinstance(value, PaymentObserverError.Generic):
7415
+ _UniffiConverterString.check_lower(value._values[0])
7416
+ return
7417
+
7418
+ @staticmethod
7419
+ def write(value, buf):
7420
+ if isinstance(value, PaymentObserverError.ServiceConnectivity):
7421
+ buf.write_i32(1)
7422
+ _UniffiConverterString.write(value._values[0], buf)
7423
+ if isinstance(value, PaymentObserverError.Generic):
7424
+ buf.write_i32(2)
7425
+ _UniffiConverterString.write(value._values[0], buf)
7426
+
7427
+
7428
+
7429
+
7430
+
7431
+ class PaymentStatus(enum.Enum):
7432
+ """
7433
+ The status of a payment
7434
+ """
7013
7435
 
7014
- class PaymentStatus(enum.Enum):
7015
- """
7016
- The status of a payment
7017
- """
7018
-
7019
7436
  COMPLETED = 0
7020
7437
  """
7021
7438
  Payment is completed successfully
@@ -7123,6 +7540,186 @@ class _UniffiConverterTypePaymentType(_UniffiConverterRustBuffer):
7123
7540
 
7124
7541
 
7125
7542
 
7543
+ class ProvisionalPaymentDetails:
7544
+ def __init__(self):
7545
+ raise RuntimeError("ProvisionalPaymentDetails cannot be instantiated directly")
7546
+
7547
+ # Each enum variant is a nested class of the enum itself.
7548
+ class BITCOIN:
7549
+ withdrawal_address: "str"
7550
+ """
7551
+ Onchain Bitcoin address
7552
+ """
7553
+
7554
+
7555
+ def __init__(self,withdrawal_address: "str"):
7556
+ self.withdrawal_address = withdrawal_address
7557
+
7558
+ def __str__(self):
7559
+ return "ProvisionalPaymentDetails.BITCOIN(withdrawal_address={})".format(self.withdrawal_address)
7560
+
7561
+ def __eq__(self, other):
7562
+ if not other.is_bitcoin():
7563
+ return False
7564
+ if self.withdrawal_address != other.withdrawal_address:
7565
+ return False
7566
+ return True
7567
+
7568
+ class LIGHTNING:
7569
+ invoice: "str"
7570
+ """
7571
+ BOLT11 invoice
7572
+ """
7573
+
7574
+
7575
+ def __init__(self,invoice: "str"):
7576
+ self.invoice = invoice
7577
+
7578
+ def __str__(self):
7579
+ return "ProvisionalPaymentDetails.LIGHTNING(invoice={})".format(self.invoice)
7580
+
7581
+ def __eq__(self, other):
7582
+ if not other.is_lightning():
7583
+ return False
7584
+ if self.invoice != other.invoice:
7585
+ return False
7586
+ return True
7587
+
7588
+ class SPARK:
7589
+ receiver_address: "str"
7590
+ """
7591
+ Spark receiver address
7592
+ """
7593
+
7594
+
7595
+ def __init__(self,receiver_address: "str"):
7596
+ self.receiver_address = receiver_address
7597
+
7598
+ def __str__(self):
7599
+ return "ProvisionalPaymentDetails.SPARK(receiver_address={})".format(self.receiver_address)
7600
+
7601
+ def __eq__(self, other):
7602
+ if not other.is_spark():
7603
+ return False
7604
+ if self.receiver_address != other.receiver_address:
7605
+ return False
7606
+ return True
7607
+
7608
+ class TOKEN:
7609
+ token_id: "str"
7610
+ """
7611
+ Token identifier
7612
+ """
7613
+
7614
+ receiver_address: "str"
7615
+ """
7616
+ Spark receiver address
7617
+ """
7618
+
7619
+
7620
+ def __init__(self,token_id: "str", receiver_address: "str"):
7621
+ self.token_id = token_id
7622
+ self.receiver_address = receiver_address
7623
+
7624
+ def __str__(self):
7625
+ return "ProvisionalPaymentDetails.TOKEN(token_id={}, receiver_address={})".format(self.token_id, self.receiver_address)
7626
+
7627
+ def __eq__(self, other):
7628
+ if not other.is_token():
7629
+ return False
7630
+ if self.token_id != other.token_id:
7631
+ return False
7632
+ if self.receiver_address != other.receiver_address:
7633
+ return False
7634
+ return True
7635
+
7636
+
7637
+
7638
+ # For each variant, we have an `is_NAME` method for easily checking
7639
+ # whether an instance is that variant.
7640
+ def is_bitcoin(self) -> bool:
7641
+ return isinstance(self, ProvisionalPaymentDetails.BITCOIN)
7642
+ def is_lightning(self) -> bool:
7643
+ return isinstance(self, ProvisionalPaymentDetails.LIGHTNING)
7644
+ def is_spark(self) -> bool:
7645
+ return isinstance(self, ProvisionalPaymentDetails.SPARK)
7646
+ def is_token(self) -> bool:
7647
+ return isinstance(self, ProvisionalPaymentDetails.TOKEN)
7648
+
7649
+
7650
+ # Now, a little trick - we make each nested variant class be a subclass of the main
7651
+ # enum class, so that method calls and instance checks etc will work intuitively.
7652
+ # We might be able to do this a little more neatly with a metaclass, but this'll do.
7653
+ ProvisionalPaymentDetails.BITCOIN = type("ProvisionalPaymentDetails.BITCOIN", (ProvisionalPaymentDetails.BITCOIN, ProvisionalPaymentDetails,), {}) # type: ignore
7654
+ ProvisionalPaymentDetails.LIGHTNING = type("ProvisionalPaymentDetails.LIGHTNING", (ProvisionalPaymentDetails.LIGHTNING, ProvisionalPaymentDetails,), {}) # type: ignore
7655
+ ProvisionalPaymentDetails.SPARK = type("ProvisionalPaymentDetails.SPARK", (ProvisionalPaymentDetails.SPARK, ProvisionalPaymentDetails,), {}) # type: ignore
7656
+ ProvisionalPaymentDetails.TOKEN = type("ProvisionalPaymentDetails.TOKEN", (ProvisionalPaymentDetails.TOKEN, ProvisionalPaymentDetails,), {}) # type: ignore
7657
+
7658
+
7659
+
7660
+
7661
+ class _UniffiConverterTypeProvisionalPaymentDetails(_UniffiConverterRustBuffer):
7662
+ @staticmethod
7663
+ def read(buf):
7664
+ variant = buf.read_i32()
7665
+ if variant == 1:
7666
+ return ProvisionalPaymentDetails.BITCOIN(
7667
+ _UniffiConverterString.read(buf),
7668
+ )
7669
+ if variant == 2:
7670
+ return ProvisionalPaymentDetails.LIGHTNING(
7671
+ _UniffiConverterString.read(buf),
7672
+ )
7673
+ if variant == 3:
7674
+ return ProvisionalPaymentDetails.SPARK(
7675
+ _UniffiConverterString.read(buf),
7676
+ )
7677
+ if variant == 4:
7678
+ return ProvisionalPaymentDetails.TOKEN(
7679
+ _UniffiConverterString.read(buf),
7680
+ _UniffiConverterString.read(buf),
7681
+ )
7682
+ raise InternalError("Raw enum value doesn't match any cases")
7683
+
7684
+ @staticmethod
7685
+ def check_lower(value):
7686
+ if value.is_bitcoin():
7687
+ _UniffiConverterString.check_lower(value.withdrawal_address)
7688
+ return
7689
+ if value.is_lightning():
7690
+ _UniffiConverterString.check_lower(value.invoice)
7691
+ return
7692
+ if value.is_spark():
7693
+ _UniffiConverterString.check_lower(value.receiver_address)
7694
+ return
7695
+ if value.is_token():
7696
+ _UniffiConverterString.check_lower(value.token_id)
7697
+ _UniffiConverterString.check_lower(value.receiver_address)
7698
+ return
7699
+ raise ValueError(value)
7700
+
7701
+ @staticmethod
7702
+ def write(value, buf):
7703
+ if value.is_bitcoin():
7704
+ buf.write_i32(1)
7705
+ _UniffiConverterString.write(value.withdrawal_address, buf)
7706
+ if value.is_lightning():
7707
+ buf.write_i32(2)
7708
+ _UniffiConverterString.write(value.invoice, buf)
7709
+ if value.is_spark():
7710
+ buf.write_i32(3)
7711
+ _UniffiConverterString.write(value.receiver_address, buf)
7712
+ if value.is_token():
7713
+ buf.write_i32(4)
7714
+ _UniffiConverterString.write(value.token_id, buf)
7715
+ _UniffiConverterString.write(value.receiver_address, buf)
7716
+
7717
+
7718
+
7719
+
7720
+
7721
+
7722
+
7126
7723
  class ReceivePaymentMethod:
7127
7724
  def __init__(self):
7128
7725
  raise RuntimeError("ReceivePaymentMethod cannot be instantiated directly")
@@ -9004,6 +9601,33 @@ class _UniffiConverterOptionalSequenceTypePaymentType(_UniffiConverterRustBuffer
9004
9601
 
9005
9602
 
9006
9603
 
9604
+ class _UniffiConverterOptionalSequenceTypeExternalInputParser(_UniffiConverterRustBuffer):
9605
+ @classmethod
9606
+ def check_lower(cls, value):
9607
+ if value is not None:
9608
+ _UniffiConverterSequenceTypeExternalInputParser.check_lower(value)
9609
+
9610
+ @classmethod
9611
+ def write(cls, value, buf):
9612
+ if value is None:
9613
+ buf.write_u8(0)
9614
+ return
9615
+
9616
+ buf.write_u8(1)
9617
+ _UniffiConverterSequenceTypeExternalInputParser.write(value, buf)
9618
+
9619
+ @classmethod
9620
+ def read(cls, buf):
9621
+ flag = buf.read_u8()
9622
+ if flag == 0:
9623
+ return None
9624
+ elif flag == 1:
9625
+ return _UniffiConverterSequenceTypeExternalInputParser.read(buf)
9626
+ else:
9627
+ raise InternalError("Unexpected flag byte for optional type")
9628
+
9629
+
9630
+
9007
9631
  class _UniffiConverterOptionalTypeSuccessAction(_UniffiConverterRustBuffer):
9008
9632
  @classmethod
9009
9633
  def check_lower(cls, value):
@@ -9160,6 +9784,31 @@ class _UniffiConverterSequenceTypePayment(_UniffiConverterRustBuffer):
9160
9784
 
9161
9785
 
9162
9786
 
9787
+ class _UniffiConverterSequenceTypeProvisionalPayment(_UniffiConverterRustBuffer):
9788
+ @classmethod
9789
+ def check_lower(cls, value):
9790
+ for item in value:
9791
+ _UniffiConverterTypeProvisionalPayment.check_lower(item)
9792
+
9793
+ @classmethod
9794
+ def write(cls, value, buf):
9795
+ items = len(value)
9796
+ buf.write_i32(items)
9797
+ for item in value:
9798
+ _UniffiConverterTypeProvisionalPayment.write(item, buf)
9799
+
9800
+ @classmethod
9801
+ def read(cls, buf):
9802
+ count = buf.read_i32()
9803
+ if count < 0:
9804
+ raise InternalError("Unexpected negative sequence length")
9805
+
9806
+ return [
9807
+ _UniffiConverterTypeProvisionalPayment.read(buf) for i in range(count)
9808
+ ]
9809
+
9810
+
9811
+
9163
9812
  class _UniffiConverterSequenceTypeTokenMetadata(_UniffiConverterRustBuffer):
9164
9813
  @classmethod
9165
9814
  def check_lower(cls, value):
@@ -9260,6 +9909,31 @@ class _UniffiConverterSequenceTypePaymentType(_UniffiConverterRustBuffer):
9260
9909
 
9261
9910
 
9262
9911
 
9912
+ class _UniffiConverterSequenceTypeExternalInputParser(_UniffiConverterRustBuffer):
9913
+ @classmethod
9914
+ def check_lower(cls, value):
9915
+ for item in value:
9916
+ _UniffiConverterTypeExternalInputParser.check_lower(item)
9917
+
9918
+ @classmethod
9919
+ def write(cls, value, buf):
9920
+ items = len(value)
9921
+ buf.write_i32(items)
9922
+ for item in value:
9923
+ _UniffiConverterTypeExternalInputParser.write(item, buf)
9924
+
9925
+ @classmethod
9926
+ def read(cls, buf):
9927
+ count = buf.read_i32()
9928
+ if count < 0:
9929
+ raise InternalError("Unexpected negative sequence length")
9930
+
9931
+ return [
9932
+ _UniffiConverterTypeExternalInputParser.read(buf) for i in range(count)
9933
+ ]
9934
+
9935
+
9936
+
9263
9937
  class _UniffiConverterSequenceTypeFiatCurrency(_UniffiConverterRustBuffer):
9264
9938
  @classmethod
9265
9939
  def check_lower(cls, value):
@@ -9351,6 +10025,11 @@ class _UniffiConverterMapStringTypeTokenBalance(_UniffiConverterRustBuffer):
9351
10025
 
9352
10026
 
9353
10027
 
10028
+ # External type ExternalInputParser is in namespace "breez_sdk_common", crate breez_sdk_common
10029
+
10030
+
10031
+
10032
+
9354
10033
  # External type FiatCurrency is in namespace "breez_sdk_common", crate breez_sdk_common
9355
10034
 
9356
10035
 
@@ -9586,23 +10265,6 @@ def init_logging(log_dir: "typing.Optional[str]",app_logger: "typing.Optional[Lo
9586
10265
  _UniffiConverterOptionalTypeLogger.lower(app_logger),
9587
10266
  _UniffiConverterOptionalString.lower(log_filter))
9588
10267
 
9589
- async def parse(input: "str") -> "InputType":
9590
-
9591
- _UniffiConverterString.check_lower(input)
9592
-
9593
- return await _uniffi_rust_call_async(
9594
- _UniffiLib.uniffi_breez_sdk_spark_fn_func_parse(
9595
- _UniffiConverterString.lower(input)),
9596
- _UniffiLib.ffi_breez_sdk_spark_rust_future_poll_rust_buffer,
9597
- _UniffiLib.ffi_breez_sdk_spark_rust_future_complete_rust_buffer,
9598
- _UniffiLib.ffi_breez_sdk_spark_rust_future_free_rust_buffer,
9599
- # lift function
9600
- _UniffiConverterTypeInputType.lift,
9601
-
9602
- # Error FFI converter
9603
- _UniffiConverterTypeSdkError,
9604
-
9605
- )
9606
10268
 
9607
10269
  __all__ = [
9608
10270
  "InternalError",
@@ -9615,8 +10277,10 @@ __all__ = [
9615
10277
  "OnchainConfirmationSpeed",
9616
10278
  "PaymentDetails",
9617
10279
  "PaymentMethod",
10280
+ "PaymentObserverError",
9618
10281
  "PaymentStatus",
9619
10282
  "PaymentType",
10283
+ "ProvisionalPaymentDetails",
9620
10284
  "ReceivePaymentMethod",
9621
10285
  "SdkError",
9622
10286
  "SdkEvent",
@@ -9656,6 +10320,7 @@ __all__ = [
9656
10320
  "PrepareLnurlPayResponse",
9657
10321
  "PrepareSendPaymentRequest",
9658
10322
  "PrepareSendPaymentResponse",
10323
+ "ProvisionalPayment",
9659
10324
  "ReceivePaymentRequest",
9660
10325
  "ReceivePaymentResponse",
9661
10326
  "RefundDepositRequest",
@@ -9677,9 +10342,9 @@ __all__ = [
9677
10342
  "default_config",
9678
10343
  "default_storage",
9679
10344
  "init_logging",
9680
- "parse",
9681
10345
  "BitcoinChainService",
9682
10346
  "BreezSdk",
10347
+ "PaymentObserver",
9683
10348
  "SdkBuilder",
9684
10349
  "Storage",
9685
10350
  "EventListener",
@@ -1,11 +1,17 @@
1
- Metadata-Version: 2.1
2
- Name: breez-sdk-spark
3
- Version: 0.3.1
1
+ Metadata-Version: 2.4
2
+ Name: breez_sdk_spark
3
+ Version: 0.3.2
4
4
  Summary: Python language bindings for the Breez Spark SDK
5
5
  Home-page: https://github.com/breez/spark-sdk
6
6
  Author: Breez <contact@breez.technology>
7
7
  License: MIT
8
8
  Description-Content-Type: text/markdown
9
+ Dynamic: author
10
+ Dynamic: description
11
+ Dynamic: description-content-type
12
+ Dynamic: home-page
13
+ Dynamic: license
14
+ Dynamic: summary
9
15
 
10
16
  # Breez Spark SDK
11
17
  Python language bindings for the [Breez Spark SDK](https://github.com/breez/spark-sdk).
@@ -0,0 +1,9 @@
1
+ breez_sdk_spark/__init__.py,sha256=Rmo1pY5ISvxSNwDo_RBCneMCfoYDNbB_4A7VCmQmtEI,148
2
+ breez_sdk_spark/breez_sdk_common.py,sha256=r0hQvTqLVhtyIOgbKoVVxnZWRbXKHCtxr05-2VNHVcY,206194
3
+ breez_sdk_spark/breez_sdk_spark.py,sha256=xiTLyc3c2QpCDt8dBx5BoqKDpnbySZ6xPVE4oWrulDo,371609
4
+ breez_sdk_spark/breez_sdk_spark_bindings.py,sha256=ysAJqyrIhXUjJIBj856CADqim5MR38CgNEIdG1Fj4qg,32901
5
+ breez_sdk_spark/libbreez_sdk_spark_bindings.so,sha256=_wsA34SAwtNMLPy6Wcx0_Swsgk74Mle7xb9yNlQmZyY,26544000
6
+ breez_sdk_spark-0.3.2.dist-info/METADATA,sha256=CnUnVuPp8MecjP1aXGMuc54GGPxsfRAUNPbRWrEbAj0,545
7
+ breez_sdk_spark-0.3.2.dist-info/WHEEL,sha256=j1y_CpR2xctBh0u_qibDk_TjuzvGn1_DvklMXjgURzk,114
8
+ breez_sdk_spark-0.3.2.dist-info/top_level.txt,sha256=EWjZB7jCSH5bjyOrFhpRFW4Jfo8ykKdxJ7tqAOytwDU,16
9
+ breez_sdk_spark-0.3.2.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: bdist_wheel (0.45.1)
2
+ Generator: setuptools (79.0.1)
3
3
  Root-Is-Purelib: false
4
4
  Tag: cp310-cp310-manylinux_2_31_aarch64
5
5
 
@@ -1,9 +0,0 @@
1
- breez_sdk_spark/__init__.py,sha256=Rmo1pY5ISvxSNwDo_RBCneMCfoYDNbB_4A7VCmQmtEI,148
2
- breez_sdk_spark/breez_sdk_common.py,sha256=jFfgsQt5qZ7ig3J505pSJcqmGJoR_oDa1r9inY6EF4s,204248
3
- breez_sdk_spark/breez_sdk_spark.py,sha256=edKDzphNEXvdMIoFrEQjZ242l7tHLegy2poX-XveLbs,346995
4
- breez_sdk_spark/breez_sdk_spark_bindings.py,sha256=ysAJqyrIhXUjJIBj856CADqim5MR38CgNEIdG1Fj4qg,32901
5
- breez_sdk_spark/libbreez_sdk_spark_bindings.so,sha256=4VyR2wPjf8IGkHJjI073LZzC-fKpInF4dwY9cECL5Y0,26524632
6
- breez_sdk_spark-0.3.1.dist-info/METADATA,sha256=PlJcGExdyfroAwaPdP4k5ujrtdME8fIZGstg8NDVP_g,421
7
- breez_sdk_spark-0.3.1.dist-info/WHEEL,sha256=yZHU6xoDOWTQD-19gVtspk5smqEFJhp6ocgiTEPp9Q8,115
8
- breez_sdk_spark-0.3.1.dist-info/top_level.txt,sha256=EWjZB7jCSH5bjyOrFhpRFW4Jfo8ykKdxJ7tqAOytwDU,16
9
- breez_sdk_spark-0.3.1.dist-info/RECORD,,