// SPDX-License-Identifier: MIT pragma solidity 0.8.30; import {ERC20} from "@openzeppelin/contracts/token/ERC20/ERC20.sol"; /// @notice Fixed supply token with the entire initial supply sent to an explicit treasury /// @dev initialSupply is expressed in base units with 18 decimal places contract VaurnToken is ERC20 { error InvalidTreasury(); error ZeroSupply(); constructor(address treasury, uint256 initialSupply) ERC20("VAURN", "VAURN") { if (treasury == address(0)) revert InvalidTreasury(); if (initialSupply == 0) revert ZeroSupply(); _mint(treasury, initialSupply); } }