Skip to content

JS/TS library for interacting with SKALE IMA Bridge

License

Notifications You must be signed in to change notification settings

skalenetwork/ima-js

SKALE IMA-JS

Discord GitHub Workflow Status NPM npm GitHub top language

IMA-JS is a Typescript/Javascript library which implements client for SKALE Interchain Messaging Agent (IMA).

ℹ️ IMA-JS v2 is based on ethers.js, while v1 was built on top of web3js

Installation

Node

npm install --save @skalenetwork/ima-js

Yarn

yarn add @skalenetwork/ima-js

Usage

Full usage documentation with examples can be found on our docs portal: https://docs.skale.network/ima/1.3.x/

Development

Git clone with submodules

git clone --recurse-submodules --remote-submodules https://github.com/skalenetwork/ima-js

CLI usage

IMA-JS now also available as a standalone command line tool

Installation

VERSION_NUM={RELEASE_NAME_HERE} && sudo -E bash -c "curl -L https://github.com/skalenetwork/ima-js/releases/download/$VERSION_NUM/ima-$VERSION_NUM >  /usr/local/bin/ima"
sudo chmod +x /usr/local/bin/ima

Usage

ima --help

Connect chains

Example:

ima connect -n1 chain1 -n2 chain2 -pk1 456 -pk2 123 -e1 http://0.0.0.0:10001 -e2 http://0.0.0.0:10002

Testing

Check out GA test workflow in .github/workflows/test.yml to see all steps.

Deploy test tokens:

INSTALL_PACKAGES=True yarn deploy-tokens

Run tests:

yarn test

Linter

Used linter: https://palantir.github.io/tslint/

Install the global CLI and its peer dependency:

yarn global add tslint typescript

Linter git hook

Be sure to add pre-commit git hook:

echo 'yarn lint' > .git/hooks/pre-commit
chmod +x .git/hooks/pre-commit

License

GitHub

All contributions are made under the GNU Lesser General Public License v3. See LICENSE.