0.8.0 • Published 2 years ago

@interep/api v0.8.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Interep provides HTTP endpoints to interact with the reputation service. This library allows you to use those APIs with a simple JavaScript library.


🛠 Install

NPM or Yarn

Install the @interep/api package with npm:

npm i @interep/api --save

or yarn:

yarn add @interep/api

CDN

You can also load it using a script tag using unpkg:

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>
<script src="https://unpkg.com/@interep/api/"></script>

or JSDelivr:

<script src="https://cdn.jsdelivr.net/npm/axios/dist/axios.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/@interep/api/"></script>

📜 Usage

# new API(network: Network): API

import { API } from "@interep/api"

const api = new API()
const goerliApi = new API("goerli")
const kovanApi = new API("kovan")
const localApi = new API("local")

console.log(api.url) // "https://app.interep.link/api/v1"
console.log(goerliApi.url) // "https://goerli.interep.link/api/v1"
console.log(kovanApi.url) // "https://kovan.interep.link/api/v1"
console.log(localApi.url) // "http://localhost:3000/api/v1"

# api.getProviders(): Promise<string[]>

const providers = await api.getProviders()

API: api/v1/providers

# api.getGroups(): Promise<any[]>

const groups = await api.getGroups()

API: api/v1/groups

# api.getGroup(parameters: GetGroupRequest): Promise<any>

const group = await api.getGroup({
    provider: "twitter",
    name: "gold"
})

API: /api/v1/groups/:provider/:name

# api.getGroupMembers(parameters: GetGroupMembersRequest): Promise<string[]>

const members = await api.getGroupMembers({
    provider: "twitter",
    name: "gold",
    limit: 1,
    offset: 1
})

API: /api/v1/groups/:provider/:name/members

# api.hasMember(parameters: HasMemberRequest): Promise<boolean>

// For any provider group.
const hasMember = await api.hasMember({
    provider: "twitter",
    member: "1231231..."
})

API: /api/v1/providers/:provider/:member

// For specific group.
const hasMember = await api.hasMember({
    provider: "twitter",
    name: "gold",
    member: "1231231..."
})

API (method: get): /api/v1/groups/:provider/:name/:member

# api.addMember(parameters: AddMemberRequest): Promise<boolean>

// For Web2 providers.
await api.addMember({
    provider: "twitter",
    name: "gold",
    member: "1231231...",
    authenticationHeader: "token <OAuth-token>"
})
// For Web3 providers.
await api.addMember({
    provider: "poap",
    name: "devcon4",
    member: "1231231...",
    userAddress: "0xueaoueao",
    userSignature: "aueouaoe"
})

API (method: post): /api/v1/groups/:provider/:name/:member

# api.getMerkleTreeProof(parameters: GetMerkleTreeProofRequest): Promise<any>

const proof = await api.getMerkleTreeProof({
    provider: "twitter",
    name: "gold",
    member: "1231231..."
})

API: /api/v1/groups/:provider/:name/:member/proof

# api.getMerkleTreeLeaves(parameters: GetMerkleTreeLeavesRequest): Promise<string[]>

const leaves = await api.getMerkleTreeLeaves({
    root: "1212121...",
    limit: 10
})

API: /api/v1/trees/:root

# api.hasMerkleTreeLeaf(parameters: HasMerkleTreeLeafRequest): Promise<boolean>

const hasMerkleTreeLeaf = await api.hasMerkleTreeLeaf({
    root: "1212121...",
    leaf: "2122131..."
})

API: /api/v1/trees/:root/:leaf

# api.getMerkleTreeRootBatches(): Promise<any[]>

const rootBatches = await api.getMerkleTreeRootBatches()

API: /api/v1/batches

# api.getMerkleTreeRootBatch(parameters: GetMerkleTreeRootBatchRequest): Promise<any>

const rootBatch = await api.getMerkleTreeRootBatch({
    root: "1212121..."
})

API: /api/v1/batches/:root

0.8.0

2 years ago

0.7.0

3 years ago

0.5.0

3 years ago

0.6.1

3 years ago

0.6.0

3 years ago

0.3.0

3 years ago

0.2.0

3 years ago

0.4.1

3 years ago

0.4.0

3 years ago

0.1.0

3 years ago