PredIQt.JS (front-end library)

PredIQt JavaScript/TypeScript Client Library

General purpose library for the PredIQt

Installation

Using yarn:
yarn add @everipedia/prediqt-js
or using npm:
npm install --save @everipedia/prediqt-js

Quick Start

API initialization
Frontend usage
import { Prediqt } from "@everipedia/prediqt-js"
​
const nodeEndpoint = "https://api.kylin.alohaeos.com"; // you can use any other node endpoint
​
const client = new Prediqt(
{ createApi: { signatureProvider, nodeEndpoint }}, // create signatureProvider with eosjs or based on it libs
auth, // (optional) Array with authorization objects, you can set it later with setAuth method
contracts // (optional) Object that takes prediqt, prediqtMarket, iqToken, prediqtBank contracts' names
);
​
// or you can pass created api
​
import { Api, JsonRpc } from "eosjs";
​
const rpc = new JsonRpc(nodeEndpoint);
const api = new Api({ rpc, signatureProvider }); // create rpc and signatureProvider with eosjs or based on it libs
​
const client = new Prediqt(
{ customApi: api },
... // the same parameters
);
Server usage
...
​
// or you can pass created api
​
const { Prediqt } = require("@everipedia/prediqt-js");
const { Api, JsonRpc } = require("eosjs");
const fetch = require("isomorphic-fetch");
​
const rpc = new JsonRpc(nodeEndpoint, { fetch });
const api = new Api({ rpc, signatureProvider }); // create rpc and signatureProvider with eosjs or based on it libs
​
const client = new Prediqt(
{ customApi: api },
... // the same parameters
);
Graph API initialization
import { PrediqtGraph } from "@everipedia/prediqt-js";
​
const apiEndponit = "https://prediqt-api-kylin.azurewebsites.net/graphql"; // endpoint for mainnet - https://prediqt-api-mainnet.azurewebsites.net/graphql
​
const graphClient = new PrediqtGraph(apiEndponit);

API

Utils methods

setAuth

Set authorization to execute transactions
Parameters

resetAuth

Reset authorization to execute transactions
Methods that require authorization

setFee

Set a fee for the platform (admin only)
Parameters

acceptMarket

Accept a proposed market
Parameters

claimShares

Claim shares for a particular market
Parameters

cancelOrder

Cancel an order
Parameters

createMarket

Create a Market
Parameters

deleteMarket

Delete an existing Market
Parameters

limitOrder

Open an order for shares in a market
Parameters

marketInvalid

Set a market as invalid (only resolver)
Parameters

marketResolve

Set the outcome of a market (only resolver)
Parameters

marketResolveOracle

Set the outcome of a market (only resolver)
Parameters

proposeMarket

Propose a market to be part of the active markets
Parameters

rejectMarket

Reject a proposed market (resolver only)
Parameters

setResolver

Change resolver for a market (admin only)
Parameters

withdraw

Withdraw from user balance
Parameters

syncBank

Sync Bank

transferShares

Transfer shares to user
Parameters

cancelShares

Cancel transferred shares
Parameters

buyShares

Buy shares
Parameters

sellShares

Sell shares
Parameters

proposeMultiSig

Propose MultiSignature
Parameters
Methods that don't require authorization

getFees

Get fees related to the contract
Parameters
  • limit number (optional, default 100)
  • offset number (optional, default 0)

getShares

Get shares related to a market
Parameters
  • marketId number​
  • limit number (optional, default 100)
  • offset number (optional, default 0)

getReferrals

Get referral shares related to a market
Parameters
  • marketId number​
  • limit number (optional, default 100)
  • offset number (optional, default 0)

getMarkets

Get markets
Parameters
  • tableKey string (optional, default "")
  • limit number (optional, default 100)
  • offset number (optional, default 0)

getMarket

Get a single market
Parameters

getOrders

Get orders for a market
Parameters
  • data Object​
    • data.nameId string takes "yes" or "no"
    • data.marketId number​
    • data.tableKey string (optional, default "")
    • data.limit number (optional, default 100)
    • data.offset number (optional, default 0)

getBalance

Get balance of an user
Parameters

getIqBalance

Get IQ balance of an user
Parameters

getUserResources

Get resources of an user
Parameters

searchInOracles

Search user in table of oracles
Parameters

getAccount

Get account data of an user
Parameters

Graph API

getProposedMarkets

Get proposed markets
Parameters

getMarkets

Get markets
Parameters

getMarket

Get market
Parameters

getMarketPage

Get market page
Parameters

getPlatformFees

Get platform fees

getCategoriesAndTags

Get categories and tags

getDappInfo

Get information about dapp

getUserProfile

Get user's profile
Parameters

getShareHolders

Get shareholders
Parameters

getChainInfo

Get info about node's backlog

Embed market

To embed a market in your page, you just need to add code like:
<iframe src="https://prediqt.everipedia.org/embedded?marketId=54" width="100%" height="350" />
​