@soliditylabs/erc721-permit

1.0.0 • Public • Published

ERC721-permit

Package for implementing the ERC721 permit (EIP-4494). Unaudited, use at own risk.

Installation

  1. Install the package via NPM:
$ npm install @soliditylabs/erc721-permit --save-dev

Or Yarn:

$ yarn add @soliditylabs/erc721-permit --dev
  1. Import it into your ERC-721 contract:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

import { ERC721, ERC721Permit } from "@soliditylabs/erc20-permit/contracts/ERC20Permit.sol";

contract NFTMock is ERC721Permit("Mock721", "MOCK") {
  uint256 private _lastTokenId;

  function mint() public {
    _mint(msg.sender, ++_lastTokenId);
  }

  function safeTransferFromWithPermit(
    address from,
    address to,
    uint256 tokenId,
    bytes memory _data,
    uint256 deadline,
    bytes memory signature
  ) external {
    _permit(msg.sender, tokenId, deadline, signature);
    safeTransferFrom(from, to, tokenId, _data);
  }
}

Running tests

  1. Clone the repository
$ git clone https://github.com/soliditylabs/ERC721-Permit
  1. Install the dependencies
$ cd ERC721-Permit
$ npm install
  1. Run Hardhat Node
$ npx hardhat node
  1. Run tests
$ npm test

Package Sidebar

Install

npm i @soliditylabs/erc721-permit

Weekly Downloads

0

Version

1.0.0

License

MIT

Unpacked Size

19 MB

Total Files

72

Last publish

Collaborators

  • markuswaas