// contract AccessControl {
mapping(address => uint256) public expiration;
function grantAccess(address user, uint256 duration) public {
require(balanceOf(user) >= threshold, "Insufficient balance");
expiration[user] = block.timestamp + duration;
}
function hasAccess(address user) public view returns (bool) {
return block.timestamp < expiration[user];
}
}
// function payAndBurn(uint256 amount) public {
require(balanceOf(msg.sender) >= amount, "Insufficient funds");
burnTokens(amount);
distributeToNodes(amount / 2);
}