From d57284877c3a8d1ddd0d521048b9583641f01332 Mon Sep 17 00:00:00 2001 From: algolog <114208957+algolog@users.noreply.github.com> Date: Fri, 7 Feb 2025 16:19:27 +0000 Subject: [PATCH] Simulate: Support fix-signers simulate option --- algosdk/atomic_transaction_composer.py | 4 ++++ algosdk/v2client/models/simulate_request.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/algosdk/atomic_transaction_composer.py b/algosdk/atomic_transaction_composer.py index be5504ed..72a39b49 100644 --- a/algosdk/atomic_transaction_composer.py +++ b/algosdk/atomic_transaction_composer.py @@ -274,12 +274,14 @@ def __init__( allow_empty_signatures: Optional[bool] = None, allow_unnamed_resources: Optional[bool] = None, extra_opcode_budget: Optional[int] = None, + fix_signers: Optional[bool] = None, ) -> None: self.max_log_calls = max_log_calls self.max_log_size = max_log_size self.allow_empty_signatures = allow_empty_signatures self.allow_unnamed_resources = allow_unnamed_resources self.extra_opcode_budget = extra_opcode_budget + self.fix_signers = fix_signers @staticmethod def from_simulation_result( @@ -307,6 +309,8 @@ def from_simulation_result( eval_override.extra_opcode_budget = eval_override_dict[ "extra-opcode-budget" ] + if "fix-signers" in eval_override_dict: + eval_override.fix_signers = eval_override_dict["fix-signers"] return eval_override diff --git a/algosdk/v2client/models/simulate_request.py b/algosdk/v2client/models/simulate_request.py index 3b6b220b..68737412 100644 --- a/algosdk/v2client/models/simulate_request.py +++ b/algosdk/v2client/models/simulate_request.py @@ -60,6 +60,7 @@ class SimulateRequest: allow_unnamed_resources: bool extra_opcode_budget: int exec_trace_config: SimulateTraceConfig + fix_signers: bool round: Optional[int] def __init__( @@ -72,6 +73,7 @@ def __init__( allow_unnamed_resources: bool = False, extra_opcode_budget: int = 0, exec_trace_config: Optional[SimulateTraceConfig] = None, + fix_signers: bool = False, ) -> None: self.txn_groups = txn_groups self.round = round @@ -82,6 +84,7 @@ def __init__( self.exec_trace_config = ( exec_trace_config if exec_trace_config else SimulateTraceConfig() ) + self.fix_signers = fix_signers def dictify(self) -> Dict[str, Any]: return { @@ -94,4 +97,5 @@ def dictify(self) -> Dict[str, Any]: "allow-empty-signatures": self.allow_empty_signatures, "extra-opcode-budget": self.extra_opcode_budget, "exec-trace-config": self.exec_trace_config.dictify(), + "fix-signers": self.fix_signers, }