@theqrl/web3-validator v0.2.1
web3-validator
This is a sub-package of web3.js.
web3-validator contains functions for validating objects.
Installation
You can install the package either using NPM or using Yarn
Using NPM
npm install web3-validatorUsing Yarn
yarn add web3-validatorGetting Started
- :writing_hand: 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 '@theqrl/web3-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 |
8 months ago
8 months ago
2 years ago
2 years ago
2 years ago