// SPDX-License-Identifier: CC0-1.0 // Sample Solidity contract — samplefiles.com (for testing tools only; never deployed) pragma solidity ^0.8.24; contract CustomerRegistry { struct Customer { uint256 id; string name; uint256 balanceCents; } uint256 public constant VIP_THRESHOLD_CENTS = 1_000_000; address public immutable owner; Customer[] private customers; event CustomerAdded(uint256 indexed id, string name, uint256 balanceCents); error NotOwner(); modifier onlyOwner() { if (msg.sender != owner) revert NotOwner(); _; } constructor() { owner = msg.sender; } function addCustomer(string calldata name, uint256 balanceCents) external onlyOwner returns (uint256 id) { id = customers.length + 1; customers.push(Customer(id, name, balanceCents)); emit CustomerAdded(id, name, balanceCents); } function isVip(uint256 id) external view returns (bool) { return customers[id - 1].balanceCents >= VIP_THRESHOLD_CENTS; } function totalBalanceCents() external view returns (uint256 total) { for (uint256 i = 0; i < customers.length; i++) { total += customers[i].balanceCents; } } }