# @zapjs/provider

> Zap Provider

Latest version **3.0.1** (published 2020-12-23) · ISC license · 0 weekly downloads

## Install

```sh
npm install @zapjs/provider
pnpm add @zapjs/provider
yarn add @zapjs/provider
bun add @zapjs/provider
```

## Health

**Score 25/100 (F)** — status: abandoned.

Positive: has types; no vulnerabilities; high quality score.

Warnings: low downloads; no esm support.

Negative: abandoned; low maintenance score.

## Facts

| | |
|---|---|
| Version | 3.0.1 |
| Published | 2020-12-23 |
| First published | 2018-07-21 |
| Weekly downloads | 0 |
| License | ISC |
| TypeScript types | bundled |
| Module format | CommonJS |
| Node | >=12.20 <=14.15 |
| Dependencies | 9 |
| Unpacked size | 29.8 KB |
| Known vulnerabilities | 0 |
| Install scripts | no |
| GitHub stars | 4 |
| Maintainers | zwalla, zaporg, propulsor, michael99man, avisaven |

## Links

- npm: https://www.npmjs.com/package/@zapjs/provider
- Repository: https://github.com/zapproject/Zap-monorepo
- Homepage: https://github.com/zapproject/Zap-monorepo#readme
- Issues: https://github.com/zapproject/Zap-monorepo/issues
- npm.io page: https://npm.io/package/@zapjs/provider

## Dependencies (9)

- [web3-utils](https://npm.io/package/web3-utils.md) ^1.3.1
- [@zapjs/curve](https://npm.io/package/@zapjs/curve.md) ^3.0.1
- [@zapjs/types](https://npm.io/package/@zapjs/types.md) ^3.0.1
- [@zapjs/arbiter](https://npm.io/package/@zapjs/arbiter.md) ^3.0.1
- [@zapjs/bondage](https://npm.io/package/@zapjs/bondage.md) ^3.0.1
- [@zapjs/dispatch](https://npm.io/package/@zapjs/dispatch.md) ^3.0.1
- [@zapjs/registry](https://npm.io/package/@zapjs/registry.md) ^3.0.1
- [@zapjs/zaptoken](https://npm.io/package/@zapjs/zaptoken.md) ^3.0.1
- [@zapjs/basecontract](https://npm.io/package/@zapjs/basecontract.md) ^3.0.1

## Recent versions

- 3.0.1 (latest) — 2020-12-23
- 3.0.0 — 2020-12-23
- 2.2.3 — 2019-06-26
- 2.2.1 — 2019-04-10
- 2.2.0 — 2019-04-04
- 2.0.25 — 2019-03-27
- 2.0.24 — 2019-01-29
- 2.0.23 — 2019-01-22
- 2.0.22 — 2019-01-17
- 2.0.21 — 2019-01-10
- 2.0.20 — 2019-01-10
- 2.0.19 — 2018-12-26
- 2.0.18 — 2018-11-08
- 2.0.17 — 2018-11-01
- 2.0.16 — 2018-09-27
- … 18 more at https://npm.io/package/@zapjs/provider/versions

## README

# @zapjs/provider

This package provides wrapper classes to onchain and offchains oracles on the Zap platform.

### Prerequisites

What things you need to install the software and how to install them

```
- Node 12.20 <=14.15
- Typescript
```

## Usage
##### Create and manage a Zap Provider
```
npm install `@zapjs/provider`
```
```
import {ZapProvider, ProviderHandler} from '@zapjs/provider';
let myZapProvider = new ZapProvider({owner:address});
```
**Create Zap Provider**
```
let myZapProvider = new zapProvider(owner)
```
**With Custom configuration**
```
let myZapProvider = new ZapProvider(owner,{networkId,networkProvider,coordinator});
```


Initiate in Registry and create Curve for an endpoint
```
await myZapProvider.initiateProvider({
    public_key:111,
    title: "testTitle",
    endpoint: "testEndpoint",
    endpoint_params : ["p1","p2"]
})

const thisConstants = []
const thisParts = []
const thisDividers = []
await myZapProvider.initiateProviderCurve({
    endpoint :"testEndpoint",
    constants : thisConstants,
    parts : thisParts,
    dividers : thisDividers
})
```

#### Get information about a provider

Get general information
```
const title = await myZapProvider.getTitle()
const pubkey = await myZapProvider.getPubkey()
TODO get next endpoint
```
Get endpoint specific information
```
const Curve = await myZapProvider.getCurve(endpoint);
const zapBound = await myZapProvider.getZapBoung(endpoint);
const zapRequired = await myZapProvider.getZapRequired({endpoint,dots});
const dots = await myZapProvider.calcDotsForZap({endpoint,zapAmount})
```
Listen to events belong to this provider
```
myZapProvider.listenSubscribes(filters,callback);
myZapProvider.listenUnsubscribes(filters,callback);
myZapProvider.listenQueries(filters,callback);
```
Respond to queries
```
await myZapProvider.respond({queryId,responseParams,dynamic}); //string, array, boolean
```



### See more Usages of each packages :
* [Subscriber](https://github.com/zapproject/Zap-monorepo/tree/master/packages/Subscriber/README.md)
* [Registry](https://github.com/zapproject/zap-monorepo/blob/master/packages/Registry/README.md)
* [Bondage](https://github.com/zapproject/Zap-monorepo/tree/master/packages/Bondage/README.md)
* [Dispatch](https://github.com/zapproject/Zap-monorepo/tree/master/packages/Dispatch/README.md)
* [Arbiter](https://github.com/zapproject/Zap-monorepo/tree/master/packages/Arbiter/README.md)
* [ZapToken](https://github.com/zapproject/Zap-monorepo/tree/master/packages/ZapToken/README.md)
* [Zapjs](https://github.com/zapproject/Zap-monorepo/tree/master/packages/ZapJs/README.md)

---
_Source: https://npm.io/package/@zapjs/provider · Machine-readable twin of the npm.io package page. Health data is recomputed on every publish._
