Solver

Bitcoin solver.

FundSolver

class swap.providers.bitcoin.solver.FundSolver(root_xprivate_key: str, account: int = 0, change: bool = False, address: int = 0, path: Optional[str] = None)

Bitcoin Fund solver.

Parameters
  • root_xprivate_key (str) – Bitcoin sender root xprivate key.

  • account (int) – Bitcoin derivation account, defaults to 0.

  • change (bool) – Bitcoin derivation change, defaults to False.

  • address (int) – Bitcoin derivation address, defaults to 0.

  • path (str) – Bitcoin derivation path, defaults to None.

Returns

FundSolver – Bitcoin fund solver instance.

>>> from swap.providers.bitcoin.solver import FundSolver
>>> sender_root_xprivate_key = "xprv9s21ZrQH143K3XihXQBN8Uar2WBtrjSzK2oRDEGQ25pA2kKAADoQXaiiVXht163ZTrdtTXfM4GqNRE9gWQHky25BpvBQuuhNCM3SKwWTPNJ"
>>> fund_solver = FundSolver(root_xprivate_key=sender_root_xprivate_key)
<swap.providers.bitcoin.solver.FundSolver object at 0x03FCCA60>

ClaimSolver

class swap.providers.bitcoin.solver.ClaimSolver(root_xprivate_key: str, secret_key: str, bytecode: str, account: int = 0, change: bool = False, address: int = 0, path: Optional[str] = None)

Bitcoin Claim solver.

Parameters
  • root_xprivate_key (str) – Bitcoin sender root xprivate key.

  • secret_key (str) – Secret password/passphrase.

  • bytecode (str) – Bitcoin witness HTLC bytecode..

  • account (int) – Bitcoin derivation account, defaults to 0.

  • change (bool) – Bitcoin derivation change, defaults to False.

  • address (int) – Bitcoin derivation address, defaults to 0.

  • path (str) – Bitcoin derivation path, defaults to None.

Returns

ClaimSolver – Bitcoin claim solver instance.

>>> from swap.providers.bitcoin.solver import ClaimSolver
>>> recipient_root_xprivate_key = "xprv9s21ZrQH143K4Kpce43z5guPyxLrFoc2i8aQAq835Zzp4Rt7i6nZaMCnVSDyHT6MnmJJGKHMrCUqaYpGojrug1ZN5qQDdShQffmkyv5xyUR"
>>> bytecode = "63aa20821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e01588876a9140e259e08f2ec9fc99a92b6f66fdfcb3c7914fd6888ac6702e803b27576a91433ecab3d67f0e2bde43e52f41ec1ecbdc73f11f888ac68"
>>> claim_solver = ClaimSolver(wallet=recipient_root_xprivate_key, secret_key="Hello Meheret!", bytecode=bytecode)
<swap.providers.bitcoin.solver.ClaimSolver object at 0x03FCCA60>

RefundSolver

class swap.providers.bitcoin.solver.RefundSolver(root_xprivate_key: str, bytecode: str, sequence: int = 1000, account: int = 0, change: bool = False, address: int = 0, path: Optional[str] = None)

Bitcoin Refund solver.

Parameters
  • root_xprivate_key (str) – Bitcoin sender root xprivate key.

  • bytecode (str) – Bitcoin witness HTLC bytecode..

  • sequence (int) – Bitcoin witness sequence number(expiration block), defaults to 1000.

  • account (int) – Bitcoin derivation account, defaults to 0.

  • change (bool) – Bitcoin derivation change, defaults to False.

  • address (int) – Bitcoin derivation address, defaults to 0.

  • path (str) – Bitcoin derivation path, defaults to None.

Returns

RefundSolver – Bitcoin refund solver instance.

>>> from swap.providers.bitcoin.solver import RefundSolver
>>> sender_root_xprivate_key = "xprv9s21ZrQH143K3XihXQBN8Uar2WBtrjSzK2oRDEGQ25pA2kKAADoQXaiiVXht163ZTrdtTXfM4GqNRE9gWQHky25BpvBQuuhNCM3SKwWTPNJ"
>>> bytecode = "63aa20821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e01588876a9140e259e08f2ec9fc99a92b6f66fdfcb3c7914fd6888ac6702e803b27576a91433ecab3d67f0e2bde43e52f41ec1ecbdc73f11f888ac68"
>>> refund_solver = RefundSolver(root_xprivate_key=sender_root_xprivate_key, bytecode=bytecode sequence=1000)
<swap.providers.bitcoin.solver.RefundSolver object at 0x03FCCA60>