1use ed25519_dalek::SigningKey;
2use ledger_core::{compute_payload_hash, sign_payload_hash, AuditRecord, Hash32};
3
4pub fn build_signed_record(
5 device_id: impl Into<String>,
6 sequence: u64,
7 timestamp_ms: u64,
8 payload: &[u8],
9 prev_record_hash: Hash32,
10 object_ref: impl Into<String>,
11 signing_key: &SigningKey,
12) -> AuditRecord {
13 let payload_hash = compute_payload_hash(payload);
14 let signature = sign_payload_hash(signing_key, &payload_hash);
15
16 AuditRecord {
17 device_id: device_id.into(),
18 sequence,
19 timestamp_ms,
20 payload_hash,
21 signature,
22 prev_record_hash,
23 object_ref: object_ref.into(),
24 }
25}