Giter Club home page Giter Club logo

zap-nodejs's Introduction

Table of Contents

BaseContract

Parent Class to Dispatch, Bondage, Arbiter, Token, Registry class Provide access to contract instance and web3 provider instance

Parameters

  • artifactsDir (string | null)
  • artifactName string
  • networkId (number | null)
  • networkProvider (any | null) : Ethereum network provider

getContractOwner

Get Contract owner address

Returns Promise<string> owner's address of this contract instance

Returns Promise<string> owner's address of this contract instance

ZapArbiter

Extends BaseContract

Provides interface to Arbiter contract for managing subscriptions activities

Parameters

  • _a
  • artifactsDir string
  • networkId string
  • networkProvider : Ethereum network provider

initiateSubscription

Start subscription with a provider's endpoint

Parameters

  • _a
  • provider address
  • endpoint string
  • endpoint_params Array<string>
  • blocks number that subscription will last
  • provider number 's public key
  • from address : subscriber
  • gas number (optional)

Returns Promise<txid> txid of init transaction

getSubscription

Parameters

  • _a
  • provider address
  • subscriber address
  • endpoint string

Returns Promise<string> Subscription Information

endSubscriptionSubscriber

Parameters

  • _a
  • provider address
  • endpoint string
  • from address : subscriber
  • gas number

Returns Promise<txid> unsubscribe txid

endSubscriptionProvider

Parameters

  • _a
  • subscriber address
  • endpoint string
  • from address : provider
  • gas number

Returns Promise<txid>

listenSubscriptionEnd

Parameters

  • filters Filter object
  • callback Function

listenSubscriptionStart

Parameters

listen

Parameters

getArtifacts

Get Artifacts in this package

Returns any Artifacts

ZapBondage

Extends BaseContract

Manage bondage activities

Parameters

  • artifactsDir any
  • artifactName any
  • networkId any
  • networkProvider any

bond

Bond number of Zap Token from a subscriber to a provider's endpoint, this requires approved Zap Token from subscriber to Bondage contract

Parameters

  • _a
  • provider address
  • endpoint string
  • zapNum number : number of Zap Token to bond
  • from address : subscriber
  • gas number

Returns Promise<txid>

unbond

Unbond number of dots from a subscriber to a provider's endpoint

Parameters

Returns Promise<txid>

getBoundDots

Get number of dots that are bounded to a provider's endpoint for a subscriber

Parameters

  • _a
  • subscriber address
  • provider address
  • endpoint string

Returns Promise<number> : number of bound dots

calcZapForDots

Calculate Zap required to bond number of dots to a provider's endpoint

Parameters

  • _a
  • provider address
  • endpoint string
  • dots number : number of dots that subscriber wants to use

Returns Promise<number> : number of Zap required to bond to use inquired dots

calcBondRate

Calculate Bond's rate for a provider's endpoint

Parameters

  • _a
  • provider address
  • endpoint string
  • inquired number zapNum to see how many dots can subscriber get

Returns Promise<number> : number of dots that can be used with inquired Zap Tokens

currentCostOfDot

Get Zap Token cost of next inquired dots

Parameters

  • _a
  • provider address
  • endpoint string
  • dots number : dots that subscriber want to use

Returns Promise<number> : Price of inquired dots

getDotsIssued

Get the amount of dots that have been issued for a provider's endpoint

Parameters

  • _a
  • provider address
  • endpoint string

Returns Promise<number> : number of issued dots

getZapBound

Get amount of Zap tokens that are bound to a provider's endpoint

Parameters

  • _a
  • provider address
  • endpoint string

Returns Promise<number> number of bound Zap tokens

listen

Listen to all Bondage contract's events with optional filters

Parameters

listenBound

Listen to Bonding events

Parameters

listenUnbound

Listen to Unbonding events

Parameters

listenEscrowed

Listen to Escrow events

Parameters

listenReleased

Listen to Release Bound Zap Tokens events

Parameters

Curve

structurize

Turn constants, parts, dividers into curve's coef, power, fn, pieces

getPrice

Get the price of a dot at a given totalBound

Parameters

Returns number

convertToBNArrays

Convert this curve constants, parts, dividers into Array of Bignumbers

Returns Array<Array<BigNumber>>

ZapDispatch

Extends BaseContract

Provides interface to Dispatch contract

Parameters

  • artifactsDir string
  • networkId number
  • networkProvider : Ethereum provider instance

queryData

Subscriber query data to a provider's endpoint

Parameters

