breez-sdk-spark 0.6.2__cp38-cp38-win32.whl → 0.6.5__cp38-cp38-win32.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.
@@ -479,6 +479,8 @@ def _uniffi_check_api_checksums(lib):
479
479
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
480
480
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_add_event_listener() != 37737:
481
481
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
482
+ if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_cancel_leaf_optimization() != 56996:
483
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
482
484
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_check_lightning_address_available() != 31624:
483
485
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
484
486
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_check_message() != 4385:
@@ -493,6 +495,8 @@ def _uniffi_check_api_checksums(lib):
493
495
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
494
496
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_info() != 6771:
495
497
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
498
+ if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_leaf_optimization_progress() != 38008:
499
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
496
500
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_lightning_address() != 36552:
497
501
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
498
502
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_payment() != 11540:
@@ -535,6 +539,8 @@ def _uniffi_check_api_checksums(lib):
535
539
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
536
540
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sign_message() != 57563:
537
541
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
542
+ if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_start_leaf_optimization() != 22827:
543
+ raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
538
544
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sync_wallet() != 30368:
539
545
  raise InternalError("UniFFI API checksum mismatch: try cleaning and rebuilding your project")
540
546
  if lib.uniffi_breez_sdk_spark_checksum_method_breezsdk_update_user_settings() != 1721:
@@ -937,6 +943,10 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_add_event_listener.argtypes
937
943
  ctypes.c_uint64,
938
944
  )
