mini-fair-repo/inc/plc/class-signedoperation.php
Ryan McCue a3a5a85baa Initial export of the repository
Signed-off-by: Ryan McCue <me@ryanmccue.info>
2025-06-05 12:06:13 +02:00

40 lines
741 B
PHP

<?php
namespace MiniFAIR\PLC;
use Exception;
use JsonSerializable;
class SignedOperation extends Operation implements JsonSerializable {
public readonly string $sig;
public function __construct(
Operation $operation,
string $sig,
) {
parent::__construct(
$operation->type,
$operation->rotationKeys,
$operation->verificationMethods,
$operation->alsoKnownAs,
$operation->services,
$operation->prev,
);
$this->sig = $sig;
}
public function validate() : bool {
if ( empty( $this->sig ) ) {
throw new Exception( 'Signature is empty' );
}
return parent::validate();
}
public function jsonSerialize() : array {
$data = parent::jsonSerialize();
$data['sig'] = $this->sig;
return $data;
}
}