Returns Promise<txid> txid of query transaction

respond

Provider responds to a query it received

Parameters

  • _a
  • queryId string
  • responseParams Array<string>
  • dynamic boolean number of responses string
  • from address : provider
  • gas BigNumber

Returns Promise<txid> txid of respond method

listen

Listen for all events with filters

Parameters

listenIncoming

Listen to Query Incoming events with filters

Parameters

listenFulfillQuery

Listen to FUlFill Query when providers respond

Parameters

listenOffchainResponse

Listen to Offchain responses from providers

Parameters

ZapProvider

initiateProvider

Call ZapRegistry to create a new provider in Registry contract

Parameters

Returns Promise<txid>

initiateProviderCurve

Initiate Curve for an endpoint

Parameters

Returns Promise<txid>

getTitle

Get title of this provider from Registry contract

Returns Promise<string>

getPubkey

Get public key of this provider from Registry contract

Returns Promise<string>

getCurve

Get Curve of an owned endpoint

Parameters

Returns Promise<CurveType>

getZapBound

Get amount Zap bound to an owned endpoint

Parameters

Returns Promise<number> number of Zap Token bound

getZapRequired

Parameters

  • _a
  • endpoint
  • dots

Returns Promise<number>

calcDotsForZap

Calculate number of dots that subscriber can use for inquired number of Zap Tokens

Parameters

Returns Promise<number> number of dots subscriber can get

listenSubscribes

listen to new subscription events to this provider, managed by Arbiter contract

Parameters

Returns Promise<void>

listenUnsubscribes

Listen to unsubscription events to this provider, managed by Arbiter contract

Parameters

  • _a
  • subscriber string
  • terminator string : address that call unsubscribe, this can be subscriber or provider
  • fromBlock number

Returns Promise<void>

listenQueries

Listen to Queries events, managed by Dispatch contract

Parameters

Returns Promise<void>

respond

Respond to a query

Parameters

Returns Promise<any>

ZapRegistry

Extends BaseContract

Manage Providers and Curves registration

Parameters

  • artifactsDir any
  • networkId any
  • networkProvider any

initiateProvider

Add a brand new provider in Registry contract, distinguished by provider's address

Parameters

  • _a
  • provider string 's public_key
  • provider string 's title
  • endpoint string
  • endpoint_params Array<string>
  • from address : provider's address
  • gas BigNumber

Returns Promise<txid>

initiateProviderCurve

Set Curve for a provider's endpoint Curve can only be set once per endpoint

Parameters

  • _a
  • endpoint string
  • curve CurveType
  • from address : provider
  • gas BigNumber

Returns Promise<txid>

setEndpointParams

Provider can set endpoint params for owned endpoint

Parameters

  • _a
  • endpoint string
  • endpoint_params Array<string>
  • from address : provider
  • gas BigNumber

Returns Promise<txid>

getProviderPublicKey

Get a provider's public key from Registry contract

Parameters

  • provider address

Returns Promise<number>

getProviderTitle

Get a provider's title from Registry contract

Parameters

  • provider address

Returns Promise<string>

getProviderCurve

Get a provider's endpoint's curve from Registry contract

Parameters

Returns Promise<CurveType>

getNextProvider

Get provider in index +1 in Registry contract

Parameters

  • index of next provider

Returns Promise<any>

getNextEndpointParams

Get endpoint params at index of a provider's endpoint

Parameters

Returns Promise<string> endpoint's param at index

listen

Listen to all Registry contract events with filters

Parameters

Returns Promise<void>

listenNewProvider

Listen to Registry contracts events for new providers

Parameters

  • filters Filter
  • callback Promise<void>

listenNewCurve

Listen to Registry contract's events for new providers' curve

Parameters

  • provider address
  • callback Promise<void>

Subscriber

bond

Parameters

Returns Promise<any>

unBond

Parameters

Returns Promise<any>

subscribe

Parameters

Returns Promise<any>

hasEnoughZap

Parameters

Returns Promise<boolean>

ZapToken

Extends BaseContract

ERC20 Tokens methods for Zap Tokens

Parameters

balanceOf

Get Zap Token balance of address

Parameters

  • address address

Returns Promise<number> Zap balance

send

Transfer Zap Token

Parameters

Returns Promise<txid>

allocate

Allocate Zap Token from Zap contract owner to an address

Parameters

Returns Promise<txid>

approve

Approve Zap Token to an address

Parameters

Returns Promise<txid>

zap-nodejs's People

Contributors

propulsor avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.