antelopeql logo

AntelopeQL

NPM Package License: MIT

AntelopeQL is a GraphQL implementation for interacting with Antelope blockchains. Query and mutate your smart contracts with a GraphQL tool that provides comprehensive documentation about the entire blockchain.

For a live example of AntelopeQL GUI see: antelope.relocke.io.

antelopeql screenshot

Installation

For Node.js, to install AntelopeQL and the peer dependency graphql run:

npm install antelopeql graphql

For Deno.js, to install AntelopeQL add to your deno.json configuration file these imports:

{
  "imports": {
    "universal-sha256-js/": "https://deno.land/x/sha256js/",
    "universal-hmac-sha256-js/": "https://deno.land/x/hmacsha256/",
    "universal-hmac-sha256-js/hmac-sha256-node.mjs": "https://deno.land/x/hmacsha256/hmac-sha256-deno.mjs",
    "base58-js/": "https://deno.land/x/base58/",
    "isomorphic-secp256k1-js/": "https://deno.land/x/secp256k1js/",
    "ripemd160-js/": "https://deno.land/x/ripemd160js@v2.0.3/",
    "eosio-wasm-js/": "https://deno.land/x/eosio_wasm_js/",
    "eosio-ecc/": "https://deno.land/x/eosio_ecc/",
    "graphql": "https://cdn.skypack.dev/graphql"
  }
}

Examples

See the examples folder on how to run AntelopeQL as a Node.js endpoint.

Query a blockchain account

import fetch from "node-fetch";
import AntelopeQL from "antelopeql/antelopeql.mjs";

const { data } = await AntelopeQL(
  {
    query: /*GraphQL*/ `{
    blockchain{
      get_account(account_name:"relockeblock") {
        core_liquid_balance
        ram_quota
        net_weight
        cpu_weight
        ram_usage
        permissions {
          linked_actions {
            account
            action
          }
          required_auth {
            keys {
              key
              weight
            }
            threshold
          }
        }
      }
    }
  }`
  fetch,
  rpc_url: "https://jungle.relocke.io",
  headers: {
    "content-type": "application/json"
  }
  },
);

console.log(data);

Logged output included an account infomation.

Transfer EOS cryptocurrency

import fetch from "node-fetch";
import AntelopeQL from "antelopeql/antelopeql.mjs";

const { data } = await AntelopeQL({
  query: /*GraphQL*/ `mutation{
      push_transaction(actions: [{
        eosio_token:{
          transfer: {
            authorization:{
              actor:"relockeblock"
            }
            to:"relockechain"
            from:"relockeblock"
            memo: ""
            quantity: "0.0002 EOS"
          }
        }
      }]) {
        transaction_id
        block_num
      }
    }`,
  contracts: ["eosio.token"],
  private_keys: ["PVT_K1_…"], // legacy keys support.
  fetch,
  rpc_url: "https://eos.relocke.io", // eos blockchain.
  headers: {
    "content-type": "application/json"
  }
});

console.log(data);

Logged output includes transaction_id and block_num

Ways to require in CJS

Note

As this package is ESM if you need to require it in a Common JS package, then you can import like this:

(async function () {
  const { default: AntelopeQL } = await import("antelopeql/antelopeql.mjs");
  const { data } = await AntelopeQL({})
})();

Requirements

Supported runtime environments:

Exports

The npm package AntelopeQL features optimal JavaScript module design. It doesn’t have a main index module, so use deep imports from the ECMAScript modules that are exported via the package.json field exports: