Solver

Bitcoin solver.

NormalSolver

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

Bitcoin Normal solver.

Parameters
  • 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.

  • strict (bool) – Strict for must be root xprivate key, default to True.

Returns

NormalSolver – Bitcoin normal solver instance.

>>> from swap.providers.bitcoin.solver import NormalSolver
>>> sender_xprivate_key = "xprv9s21ZrQH143K3XihXQBN8Uar2WBtrjSzK2oRDEGQ25pA2kKAADoQXaiiVXht163ZTrdtTXfM4GqNRE9gWQHky25BpvBQuuhNCM3SKwWTPNJ"
>>> normal_solver: NormalSolver = NormalSolver(xprivate_key=sender_xprivate_key)
<swap.providers.bitcoin.solver.NormalSolver object at 0x03FCCA60>

FundSolver

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

Bitcoin Fund solver.

Parameters
  • 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.

  • strict (bool) – Strict for must be root xprivate key, default to True.

Returns

FundSolver – Bitcoin fund solver instance.

>>> from swap.providers.bitcoin.solver import FundSolver
>>> sender_xprivate_key: str = "tprv8ZgxMBicQKsPeMHMJAc6uWGYiGqi1MVM2ybmzXL2TAoDpQe85uyDpdT7mv7Nhdu5rTCBEKLZsd9KyP2LQZJzZTvgVQvENArgU8e6DoYBiXf"
>>> fund_solver: FundSolver = FundSolver(xprivate_key=sender_xprivate_key, path="m/44'/1'/0'/0/0")
<swap.providers.bitcoin.solver.FundSolver object at 0x03FCCA60>

WithdrawSolver

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

Bitcoin Withdraw solver.

Parameters
  • xprivate_key (str) – Bitcoin recipient 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.

  • strict (bool) – Strict for must be root xprivate key, default to True.

Returns

WithdrawSolver – Bitcoin withdraw solver instance.

>>> from swap.providers.bitcoin.solver import WithdrawSolver
>>> recipient_xprivate_key: str = "tprv8ZgxMBicQKsPf949JcuVFLXPJ5m4VKe33gVX3FYVZYVHr2dChU8K66aEQcPdHpUgACq5GQu81Z4e3QN1vxCrV4pxcUcXHoRTamXBRaPdJhW"
>>> bytecode: str = "63aa20821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e01588876a9140e259e08f2ec9fc99a92b6f66fdfcb3c7914fd6888ac6702e803b27576a91433ecab3d67f0e2bde43e52f41ec1ecbdc73f11f888ac68"
>>> withdraw_solver: WithdrawSolver = WithdrawSolver(xprivate_key=recipient_xprivate_key, secret_key="Hello Meheret!", bytecode=bytecode, path="m/44'/1'/0'/0/0")
<swap.providers.bitcoin.solver.WithdrawSolver object at 0x03FCCA60>

RefundSolver

class swap.providers.bitcoin.solver.RefundSolver(xprivate_key: str, bytecode: str, endtime: int, account: int = 0, change: bool = False, address: int = 0, path: Optional[str] = None, strict: bool = True)

Bitcoin Refund solver.

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

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

  • endtime (int) – Bitcoin witness expiration block timestamp.

  • 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.

  • strict (bool) – Strict for must be root xprivate key, default to True.

Returns

RefundSolver – Bitcoin refund solver instance.

>>> from swap.providers.bitcoin.solver import RefundSolver
>>> sender_xprivate_key: str = "tprv8ZgxMBicQKsPeMHMJAc6uWGYiGqi1MVM2ybmzXL2TAoDpQe85uyDpdT7mv7Nhdu5rTCBEKLZsd9KyP2LQZJzZTvgVQvENArgU8e6DoYBiXf"
>>> bytecode: str = "63aa20821124b554d13f247b1e5d10b84e44fb1296f18f38bbaa1bea34a12c843e01588876a9140e259e08f2ec9fc99a92b6f66fdfcb3c7914fd6888ac6702e803b27576a91433ecab3d67f0e2bde43e52f41ec1ecbdc73f11f888ac68"
>>> refund_solver: RefundSolver = RefundSolver(xprivate_key=sender_xprivate_key, bytecode=bytecode, endtime=1000, path="m/44'/1'/0'/0/0")
<swap.providers.bitcoin.solver.RefundSolver object at 0x03FCCA60>