web3-extended-validator
![NPM Package][npm-image] ![Downloads][downloads-image]
This is a sub-package of web3.js.
web3-extended-validator
contains functions for validating objects.
Installation
You can install the package either using NPM or using Yarn
Using NPM
npm install web3-extended-validator
Using Yarn
yarn add web3-extended-validator
Getting Started
- ✍️ If you have questions submit an issue or join us on Discord
Usage
You can use the the validator by importing as and using to validate;
import { validator } from 'web3-extended-validator';
// To validate and throw
validator.validate(['uint8', 'string'], [val1, val2]);
// To validate and return error
const errors = validator.validate(['uint8', 'string'], [val1, val2], { silent: true });
To see more examples of schema you can use to validate check following file.
Following eth types are supported to validate.
Type | Input As | Description |
---|---|---|
uint |
number , string , HexString
|
Unsigned integer, all ethereum compatible variants are also supported e.g. uint8 , uint256 . You can also use array specifiers as uint[] or uint[2]
|
int |
number , string , HexString
|
Signed integer, all ethereum compatible variants are also supported e.g. int8 , int256 . You can also use array specifiers as int[] or int[2]
|
bytes |
HexString , Uint8Array
|
Raw bytes. You can also use fixed length bytes as bytes[2]
|
| string | string
| String values |
| address | string
, HexString
| Ethereum network compatible address |
| bloom | string
, HexString
| Check if a given string is a Eth bloom |
| tuple | array
| You can specify any tuple as nested arrays. e.g. ['uint', 'string']
. For a custom tuple or array tuple you can use syntax e.g. ['tuple[3]', ['uint', 'string']]
|
For the ethereum compatible data values should be passed as arrays e.g. for schema ['uint', 'string']
value should be passed as [2, 'my-string']
.
You can also pass full ABI schema for the validation. e.g.
[{ "name": "owner", "type": "address" }]
The implementation of the validator is extension of JSON-Schema-Draft07 with a custom keyword eth
. So you can use JSON-Schema compatible schema to validate any object based data as well.
Prerequisites
Package.json Scripts
Script | Description |
---|---|
clean | Uses rimraf to remove dist/
|
build | Uses tsc to build package and dependent packages |
lint | Uses eslint to lint package |
lint:fix | Uses eslint to check and fix any warnings |
format | Uses prettier to format the code |
test | Uses jest to run unit tests |
test:integration | Uses jest to run tests under /test/integration
|
test:unit | Uses jest to run tests under /test/unit
|