Skip to content

Ababananas/Blockchain1

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 

Repository files navigation

Blockchain1

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

import "@openzeppelin/contracts@5.0.1/token/ERC20/ERC20.sol"; import "@openzeppelin/contracts@5.0.1/token/ERC20/extensions/ERC20Burnable.sol"; import "@openzeppelin/contracts@5.0.1/token/ERC20/extensions/ERC20Pausable.sol"; import "@openzeppelin/contracts@5.0.1/access/AccessControl.sol"; import "@openzeppelin/contracts@5.0.1/token/ERC20/extensions/ERC20Permit.sol"; import "@openzeppelin/contracts@5.0.1/token/ERC20/extensions/ERC20Votes.sol"; import "@openzeppelin/contracts@5.0.1/token/ERC20/extensions/ERC20FlashMint.sol";

contract Mytoken is ERC20, ERC20Burnable, ERC20Pausable, AccessControl, ERC20Permit, ERC20Votes, ERC20FlashMint { bytes32 public constant PAUSER_ROLE = keccak256("PAUSER_ROLE"); bytes32 public constant MINTER_ROLE = keccak256("MINTER_ROLE");

constructor(address defaultAdmin, address pauser, address minter)
    ERC20("Mytoken", "Aba")
    ERC20Permit("Mytoken")
{
    _grantRole(DEFAULT_ADMIN_ROLE, defaultAdmin);
    _grantRole(PAUSER_ROLE, pauser);
    _mint(msg.sender, 2000 * 10 ** decimals());
    _grantRole(MINTER_ROLE, minter);
}

function pause() public onlyRole(PAUSER_ROLE) {
    _pause();
}

function unpause() public onlyRole(PAUSER_ROLE) {
    _unpause();
}

function mint(address to, uint256 amount) public onlyRole(MINTER_ROLE) {
    _mint(to, amount);
}

// The following functions are overrides required by Solidity.

function _update(address from, address to, uint256 value)
    internal
    override(ERC20, ERC20Pausable, ERC20Votes)
{
    super._update(from, to, value);
}

function nonces(address owner)
    public
    view
    override(ERC20Permit, Nonces)
    returns (uint256)
{
    return super.nonces(owner);
}

}

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published