Skip to content

nibbstack/erc721-validator

Repository files navigation

npm version

Ethereum ERC-721 Contract Validator.

This is an open source package for NodeJS written with TypeScript. It allows for validating a contract against a series of tests to check its compliancy with the ERC-721 standard.

This package is actively maintained, well tested and already used in production environments. The source code is available on GitHub where you can also find our issue tracker.

How it works

For more information on how the validator works please check the article explaining the technique.

Installation

Run the command below to install the package.

npm install --save web3 @nibbstack/erc721-validator

This package uses promises thus you need to use Promise polyfill when promises are not supported.

Getting started

Initialize the Web3 provider.

import * as Web3 from 'web3';

const web3 = new Web3(new Web3.providers.HttpProvider('http://localhost:8545'));

Load and parse data of a particular block.

import { Validator } from 'erc721-validator';

const validator = new ERC721Validator(web3);
const contract  = '0x...';
const token     = '123';
const giver     = '0x...';

await validator.basic(test, contract);                  // => [{...},{...},{...},{...}]
await validator.token(test, contract, token);           // => [{...},{...},{...},{...}]
await validator.transfer(test, contract, token, giver); // => [{...},{...},{...},{...}]

API

ERC721Validator Class

ERC721Validator(web3)

Main class which allows for testing your contract validity.

Option Type Required Default Description
web3 Web3 Yes - Instance of a Web3 provider.

NOTICE: The ERC721Validator class extends is a RawModel class and thus exposes all related helper methods.

ERC721Validator.prototype.basic(contract): Promise(JSON)

Performes a series of basic contract tests.

Option Type Required Default Description
contract String Yes - Contract Address

ERC721Validator.prototype.token(contract, tokenId): Promise(JSON)

Performes a series of tests to validate contract token compliancy.

Option Type Required Default Description
contract String Yes - Contract Address
tokenId String Yes - Token ID

ERC721Validator.prototype.transfer(contract, tokenId, giver): Promise(JSON)

Performes a series of tests to validate contract token transfer compliancy.

Option Type Required Default Description
contract String Yes - Contract Address
tokenId String Yes - Token ID
giver String Yes - Address of giver

License (MIT)

Copyright (c) 2018 nibbstack [email protected].