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: