Skip to content

Commit db2b672

Browse files
committed
Add poll_interval parameter to ContractManager
1 parent 6e087a8 commit db2b672

File tree

2 files changed

+7
-5
lines changed

2 files changed

+7
-5
lines changed

matt/__init__.py

+5-3
Original file line numberDiff line numberDiff line change
@@ -305,10 +305,11 @@ def __repr__(self):
305305

306306

307307
class ContractManager:
308-
def __init__(self, contract_instances: list[ContractInstance], rpc: AuthServiceProxy, *, mine_automatically=False):
308+
def __init__(self, contract_instances: list[ContractInstance], rpc: AuthServiceProxy, *, poll_interval: float = 1, mine_automatically: bool = False):
309309
self.instances = contract_instances
310310
self.mine_automatically = mine_automatically
311311
self.rpc = rpc
312+
self.poll_interval = poll_interval
312313

313314
def _check_instance(self, instance: ContractInstance, exp_statuses: None | ContractInstanceStatus | list[ContractInstanceStatus] = None):
314315
if exp_statuses is not None:
@@ -337,7 +338,7 @@ def wait_for_outpoint(self, instance: ContractInstance, txid: str | None = None)
337338
if self.mine_automatically:
338339
self._mine_blocks(1)
339340

340-
instance.outpoint, instance.last_height = wait_for_output(self.rpc, scriptPubKey, txid=txid)
341+
instance.outpoint, instance.last_height = wait_for_output(self.rpc, scriptPubKey, txid=txid, poll_interval=self.poll_interval)
341342

342343
funding_tx_raw = self.rpc.getrawtransaction(instance.outpoint.hash.to_bytes(32, byteorder="big").hex())
343344
funding_tx = CTransaction()
@@ -486,7 +487,8 @@ def wait_for_spend(self, instances: ContractInstance | list[ContractInstance]) -
486487
tx, vin, instance.last_height = wait_for_spending_tx(
487488
self.rpc,
488489
instance.outpoint,
489-
starting_height=instance.last_height
490+
starting_height=instance.last_height,
491+
poll_interval = self.poll_interval
490492
)
491493
tx.rehash()
492494

matt/utils.py

+2-2
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ def encode_wit_element(x: bytes | int) -> bytes:
3434
def wait_for_output(
3535
rpc_connection: AuthServiceProxy,
3636
script_pub_key: bytes,
37-
poll_interval=1,
37+
poll_interval: float = 1,
3838
starting_height: Optional[int] = None,
3939
txid: Optional[str] = None,
4040
min_amount: Optional[int] = None
@@ -78,7 +78,7 @@ def wait_for_output(
7878
time.sleep(poll_interval)
7979

8080

81-
def wait_for_spending_tx(rpc_connection: AuthServiceProxy, outpoint: COutPoint, poll_interval=1, starting_height: Optional[int] = None) -> Tuple[CTransaction, int, int]:
81+
def wait_for_spending_tx(rpc_connection: AuthServiceProxy, outpoint: COutPoint, poll_interval: float = 1, starting_height: Optional[int] = None) -> Tuple[CTransaction, int, int]:
8282
# Initialize the last block height using the provided starting_height or the current block height
8383
last_block_height = max(starting_height - 1, 0) if starting_height is not None else rpc_connection.getblockcount()
8484

0 commit comments

Comments
 (0)