INNER CODE UNIT · Python
_stdin_for
WMAL/kodachios · Kodachi-OS-10-stable/open/dock/lib/kodachi_direct.py:645
def _stdin_for(binding, stdin_values):
names = binding["stdinParameters"]
if not names:
if stdin_values not in (None, b"", ""):
raise DirectContractError("stdin was supplied to an operation that forbids it")
return None
if isinstance(stdin_values, bytearray):
if len(stdin_values) > 65536:
raise DirectContractError("confidential stdin exceeds 65536 bytes")
return stdin_values
if not isinstance(stdin_values, dict):
raise DirectContractError(
"required stdin must have one mutable bytearray owner")
missing = [name for name in names
if not isinstance(stdin_values.get(name), bytearray)]
if missing:
raise DirectContractError("required stdin value(s) are absent: " + ", ".join(missing))
payload = bytearray()