AntelopeQL
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.
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:
- Node.js versions
>=16.0.0
. - Browsers matching the Browserslist query
> 0.5%, not OperaMini all, not dead
. - Deno version
>=1.30.0
.
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
: