Skip to content

Commit 8a2ca3c

Browse files
committed
Use all input_addresses instead of actually selected inputs
1 parent 09d3b6f commit 8a2ca3c

File tree

1 file changed

+14
-12
lines changed

1 file changed

+14
-12
lines changed

pycardano/txbuilder.py

Lines changed: 14 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -916,6 +916,20 @@ def build(
916916
auto_ttl_offset = 10_000
917917
self.ttl = max(0, last_slot + auto_ttl_offset)
918918

919+
# Automatically set the required signers for smart transactions
920+
if (
921+
is_smart or auto_required_signers is not None
922+
) and self.required_signers is None:
923+
# Collect all signatories from explicitly defined
924+
# transaction inputs and collateral inputs, and input addresses
925+
input_addresses = [i.output.address for i in self.inputs + self.collaterals] + [Address.from_primitive(a) for a in self.input_addresses]
926+
required_signers = set(
927+
a.payment_part
928+
for a in input_addresses
929+
if isinstance(a.payment_part, VerificationKeyHash)
930+
)
931+
self.required_signers = list(required_signers)
932+
919933
selected_utxos = []
920934
selected_amount = Value()
921935
for i in self.inputs:
@@ -1047,18 +1061,6 @@ def build(
10471061

10481062
self.inputs[:] = selected_utxos[:]
10491063

1050-
# Automatically set the required signers for smart transactions
1051-
if (
1052-
is_smart or auto_required_signers is not None
1053-
) and self.required_signers is None:
1054-
# Collect all signatories from explicitly defined transaction inputs and collateral inputs
1055-
required_signers = set(
1056-
i.output.address.payment_part
1057-
for i in self.inputs + self.collaterals
1058-
if isinstance(i.output.address.payment_part, VerificationKeyHash)
1059-
)
1060-
self.required_signers = list(required_signers)
1061-
10621064
self._set_redeemer_index()
10631065

10641066
self._set_collateral_return(collateral_change_address or change_address)

0 commit comments

Comments
 (0)