939
945
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_add_event_listener.restype = ctypes.c_uint64
946
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_cancel_leaf_optimization.argtypes = (
947
+ ctypes.c_void_p,
948
+ )
949
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_cancel_leaf_optimization.restype = ctypes.c_uint64
940
950
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_check_lightning_address_available.argtypes = (
941
951
  ctypes.c_void_p,
942
952
  _UniffiRustBuffer,
@@ -970,6 +980,11 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_info.argtypes = (
970
980
  _UniffiRustBuffer,
971
981
  )
972
982
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_info.restype = ctypes.c_uint64
983
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_leaf_optimization_progress.argtypes = (
984
+ ctypes.c_void_p,
985
+ ctypes.POINTER(_UniffiRustCallStatus),
986
+ )
987
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_leaf_optimization_progress.restype = _UniffiRustBuffer
973
988
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_lightning_address.argtypes = (
974
989
  ctypes.c_void_p,
975
990
  )
@@ -1070,6 +1085,11 @@ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_sign_message.argtypes = (
1070
1085
  _UniffiRustBuffer,
1071
1086
  )
1072
1087
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_sign_message.restype = ctypes.c_uint64
1088
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_start_leaf_optimization.argtypes = (
1089
+ ctypes.c_void_p,
1090
+ ctypes.POINTER(_UniffiRustCallStatus),
1091
+ )
1092
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_start_leaf_optimization.restype = None
1073
1093
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_sync_wallet.argtypes = (
1074
1094
  ctypes.c_void_p,
1075
1095
  _UniffiRustBuffer,
@@ -1733,6 +1753,9 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_bitcoinchainservice_recommende
1733
1753
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_add_event_listener.argtypes = (
1734
1754
  )
1735
1755
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_add_event_listener.restype = ctypes.c_uint16
1756
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_cancel_leaf_optimization.argtypes = (
1757
+ )
1758
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_cancel_leaf_optimization.restype = ctypes.c_uint16
1736
1759
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_check_lightning_address_available.argtypes = (
1737
1760
  )
1738
1761
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_check_lightning_address_available.restype = ctypes.c_uint16
@@ -1754,6 +1777,9 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_disconnect.restype =
1754
1777
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_info.argtypes = (
1755
1778
  )
1756
1779
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_info.restype = ctypes.c_uint16
1780
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_leaf_optimization_progress.argtypes = (
1781
+ )
1782
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_leaf_optimization_progress.restype = ctypes.c_uint16
1757
1783
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_lightning_address.argtypes = (
1758
1784
  )
1759
1785
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_get_lightning_address.restype = ctypes.c_uint16
@@ -1817,6 +1843,9 @@ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_send_payment.restype
1817
1843
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sign_message.argtypes = (
1818
1844
  )
1819
1845
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sign_message.restype = ctypes.c_uint16
1846
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_start_leaf_optimization.argtypes = (
1847
+ )
1848
+ _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_start_leaf_optimization.restype = ctypes.c_uint16
1820
1849
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sync_wallet.argtypes = (
1821
1850
  )
1822
1851
  _UniffiLib.uniffi_breez_sdk_spark_checksum_method_breezsdk_sync_wallet.restype = ctypes.c_uint16
@@ -1980,6 +2009,19 @@ _uniffi_check_contract_api_version(_UniffiLib)
1980
2009
  # Public interface members begin here.
1981
2010
 
1982
2011
 
2012
+ class _UniffiConverterUInt8(_UniffiConverterPrimitiveInt):
2013
+ CLASS_NAME = "u8"
2014
+ VALUE_MIN = 0
2015
+ VALUE_MAX = 2**8
2016
+
2017
+ @staticmethod
2018
+ def read(buf):
2019
+ return buf.read_u8()
2020
+
2021
+ @staticmethod
2022
+ def write(value, buf):
2023
+ buf.write_u8(value)
2024
+
1983
2025
  class _UniffiConverterUInt16(_UniffiConverterPrimitiveInt):
1984
2026
  CLASS_NAME = "u16"
1985
2027
  VALUE_MIN = 0
@@ -2513,6 +2555,19 @@ class BreezSdkProtocol(typing.Protocol):
2513
2555
  A unique identifier for the listener, which can be used to remove it later
2514
2556
  """
2515
2557
 
2558
+ raise NotImplementedError
2559
+ def cancel_leaf_optimization(self, ):
2560
+ """
2561
+ Cancels the ongoing leaf optimization.
2562
+
2563
+ This method cancels the ongoing optimization and waits for it to fully stop.
2564
+ The current round will complete before stopping. This method blocks
2565
+ until the optimization has fully stopped and leaves reserved for optimization
2566
+ are available again.
2567
+
2568
+ If no optimization is running, this method returns immediately.
2569
+ """
2570
+
2516
2571
  raise NotImplementedError
2517
2572
  def check_lightning_address_available(self, req: "CheckLightningAddressRequest"):
2518
2573
  raise NotImplementedError
@@ -2548,6 +2603,12 @@ class BreezSdkProtocol(typing.Protocol):
2548
2603
  Returns the balance of the wallet in satoshis
2549
2604
  """
2550
2605
 
2606
+ raise NotImplementedError
2607
+ def get_leaf_optimization_progress(self, ):
2608
+ """
2609
+ Returns the current optimization progress snapshot.
2610
+ """
2611
+
2551
2612
  raise NotImplementedError
2552
2613
  def get_lightning_address(self, ):
2553
2614
  raise NotImplementedError
@@ -2685,6 +2746,16 @@ class BreezSdkProtocol(typing.Protocol):
2685
2746
  DER format by default, or compact format if specified.
2686
2747
  """
2687
2748
 
2749
+ raise NotImplementedError
2750
+ def start_leaf_optimization(self, ):
2751
+ """
2752
+ Starts leaf optimization in the background.
2753
+
2754
+ This method spawns the optimization work in a background task and returns
2755
+ immediately. Progress is reported via events.
2756
+ If optimization is already running, no new task will be started.
2757
+ """
2758
+
2688
2759
  raise NotImplementedError
2689
2760
  def sync_wallet(self, request: "SyncWalletRequest"):
2690
2761
  """
@@ -2765,6 +2836,37 @@ class BreezSdk:
2765
2836
 
2766
2837
 
2767
2838
 
2839
+ async def cancel_leaf_optimization(self, ) -> None:
2840
+
2841
+ """
2842
+ Cancels the ongoing leaf optimization.
2843
+
2844
+ This method cancels the ongoing optimization and waits for it to fully stop.
2845
+ The current round will complete before stopping. This method blocks
2846
+ until the optimization has fully stopped and leaves reserved for optimization
2847
+ are available again.
2848
+
2849
+ If no optimization is running, this method returns immediately.
2850
+ """
2851
+
2852
+ return await _uniffi_rust_call_async(
2853
+ _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_cancel_leaf_optimization(
2854
+ self._uniffi_clone_pointer(),
2855
+ ),
2856
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_poll_void,
2857
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_complete_void,
2858
+ _UniffiLib.ffi_breez_sdk_spark_rust_future_free_void,
2859
+ # lift function
2860
+ lambda val: None,
2861
+
2862
+
2863
+ # Error FFI converter
2864
+ _UniffiConverterTypeSdkError,
2865
+
2866
+ )
2867
+
2868
+
2869
+
2768
2870
  async def check_lightning_address_available(self, req: "CheckLightningAddressRequest") -> "bool":
2769
2871
  _UniffiConverterTypeCheckLightningAddressRequest.check_lower(req)
2770
2872
 
@@ -2931,6 +3033,19 @@ _UniffiConverterTypeSdkError,
2931
3033
 
2932
3034
 
2933
3035
 
3036
+
3037
+ def get_leaf_optimization_progress(self, ) -> "OptimizationProgress":
3038
+ """
3039
+ Returns the current optimization progress snapshot.
3040
+ """
3041
+
3042
+ return _UniffiConverterTypeOptimizationProgress.lift(
3043
+ _uniffi_rust_call(_UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_leaf_optimization_progress,self._uniffi_clone_pointer(),)
3044
+ )
3045
+
3046
+
3047
+
3048
+
2934
3049
  async def get_lightning_address(self, ) -> "typing.Optional[LightningAddressInfo]":
2935
3050
  return await _uniffi_rust_call_async(
2936
3051
  _UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_get_lightning_address(
@@ -3441,6 +3556,22 @@ _UniffiConverterTypeSdkError,
3441
3556
 
3442
3557
 
3443
3558
 
3559
+
3560
+ def start_leaf_optimization(self, ) -> None:
3561
+ """
3562
+ Starts leaf optimization in the background.
3563
+
3564
+ This method spawns the optimization work in a background task and returns
3565
+ immediately. Progress is reported via events.
3566
+ If optimization is already running, no new task will be started.
3567
+ """
3568
+
3569
+ _uniffi_rust_call(_UniffiLib.uniffi_breez_sdk_spark_fn_method_breezsdk_start_leaf_optimization,self._uniffi_clone_pointer(),)
3570
+
3571
+
3572
+
3573
+
3574
+
3444
3575
  async def sync_wallet(self, request: "SyncWalletRequest") -> "SyncWalletResponse":
3445
3576
  """
3446
3577
  Synchronizes the wallet with the Spark network
@@ -7899,7 +8030,16 @@ class Config:
7899
8030
  If set to false, no changes will be made to the Spark private mode.
7900
8031
  """
7901
8032
 
7902
- def __init__(self, *, api_key: "typing.Optional[str]", network: "Network", sync_interval_secs: "int", max_deposit_claim_fee: "typing.Optional[MaxFee]", lnurl_domain: "typing.Optional[str]", prefer_spark_over_lightning: "bool", external_input_parsers: "typing.Optional[typing.List[ExternalInputParser]]", use_default_external_input_parsers: "bool", real_time_sync_server_url: "typing.Optional[str]", private_enabled_default: "bool"):
8033
+ optimization_config: "OptimizationConfig"
8034
+ """
8035
+ Configuration for leaf optimization.
8036
+
8037
+ Leaf optimization controls the denominations of leaves that are held in the wallet.
8038
+ Fewer, bigger leaves allow for more funds to be exited unilaterally.
8039
+ More leaves allow payments to be made without needing a swap, reducing payment latency.
8040
+ """
8041
+
8042
+ def __init__(self, *, api_key: "typing.Optional[str]", network: "Network", sync_interval_secs: "int", max_deposit_claim_fee: "typing.Optional[MaxFee]", lnurl_domain: "typing.Optional[str]", prefer_spark_over_lightning: "bool", external_input_parsers: "typing.Optional[typing.List[ExternalInputParser]]", use_default_external_input_parsers: "bool", real_time_sync_server_url: "typing.Optional[str]", private_enabled_default: "bool", optimization_config: "OptimizationConfig"):
7903
8043
  self.api_key = api_key
7904
8044
  self.network = network
7905
8045
  self.sync_interval_secs = sync_interval_secs
@@ -7910,9 +8050,10 @@ class Config:
7910
8050
  self.use_default_external_input_parsers = use_default_external_input_parsers
7911
8051
  self.real_time_sync_server_url = real_time_sync_server_url
7912
8052
  self.private_enabled_default = private_enabled_default
8053
+ self.optimization_config = optimization_config
7913
8054
 
7914
8055
  def __str__(self):
7915
- 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={}, real_time_sync_server_url={}, private_enabled_default={})".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, self.real_time_sync_server_url, self.private_enabled_default)
8056
+ 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={}, real_time_sync_server_url={}, private_enabled_default={}, optimization_config={})".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, self.real_time_sync_server_url, self.private_enabled_default, self.optimization_config)
7916
8057
 
7917
8058
  def __eq__(self, other):
7918
8059
  if self.api_key != other.api_key:
@@ -7935,6 +8076,8 @@ class Config:
7935
8076
  return False
7936
8077
  if self.private_enabled_default != other.private_enabled_default:
7937
8078
  return False
8079
+ if self.optimization_config != other.optimization_config:
8080
+ return False
7938
8081
  return True
7939
8082
 
7940
8083
  class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
@@ -7951,6 +8094,7 @@ class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
7951
8094
  use_default_external_input_parsers=_UniffiConverterBool.read(buf),
7952
8095
  real_time_sync_server_url=_UniffiConverterOptionalString.read(buf),
7953
8096
  private_enabled_default=_UniffiConverterBool.read(buf),
8097
+ optimization_config=_UniffiConverterTypeOptimizationConfig.read(buf),
7954
8098
  )
7955
8099
 
7956
8100
  @staticmethod
@@ -7965,6 +8109,7 @@ class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
7965
8109
  _UniffiConverterBool.check_lower(value.use_default_external_input_parsers)
7966
8110
  _UniffiConverterOptionalString.check_lower(value.real_time_sync_server_url)
7967
8111
  _UniffiConverterBool.check_lower(value.private_enabled_default)
8112
+ _UniffiConverterTypeOptimizationConfig.check_lower(value.optimization_config)
7968
8113
 
7969
8114
  @staticmethod
7970
8115
  def write(value, buf):
@@ -7978,6 +8123,7 @@ class _UniffiConverterTypeConfig(_UniffiConverterRustBuffer):
7978
8123
  _UniffiConverterBool.write(value.use_default_external_input_parsers, buf)
7979
8124
  _UniffiConverterOptionalString.write(value.real_time_sync_server_url, buf)
7980
8125
  _UniffiConverterBool.write(value.private_enabled_default, buf)
8126
+ _UniffiConverterTypeOptimizationConfig.write(value.optimization_config, buf)
7981
8127
 
7982
8128
 
7983
8129
  class ConnectRequest:
@@ -9818,6 +9964,104 @@ class _UniffiConverterTypeMintIssuerTokenRequest(_UniffiConverterRustBuffer):
9818
9964
  _UniffiConverterTypeU128.write(value.amount, buf)
9819
9965
 
9820
9966
 
9967
+ class OptimizationConfig:
9968
+ auto_enabled: "bool"
9969
+ """
9970
+ Whether automatic leaf optimization is enabled.
9971
+
9972
+ If set to true, the SDK will automatically optimize the leaf set when it changes.
9973
+ Otherwise, the manual optimization API must be used to optimize the leaf set.
9974
+
9975
+ Default value is true.
9976
+ """
9977
+
9978
+ multiplicity: "int"
9979
+ """
9980
+ The desired multiplicity for the leaf set. Acceptable values are 0-5.
9981
+
9982
+ Setting this to 0 will optimize for maximizing unilateral exit.
9983
+ Higher values will optimize for minimizing transfer swaps, with higher values
9984
+ being more aggressive.
9985
+
9986
+ Default value is 1.
9987
+ """
9988
+
9989
+ def __init__(self, *, auto_enabled: "bool", multiplicity: "int"):
9990
+ self.auto_enabled = auto_enabled
9991
+ self.multiplicity = multiplicity
9992
+
9993
+ def __str__(self):
9994
+ return "OptimizationConfig(auto_enabled={}, multiplicity={})".format(self.auto_enabled, self.multiplicity)
9995
+
9996
+ def __eq__(self, other):
9997
+ if self.auto_enabled != other.auto_enabled:
9998
+ return False
9999
+ if self.multiplicity != other.multiplicity:
10000
+ return False
10001
+ return True
10002
+
10003
+ class _UniffiConverterTypeOptimizationConfig(_UniffiConverterRustBuffer):
10004
+ @staticmethod
10005
+ def read(buf):
10006
+ return OptimizationConfig(
10007
+ auto_enabled=_UniffiConverterBool.read(buf),
10008
+ multiplicity=_UniffiConverterUInt8.read(buf),
10009
+ )
10010
+
10011
+ @staticmethod
10012
+ def check_lower(value):
10013
+ _UniffiConverterBool.check_lower(value.auto_enabled)
10014
+ _UniffiConverterUInt8.check_lower(value.multiplicity)
10015
+
10016
+ @staticmethod
10017
+ def write(value, buf):
10018
+ _UniffiConverterBool.write(value.auto_enabled, buf)
10019
+ _UniffiConverterUInt8.write(value.multiplicity, buf)
10020
+
10021
+
10022
+ class OptimizationProgress:
10023
+ is_running: "bool"
10024
+ current_round: "int"
10025
+ total_rounds: "int"
10026
+ def __init__(self, *, is_running: "bool", current_round: "int", total_rounds: "int"):
10027
+ self.is_running = is_running
10028
+ self.current_round = current_round
10029
+ self.total_rounds = total_rounds
10030
+
10031
+ def __str__(self):
10032
+ return "OptimizationProgress(is_running={}, current_round={}, total_rounds={})".format(self.is_running, self.current_round, self.total_rounds)
10033
+
10034
+ def __eq__(self, other):
10035
+ if self.is_running != other.is_running:
10036
+ return False
10037
+ if self.current_round != other.current_round:
10038
+ return False
10039
+ if self.total_rounds != other.total_rounds:
10040
+ return False
10041
+ return True
10042
+
10043
+ class _UniffiConverterTypeOptimizationProgress(_UniffiConverterRustBuffer):
10044
+ @staticmethod
10045
+ def read(buf):
10046
+ return OptimizationProgress(
10047
+ is_running=_UniffiConverterBool.read(buf),
10048
+ current_round=_UniffiConverterUInt32.read(buf),
10049
+ total_rounds=_UniffiConverterUInt32.read(buf),
10050
+ )
10051
+
10052
+ @staticmethod
10053
+ def check_lower(value):
10054
+ _UniffiConverterBool.check_lower(value.is_running)
10055
+ _UniffiConverterUInt32.check_lower(value.current_round)
10056
+ _UniffiConverterUInt32.check_lower(value.total_rounds)
10057
+
10058
+ @staticmethod
10059
+ def write(value, buf):
10060
+ _UniffiConverterBool.write(value.is_running, buf)
10061
+ _UniffiConverterUInt32.write(value.current_round, buf)
10062
+ _UniffiConverterUInt32.write(value.total_rounds, buf)
10063
+
10064
+
9821
10065
  class OutgoingChange:
9822
10066
  change: "RecordChange"
9823
10067
  parent: "typing.Optional[Record]"
@@ -13529,6 +13773,230 @@ class _UniffiConverterTypeOnchainConfirmationSpeed(_UniffiConverterRustBuffer):
13529
13773
 
13530
13774
 
13531
13775
 
13776
+ class OptimizationEvent:
13777
+ def __init__(self):
13778
+ raise RuntimeError("OptimizationEvent cannot be instantiated directly")
13779
+
13780
+ # Each enum variant is a nested class of the enum itself.
13781
+ class STARTED:
13782
+ """
13783
+ Optimization has started with the given number of rounds.
13784
+ """
13785
+
13786
+ total_rounds: "int"
13787
+
13788
+ def __init__(self,total_rounds: "int"):
13789
+ self.total_rounds = total_rounds
13790
+
13791
+ def __str__(self):
13792
+ return "OptimizationEvent.STARTED(total_rounds={})".format(self.total_rounds)
13793
+
13794
+ def __eq__(self, other):
13795
+ if not other.is_started():
13796
+ return False
13797
+ if self.total_rounds != other.total_rounds:
13798
+ return False
13799
+ return True
13800
+
13801
+ class ROUND_COMPLETED:
13802
+ """
13803
+ A round has completed.
13804
+ """
13805
+
13806
+ current_round: "int"
13807
+ total_rounds: "int"
13808
+
13809
+ def __init__(self,current_round: "int", total_rounds: "int"):
13810
+ self.current_round = current_round
13811
+ self.total_rounds = total_rounds
13812
+
13813
+ def __str__(self):
13814
+ return "OptimizationEvent.ROUND_COMPLETED(current_round={}, total_rounds={})".format(self.current_round, self.total_rounds)
13815
+
13816
+ def __eq__(self, other):
13817
+ if not other.is_round_completed():
13818
+ return False
13819
+ if self.current_round != other.current_round:
13820
+ return False
13821
+ if self.total_rounds != other.total_rounds:
13822
+ return False
13823
+ return True
13824
+
13825
+ class COMPLETED:
13826
+ """
13827
+ Optimization completed successfully.
13828
+ """
13829
+
13830
+
13831
+ def __init__(self,):
13832
+ pass
13833
+
13834
+ def __str__(self):
13835
+ return "OptimizationEvent.COMPLETED()".format()
13836
+
13837
+ def __eq__(self, other):
13838
+ if not other.is_completed():
13839
+ return False
13840
+ return True
13841
+
13842
+ class CANCELLED:
13843
+ """
13844
+ Optimization was cancelled.
13845
+ """
13846
+
13847
+
13848
+ def __init__(self,):
13849
+ pass
13850
+
13851
+ def __str__(self):
13852
+ return "OptimizationEvent.CANCELLED()".format()
13853
+
13854
+ def __eq__(self, other):
13855
+ if not other.is_cancelled():
13856
+ return False
13857
+ return True
13858
+
13859
+ class FAILED:
13860
+ """
13861
+ Optimization failed with an error.
13862
+ """
13863
+
13864
+ error: "str"
13865
+
13866
+ def __init__(self,error: "str"):
13867
+ self.error = error
13868
+
13869
+ def __str__(self):
13870
+ return "OptimizationEvent.FAILED(error={})".format(self.error)
13871
+
13872
+ def __eq__(self, other):
13873
+ if not other.is_failed():
13874
+ return False
13875
+ if self.error != other.error:
13876
+ return False
13877
+ return True
13878
+
13879
+ class SKIPPED:
13880
+ """
13881
+ Optimization was skipped because leaves are already optimal.
13882
+ """
13883
+
13884
+
13885
+ def __init__(self,):
13886
+ pass
13887
+
13888
+ def __str__(self):
13889
+ return "OptimizationEvent.SKIPPED()".format()
13890
+
13891
+ def __eq__(self, other):
13892
+ if not other.is_skipped():
13893
+ return False
13894
+ return True
13895
+
13896
+
13897
+
13898
+ # For each variant, we have an `is_NAME` method for easily checking
13899
+ # whether an instance is that variant.
13900
+ def is_started(self) -> bool:
13901
+ return isinstance(self, OptimizationEvent.STARTED)
13902
+ def is_round_completed(self) -> bool:
13903
+ return isinstance(self, OptimizationEvent.ROUND_COMPLETED)
13904
+ def is_completed(self) -> bool:
13905
+ return isinstance(self, OptimizationEvent.COMPLETED)
13906
+ def is_cancelled(self) -> bool:
13907
+ return isinstance(self, OptimizationEvent.CANCELLED)
13908
+ def is_failed(self) -> bool:
13909
+ return isinstance(self, OptimizationEvent.FAILED)
13910
+ def is_skipped(self) -> bool:
13911
+ return isinstance(self, OptimizationEvent.SKIPPED)
13912
+
13913
+
13914
+ # Now, a little trick - we make each nested variant class be a subclass of the main
13915
+ # enum class, so that method calls and instance checks etc will work intuitively.
13916
+ # We might be able to do this a little more neatly with a metaclass, but this'll do.
13917
+ OptimizationEvent.STARTED = type("OptimizationEvent.STARTED", (OptimizationEvent.STARTED, OptimizationEvent,), {}) # type: ignore
13918
+ OptimizationEvent.ROUND_COMPLETED = type("OptimizationEvent.ROUND_COMPLETED", (OptimizationEvent.ROUND_COMPLETED, OptimizationEvent,), {}) # type: ignore
13919
+ OptimizationEvent.COMPLETED = type("OptimizationEvent.COMPLETED", (OptimizationEvent.COMPLETED, OptimizationEvent,), {}) # type: ignore
13920
+ OptimizationEvent.CANCELLED = type("OptimizationEvent.CANCELLED", (OptimizationEvent.CANCELLED, OptimizationEvent,), {}) # type: ignore
13921
+ OptimizationEvent.FAILED = type("OptimizationEvent.FAILED", (OptimizationEvent.FAILED, OptimizationEvent,), {}) # type: ignore
13922
+ OptimizationEvent.SKIPPED = type("OptimizationEvent.SKIPPED", (OptimizationEvent.SKIPPED, OptimizationEvent,), {}) # type: ignore
13923
+
13924
+
13925
+
13926
+
13927
+ class _UniffiConverterTypeOptimizationEvent(_UniffiConverterRustBuffer):
13928
+ @staticmethod
13929
+ def read(buf):
13930
+ variant = buf.read_i32()
13931
+ if variant == 1:
13932
+ return OptimizationEvent.STARTED(
13933
+ _UniffiConverterUInt32.read(buf),
13934
+ )
13935
+ if variant == 2:
13936
+ return OptimizationEvent.ROUND_COMPLETED(
13937
+ _UniffiConverterUInt32.read(buf),
13938
+ _UniffiConverterUInt32.read(buf),
13939
+ )
13940
+ if variant == 3:
13941
+ return OptimizationEvent.COMPLETED(
13942
+ )
13943
+ if variant == 4:
13944
+ return OptimizationEvent.CANCELLED(
13945
+ )
13946
+ if variant == 5:
13947
+ return OptimizationEvent.FAILED(
13948
+ _UniffiConverterString.read(buf),
13949
+ )
13950
+ if variant == 6:
13951
+ return OptimizationEvent.SKIPPED(
13952
+ )
13953
+ raise InternalError("Raw enum value doesn't match any cases")
13954
+
13955
+ @staticmethod
13956
+ def check_lower(value):
13957
+ if value.is_started():
13958
+ _UniffiConverterUInt32.check_lower(value.total_rounds)
13959
+ return
13960
+ if value.is_round_completed():
13961
+ _UniffiConverterUInt32.check_lower(value.current_round)
13962
+ _UniffiConverterUInt32.check_lower(value.total_rounds)
13963
+ return
13964
+ if value.is_completed():
13965
+ return
13966
+ if value.is_cancelled():
13967
+ return
13968
+ if value.is_failed():
13969
+ _UniffiConverterString.check_lower(value.error)
13970
+ return
13971
+ if value.is_skipped():
13972
+ return
13973
+ raise ValueError(value)
13974
+
13975
+ @staticmethod
13976
+ def write(value, buf):
13977
+ if value.is_started():
13978
+ buf.write_i32(1)
13979
+ _UniffiConverterUInt32.write(value.total_rounds, buf)
13980
+ if value.is_round_completed():
13981
+ buf.write_i32(2)
13982
+ _UniffiConverterUInt32.write(value.current_round, buf)
13983
+ _UniffiConverterUInt32.write(value.total_rounds, buf)
13984
+ if value.is_completed():
13985
+ buf.write_i32(3)
13986
+ if value.is_cancelled():
13987
+ buf.write_i32(4)
13988
+ if value.is_failed():
13989
+ buf.write_i32(5)
13990
+ _UniffiConverterString.write(value.error, buf)
13991
+ if value.is_skipped():
13992
+ buf.write_i32(6)
13993
+
13994
+
13995
+
13996
+
13997
+
13998
+
13999
+
13532
14000
  class PaymentDetails:
13533
14001
  def __init__(self):
13534
14002
  raise RuntimeError("PaymentDetails cannot be instantiated directly")
@@ -14356,13 +14824,19 @@ class ReceivePaymentMethod:
14356
14824
  class BOLT11_INVOICE:
14357
14825
  description: "str"
14358
14826
  amount_sats: "typing.Optional[int]"
14827
+ expiry_secs: "typing.Optional[int]"
14828
+ """
14829
+ The expiry time of the invoice in seconds
14830
+ """
14831
+
14359
14832
 
14360
- def __init__(self,description: "str", amount_sats: "typing.Optional[int]"):
14833
+ def __init__(self,description: "str", amount_sats: "typing.Optional[int]", expiry_secs: "typing.Optional[int]"):
14361
14834
  self.description = description
14362
14835
  self.amount_sats = amount_sats
14836
+ self.expiry_secs = expiry_secs
14363
14837
 
14364
14838
  def __str__(self):
14365
- return "ReceivePaymentMethod.BOLT11_INVOICE(description={}, amount_sats={})".format(self.description, self.amount_sats)
14839
+ return "ReceivePaymentMethod.BOLT11_INVOICE(description={}, amount_sats={}, expiry_secs={})".format(self.description, self.amount_sats, self.expiry_secs)
14366
14840
 
14367
14841
  def __eq__(self, other):
14368
14842
  if not other.is_bolt11_invoice():
@@ -14371,6 +14845,8 @@ class ReceivePaymentMethod:
14371
14845
  return False
14372
14846
  if self.amount_sats != other.amount_sats:
14373
14847
  return False
14848
+ if self.expiry_secs != other.expiry_secs:
14849
+ return False
14374
14850
  return True
14375
14851
 
14376
14852
 
@@ -14420,6 +14896,7 @@ class _UniffiConverterTypeReceivePaymentMethod(_UniffiConverterRustBuffer):
14420
14896
  return ReceivePaymentMethod.BOLT11_INVOICE(
14421
14897
  _UniffiConverterString.read(buf),
14422
14898
  _UniffiConverterOptionalUInt64.read(buf),
14899
+ _UniffiConverterOptionalUInt32.read(buf),
14423
14900
  )
14424
14901
  raise InternalError("Raw enum value doesn't match any cases")
14425
14902
 
@@ -14439,6 +14916,7 @@ class _UniffiConverterTypeReceivePaymentMethod(_UniffiConverterRustBuffer):
14439
14916
  if value.is_bolt11_invoice():
14440
14917
  _UniffiConverterString.check_lower(value.description)
14441
14918
  _UniffiConverterOptionalUInt64.check_lower(value.amount_sats)
14919
+ _UniffiConverterOptionalUInt32.check_lower(value.expiry_secs)
14442
14920
  return
14443
14921
  raise ValueError(value)
14444
14922
 
@@ -14459,6 +14937,7 @@ class _UniffiConverterTypeReceivePaymentMethod(_UniffiConverterRustBuffer):
14459
14937
  buf.write_i32(4)
14460
14938
  _UniffiConverterString.write(value.description, buf)
14461
14939
  _UniffiConverterOptionalUInt64.write(value.amount_sats, buf)
14940
+ _UniffiConverterOptionalUInt32.write(value.expiry_secs, buf)
14462
14941
 
14463
14942
 
14464
14943
 
@@ -14891,6 +15370,22 @@ class SdkEvent:
14891
15370
  return False
14892
15371
  return True
14893
15372
 
15373
+ class OPTIMIZATION:
15374
+ optimization_event: "OptimizationEvent"
15375
+
15376
+ def __init__(self,optimization_event: "OptimizationEvent"):
15377
+ self.optimization_event = optimization_event
15378
+
15379
+ def __str__(self):
15380
+ return "SdkEvent.OPTIMIZATION(optimization_event={})".format(self.optimization_event)
15381
+
15382
+ def __eq__(self, other):
15383
+ if not other.is_optimization():
15384
+ return False
15385
+ if self.optimization_event != other.optimization_event:
15386
+ return False
15387
+ return True
15388
+
14894
15389
 
14895
15390
 
14896
15391
  # For each variant, we have an `is_NAME` method for easily checking
@@ -14907,6 +15402,8 @@ class SdkEvent:
14907
15402
  return isinstance(self, SdkEvent.PAYMENT_PENDING)
14908
15403
  def is_payment_failed(self) -> bool:
14909
15404
  return isinstance(self, SdkEvent.PAYMENT_FAILED)
15405
+ def is_optimization(self) -> bool:
15406
+ return isinstance(self, SdkEvent.OPTIMIZATION)
14910
15407
 
14911
15408
 
14912
15409
  # Now, a little trick - we make each nested variant class be a subclass of the main
@@ -14918,6 +15415,7 @@ SdkEvent.CLAIMED_DEPOSITS = type("SdkEvent.CLAIMED_DEPOSITS", (SdkEvent.CLAIMED_
14918
15415
  SdkEvent.PAYMENT_SUCCEEDED = type("SdkEvent.PAYMENT_SUCCEEDED", (SdkEvent.PAYMENT_SUCCEEDED, SdkEvent,), {}) # type: ignore
14919
15416
  SdkEvent.PAYMENT_PENDING = type("SdkEvent.PAYMENT_PENDING", (SdkEvent.PAYMENT_PENDING, SdkEvent,), {}) # type: ignore
14920
15417
  SdkEvent.PAYMENT_FAILED = type("SdkEvent.PAYMENT_FAILED", (SdkEvent.PAYMENT_FAILED, SdkEvent,), {}) # type: ignore
15418
+ SdkEvent.OPTIMIZATION = type("SdkEvent.OPTIMIZATION", (SdkEvent.OPTIMIZATION, SdkEvent,), {}) # type: ignore
14921
15419
 
14922
15420
 
14923
15421
 
@@ -14949,6 +15447,10 @@ class _UniffiConverterTypeSdkEvent(_UniffiConverterRustBuffer):
14949
15447
  return SdkEvent.PAYMENT_FAILED(
14950
15448
  _UniffiConverterTypePayment.read(buf),
14951
15449
  )
15450
+ if variant == 7:
15451
+ return SdkEvent.OPTIMIZATION(
15452
+ _UniffiConverterTypeOptimizationEvent.read(buf),
15453
+ )
14952
15454
  raise InternalError("Raw enum value doesn't match any cases")
14953
15455
 
14954
15456
  @staticmethod
@@ -14970,6 +15472,9 @@ class _UniffiConverterTypeSdkEvent(_UniffiConverterRustBuffer):
14970
15472
  if value.is_payment_failed():
14971
15473
  _UniffiConverterTypePayment.check_lower(value.payment)
14972
15474
  return
15475
+ if value.is_optimization():
15476
+ _UniffiConverterTypeOptimizationEvent.check_lower(value.optimization_event)
15477
+ return
14973
15478
  raise ValueError(value)
14974
15479
 
14975
15480
  @staticmethod
@@ -14991,6 +15496,9 @@ class _UniffiConverterTypeSdkEvent(_UniffiConverterRustBuffer):
14991
15496
  if value.is_payment_failed():
14992
15497
  buf.write_i32(6)
14993
15498
  _UniffiConverterTypePayment.write(value.payment, buf)
15499
+ if value.is_optimization():
15500
+ buf.write_i32(7)
15501
+ _UniffiConverterTypeOptimizationEvent.write(value.optimization_event, buf)
14994
15502
 
14995
15503
 
14996
15504
 
@@ -18267,6 +18775,7 @@ __all__ = [
18267
18775
  "MaxFee",
18268
18776
  "Network",
18269
18777
  "OnchainConfirmationSpeed",
18778
+ "OptimizationEvent",
18270
18779
  "PaymentDetails",
18271
18780
  "PaymentMethod",
18272
18781
  "PaymentObserverError",
@@ -18349,6 +18858,8 @@ __all__ = [
18349
18858
  "LogEntry",
18350
18859
  "MessageSuccessActionData",
18351
18860
  "MintIssuerTokenRequest",
18861
+ "OptimizationConfig",
18862
+ "OptimizationProgress",
18352
18863
  "OutgoingChange",
18353
18864
  "Payment",
18354
18865
  "PaymentMetadata",
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: breez_sdk_spark
3
- Version: 0.6.2
3
+ Version: 0.6.5
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>
@@ -0,0 +1,10 @@
1
+ breez_sdk_spark/__init__.py,sha256=bez0ZSxLqANgeqr66HM99gEtKZhJSCdPkP0as0Jczd8,103
2
+ breez_sdk_spark/breez_sdk_spark.py,sha256=0xB6gbsE0ieTa7BdXsamxE7oHgHKBhNWw8GOml-Gucs,690930
3
+ breez_sdk_spark/breez_sdk_spark_bindings.dll,sha256=uFBhepRohS_uqQ0RhXJ6aF7xMfmHh5pA_bpAwnRC8rY,11300352
4
+ breez_sdk_spark/breez_sdk_spark_bindings.py,sha256=ysAJqyrIhXUjJIBj856CADqim5MR38CgNEIdG1Fj4qg,32901
5
+ breez_sdk_spark/msvcp140.dll,sha256=l-caPGl_sas693fbOQCeRgJSXow6_wg37McDHLoYgWU,447616
6
+ breez_sdk_spark/vcruntime140.dll,sha256=qddzKjw94J8GAaf6JVUJPctJ8I4vxiqGCRRh8PODk-0,91216
7
+ breez_sdk_spark-0.6.5.dist-info/METADATA,sha256=Ugb0RpIoAGtO9tx-lgCFsz098Pn0n6AWNKCAuy4i2YY,438
8
+ breez_sdk_spark-0.6.5.dist-info/WHEEL,sha256=BsoMMMHJGneA25n2FDquZW143lDYOuIAMJ0po_3Su94,95
9
+ breez_sdk_spark-0.6.5.dist-info/top_level.txt,sha256=EWjZB7jCSH5bjyOrFhpRFW4Jfo8ykKdxJ7tqAOytwDU,16
10
+ breez_sdk_spark-0.6.5.dist-info/RECORD,,
@@ -1,10 +0,0 @@
1
- breez_sdk_spark/__init__.py,sha256=bez0ZSxLqANgeqr66HM99gEtKZhJSCdPkP0as0Jczd8,103
2
- breez_sdk_spark/breez_sdk_spark.py,sha256=rfYHEqoUSibVdOEHwjaIT_vtTi_X6eRoZWJmd6z9FuA,672661
3
- breez_sdk_spark/breez_sdk_spark_bindings.dll,sha256=mx6JFQjkOYWW0nGlrZcdG98SVNBrFUoYNn5pNmeSf_g,11343360
4
- breez_sdk_spark/breez_sdk_spark_bindings.py,sha256=ysAJqyrIhXUjJIBj856CADqim5MR38CgNEIdG1Fj4qg,32901
5
- breez_sdk_spark/msvcp140.dll,sha256=l-caPGl_sas693fbOQCeRgJSXow6_wg37McDHLoYgWU,447616
6
- breez_sdk_spark/vcruntime140.dll,sha256=qddzKjw94J8GAaf6JVUJPctJ8I4vxiqGCRRh8PODk-0,91216
7
- breez_sdk_spark-0.6.2.dist-info/METADATA,sha256=3H6NH-DgtuJvpfk_duH9-1CKFQMZNrFZ977lXmm5hSA,438
8
- breez_sdk_spark-0.6.2.dist-info/WHEEL,sha256=BsoMMMHJGneA25n2FDquZW143lDYOuIAMJ0po_3Su94,95
9
- breez_sdk_spark-0.6.2.dist-info/top_level.txt,sha256=EWjZB7jCSH5bjyOrFhpRFW4Jfo8ykKdxJ7tqAOytwDU,16
10
- breez_sdk_spark-0.6.2.dist-info/RECORD,,