JavaScript library to interact with PolkaBTC
npm install @interlay/polkabtcJavaScript library to interact with PolkaBTC
You can spin up the parachain including the different clients with docker-compose:
``bash`
docker-compose up
If you want to run components individually, you can clone the repositories and run the commands as done in docker-compose.yml.
To install dependencies, run
``
yarn install
Build the library using
``
yarn build
To run only unit tests, use
``
yarn test:unit
Note that the parachain needs to be running for all tests to pass.
Then, to run tests, run
``
yarn test
Run the parachain (or indeed any Substrate node) and download the metadata:
`bash`
curl -H "Content-Type: application/json" -d '{"id":"1", "jsonrpc":"2.0", "method": "state_getMetadata", "params":[]}' http://localhost:9933 > src/json/parachain.json
Then, update the metadata by building the library:
`bash`
yarn build
The library assumes you have a BTC-Parachain running locally.
To use the library, you will first need to create a PolkadotJS APIPromise instance,PolkaBTCAPI
and then to instantiate a instance.
`typescript
import { createPolkabtcAPI } from "@interlay/polkabtc";
const defaultParachainEndpoint = "ws://127.0.0.1:9944";
const isMainnet = false;
const polkaBTC = await createPolkabtcAPI(defaultParachainEndpoint, isMainnet);
`
To emit transactions, an account has to be set.AddressOrPair
The account should conform to the interface.KeyringPair
If the account is not of the type, then a signer must also
be provided (such as an injected extension signer, from the Polkadot wallet).
See more details here: https://polkadot.js.org/docs/extension/usage/
`typescript`
import { createTestKeyring } from "@polkadot/keyring/testing";
const keyring = createTestKeyring();
const keypair = keyring.getPairs()[0];
polkaBTC.setAccount(keypair);
The different functionalities are then exposed through the PolkaBTCAPI instance.
Certain API calls require a parameters of type AccountId. For testing, an empty accountId will suffice:
`typescript
import { AccountId } from "@polkadot/types/interfaces/runtime";
const activeStakedRelayerId =
const feesEarnedByActiveStakedRelayer = await polkaBTC.stakedRelayer.getFeesEarned(
activeStakedRelayerId
);
``