@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.

Dependencies (0)

    Dev Dependencies (7)

    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