Skip to content

Базовый смарт‑контракт токена SFA (Solidity) #2

@myltik1702

Description

@myltik1702

// SPDX-License-Identifier: MIT
pragma solidity ^0.8.20;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import "@openzeppelin/contracts/access/Ownable.sol";

/// @title Звёздный поток изобилия (Starflow of Abundance, SFA)
/// @dev Базовый ERC20-токен с ограниченной эмиссией и владельцем
contract StarflowOfAbundance is ERC20, Ownable {
uint256 public constant MAX_SUPPLY = 1_000_000_000 * 10**18; // 1 млрд токенов
uint8 private _decimals = 18;

/// @dev Конструктор: задаёт имя, символ и первоначальную эмиссию
constructor() ERC20("Starflow of Abundance", "SFA") {
    _mint(msg.sender, MAX_SUPPLY);
}

/// @dev Возвращает количество десятичных знаков
function decimals() public view override returns (uint8) {
    return _decimals;
}

/// @dev Позволяет владельцу сжечь часть токенов (только владелец)
function burn(uint256 amount) public onlyOwner {
    _burn(msg.sender, amount);
}

/// @dev Позволяет владельцу перевести токены без комиссии (только владелец)
function emergencyWithdraw(address to, uint256 amount) public onlyOwner {
    _transfer(msg.sender, to, amount);
}

}
transfer, balanceOf, approve
burnnpm install @openzeppelin/contracts

npx hardhat run scripts/deploy.js --network <имя_сети>
Pausable

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions