plutus_mint: thread additional_signers into tx body's required_signers

On Babbage+, Plutus's TxInfo.signatories is populated only from the
tx body's required_signers field — vkey witnesses alone don't surface
in the script context. Without this, any Agora script that calls
pauthorizedBy/txSignedBy fails. Stake-bootstrap on preprod erred
because the owner pkh wasn't in signatories despite the wallet
signing the tx.

MCP layer always passes [wallet_pkh]; callers can append cosigner
pkhs for multi-sig flows.
This commit is contained in:
Sulkta 2026-05-07 10:33:55 -07:00
parent 1e20b71cc9
commit 6fa93a3c68
2 changed files with 21 additions and 0 deletions

View file

@ -1654,6 +1654,8 @@ impl WalletService {
}
};
let wallet_pkh = self.inner.payment_key.public_key_hash();
let signers = [wallet_pkh];
let core_args = CorePlutusMintArgs {
required_inputs: &required,
policy_cbor: &policy_cbor,
@ -1665,6 +1667,7 @@ impl WalletService {
dest_lovelace,
dest_extra_assets: &core_extras,
dest_inline_datum_cbor: datum_bytes.as_deref(),
additional_signers: &signers,
};
let unsigned = build_unsigned_plutus_mint(