@frequency-chain/api-augment
TypeScript icon, indicating that this package has built-in type declarations

1.15.1-rc1 • Public • Published

Javascript Custom RPC

Contributors Forks Stargazers Issues MIT License NPM @latest NPM @next

Frequency Custom RPC and Types for Polkadot JS API

An easy way to get all the custom rpc and types config to be able to easily use Frequency with the Polkadot JS API library with TypeScript.

Getting Started

  • npm install @frequency-chain/api-augment (API Augmentation Library)
  • npm install @polkadot/api (Polkadot API Library)

Upgrades and Matching Versions

Assuming you are using no deprecated methods, any release version should work against a release version of @frequency-chain/api-augment. If you are working against a development version it is suggested that you match against the commit hash using v0.0.0-[First 6 of the commit hash].

Changelog is maintained in the releases for Frequency.

Usage

For details on use, see the Polkadot API library documentation.

import { options } from "@frequency-chain/api-augment";
import { ApiPromise } from "@polkadot/api";
// ...

const api = await ApiPromise.create({
  ...options,
  // ...
});

Contributing

See CONTRIBUTING.md for more information.

Updating Definitions

Update ./definitions if you have changed any types or RPC calls.

To generate the JS api definitions, run

make js

This command will start a Frequency node in the background and fetch API definitions from it. To stop the Frequency process, use the PID output by the command.

Helpful Notes

Fails to Resolve Custom RPCs

The api augmentation declares the modules used by @polkadot/api. Thus the import for @frequency-chain/api-augment must come before any @polkadot/api so that the Frequency declarations resolve first.

import { options } from "@frequency-chain/api-augment";
// Or
import "@frequency-chain/api-augment";
// Must come BEFORE any imports from @polkadot/api
import { ApiPromise } from "@polkadot/api";

Caches can also wreck this even if you reorder, so watch out.

  • Yarn cache can sometimes cause issues (if you are using yarn): yarn cache clear
  • Sometimes I have found blowing away the node_modules helps as well: rm -Rf node_modules

Option

Optional responses are not mapped to null and instead return an object with a few properties. For more details see the code for the Option class.

const optionalExample = await api.rpc.schemas.getBySchemaId(1);
// Does the Option have a value?
if (!optionalExample.isEmpty) {
  // Get the value
  return optionalExample.value;
}
return null;

Vec

Vector responses are not mapped directly to a JavaScript Array. Instead they are mapped to the Vec class which does extend Array. Thus, you can still use map, forEach, etc... with responses or access the values directing via .values().

License

Distributed under the Apache 2.0 License. See LICENSE for more information.

Readme

Keywords

none

Package Sidebar

Install

npm i @frequency-chain/api-augment

Weekly Downloads

12,776

Version

1.15.1-rc1

License

Apache-2.0

Unpacked Size

1.01 MB

Total Files

133

Last publish

Collaborators

  • scott_b_unf
  • unfinished-releases
  • wilwade