// SPDX-License-Identifier: MIT pragma solidity ^0.8.20; import {Script, console2} from "forge-std/Script.sol"; import {ReserveCommitmentStore} from "../../contracts/hybx-omnl/ReserveCommitmentStore.sol"; /// @notice Refresh reserve TTL and optionally bump R / evidence hashes. contract RefreshReserveAttestation is Script { function run() external { uint256 pk = vm.envUint("PRIVATE_KEY"); address storeAddr = vm.envAddress("OMNL_RESERVE_STORE_138"); bytes32 lineId = vm.envBytes32("OMNL_HEALTH_LINE_ID"); uint256 ttlDays = vm.envOr("OMNL_RESERVE_TTL_DAYS", uint256(90)); uint256 validUntil = block.timestamp + ttlDays * 1 days; ReserveCommitmentStore store = ReserveCommitmentStore(storeAddr); ReserveCommitmentStore.Commitment memory c = store.getCommitment(lineId); uint256 R = vm.envOr("OMNL_RESERVE_R", c.R); bytes32 evidence = vm.envOr("OMNL_RESERVE_EVIDENCE_HASH", c.evidenceHash); bytes32 merkle = vm.envOr("OMNL_RESERVE_MERKLE_ROOT", c.merkleRoot); vm.startBroadcast(pk); store.commitReserve(lineId, R, validUntil, evidence, merkle); vm.stopBroadcast(); console2.log("Reserve refreshed lineId", vm.toString(lineId)); console2.log("validUntil", validUntil); console2.log("R", R); } }