UNPKG

@xchainjs/xchain-thorchain

Version:

Custom Thorchain client and utilities used by XChainJS clients

73 lines (48 loc) 3.26 kB
# `@xchainjs/xchain-thorchain` Thorchain Module for XChainJS Clients ## Installation ```sh yarn add @xchainjs/xchain-thorchain ``` or ```sh npm install @xchainjs/xchain-thorchain ``` Following peer dependencies have to be installed into your project. These are not included in `@xchainjs/xchain-thorchain`. ```sh yarn add @xchainjs/xchain-client @xchainjs/xchain-crypto @xchainjs/xchain-util axios ``` ## Documentation ### [`xchain thorchain`](http://docs.xchainjs.org/xchain-client/xchain-thorchain/) [`How xchain-thorchain works`](http://docs.xchainjs.org/xchain-client/xchain-thorchain/how-it-works.html)\ [`How to use xchain-thorchain`](http://docs.xchainjs.org/xchain-client/xchain-thorchain/how-to-use.html) For more examples check out tests in `./__tests__/client.test.ts` ## Service Providers This package uses the following service providers: | Function | Service | Notes | | --------------------------- | -------------- | ------------------------------------------------------------------- | | Balances | Cosmos RPC | https://cosmos.network/rpc/v0.37.9 (`GET /bank/balances/{address}`) | | Transaction history | Tendermint RPC | https://docs.tendermint.com/master/rpc/#/Info/tx_search | | Transaction details by hash | Cosmos RPC | https://cosmos.network/rpc/v0.37.9 (`GET /txs/{hash}`) | | Transaction broadcast | Cosmos RPC | https://cosmos.network/rpc/v0.37.9 (`POST /txs`) | | Explorer | Thorchain.net | https://thorchain.net | Rate limits: No ## Extras ## Creating protobuffer typescript bindings In order for this library to de/serialize proto3 structures, you can use the following to create bindings 1. `git clone https://gitlab.com/thorchain/thornode` 2. run the following (adjust the paths acordingly) to generate a typecript file for MsgDeposit ```bash yarn run pbjs -w commonjs -t static-module <path to repo>/thornode/proto/thorchain/v1/x/thorchain/types/msg_deposit.proto <path to repo>/thornode/proto/thorchain/v1/common/common.proto <path to repo>/thornode/proto/thorchain/v1/x/thorchain/types/msg_send.proto <path to repo>/thornode/third_party/proto/cosmos/base/v1beta1/coin.proto -o src/types/proto/MsgCompiled.js ``` 3. run the following to generate the .d.ts file ```bash yarn run pbts src/types/proto/MsgCompiled.js -o src/types/proto/MsgCompiled.d.ts ``` Alternatively, you can run the convenience script: `genMsgs.sh`, which will overwrite the proto/js files in types/proto. This should only be done and checked in if changes were made to the upstream Msg in the THORNode repo. ### Setting Headers for public endpoints If you plan on using the publicly accessible endpoints listed below, ensure that you add a valid 'x-client-id' to all requests - https://gateway.liquify.com/chain/thorchain_midgard - https://api.haskoin.com (BTC/BCH/LTC) - https://gateway.liquify.com/chain/thorchain_api For a complete example please see this [test](https://github.com/xchainjs/xchainjs-lib/blob/master/packages/xchain-thorchain-amm/__e2e__/wallet.e2e.ts)