npm

@web3-set-theory/schema
TypeScript icon, indicating that this package has built-in type declarations

0.1.0-beta.1 • Public • Published

Sets Schema

The @metameta/metasets-schema package includes a JSON schema for V1 sets, and TypeScript utilities for working with sets.

💾 Installation

npm install @web3-set-theory/schema
yarn add @web3-set-theory/schema
git clone https://github.com/web3-set-theory/schema

💻 Developer Experience

The module is built using TSDX zero-config CLI which includes:

  • Typescript
  • Rollup
  • Jest
  • Prettier
  • ESLint

Validating Sets

JSON Schema $id

The JSON schema ID is https://metametaprotocol.com/set.smartcontract.schema.json

Validating Sets

This package does not include code for token list validation. You can easily do this by including a library such as ajv to perform the validation against the JSON schema. The schema is exported from the package for ease of use.

import Ajv from 'ajv';
import { smartcontract } from '@metameta-protocol/metasets-schema'

const ajv = new Ajv({ allErrors: true });
const validate = ajv.compile(smartcontract);

const response = await fetch('https://metameta.com/guide/defi-kickstart.json')
const listData = await response.json()

const valid = validate(listData)

if (!valid) {
  // oh no!
}

Creating Sets

Manual

The best way to manually author token lists is to use an editor that supports JSON schema validation. Most popular code editors do, such as IntelliJ or VSCode. Other editors can be found here.

In order for your set to be able to be used, it must pass all JSON schema validation specific to that type.

Semantic versioning

Sets include a version field, which follows semantic versioning.

Each set will have specific rules defining versioning but generally a good rule of thumb is...

  • Increment major version when an Entity is removed
  • Increment minor version when an Entity is added
  • Increment patch version when an Entity already on the list have minor details changed that don't effect the set outcome.

Readme

Keywords

none

Package Sidebar

Install

npm i @web3-set-theory/schema

Weekly Downloads

0

Version

0.1.0-beta.1

License

GPL-3.0-only

Unpacked Size

135 kB

Total Files

46

Last publish

Collaborators

  • sudokames
  • kamesdev