Docs

ERC20SignatureMintVote

The ERC20SignatureMintVote smart contract adds signature-based minting extension to the ERC20Vote base contract. It also implements the ERC20Votes contract, which provides voting and delegation functionality, along with delegation by signature. Signature minting uses EIP-712, which enables the contract admin to authorize an external party's request to mint tokens on the admin's contract. At a high level, this means you can authorize others to mint tokens on your contract, and specify what exactly will be minted by that external party.

import "@thirdweb-dev/contracts/base/ERC20SignatureMintVote.sol";
View on GitHub

Usage

Import the contract and inherit from it.

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

import "@thirdweb-dev/contracts/base/ERC20SignatureMintVote.sol";

contract MyToken is ERC20SignatureMintVote {
	  constructor(
        address _defaultAdmin,
        string memory _name,
        string memory _symbol,
        address _primarySaleRecipient
    )
        ERC20SignatureMintVote(
            _defaultAdmin,
            _name,
            _symbol,
            _primarySaleRecipient
        )
    {}
}

Detected Extensions

Once deployed, you can use the features made available by these extensions on the SDK and dashboard:

Functions to Override

The following functions have been implemented on this contract & are available to be overridden to add custom logic: