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

getReferrals

Get referral shares related to a market

Parameters

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" />