xchainjs-lib
                                
                                 xchainjs-lib copied to clipboard
                                
                                    xchainjs-lib copied to clipboard
                            
                            
                            
                        Lightweight typescript library for cross-chain wallets. Connect with multiple blockchains via a common interface, with support for the minimum features necessary.
XChainJS - xchainjs Library
:star: Developed / Developing by xchainjs
XChainJS is a library with a common interface for multiple blockchains, built for simple and fast integration for wallets and more.
License
Telegram group: https://t.me/xchainjs 
Homepage: https://xchainjs.org 
Docs: http://docs.xchainjs.org/overview/
Interface
The interface is defined here.
Common Interface
A single common interface:
- Initialise with a valid BIP39 phrase and specified network (testnet/mainnet)
- Get the address, with support for BIP44 path derivations (default is Index 0)
- Get the balance (UTXO or account-based)
- Get transaction history for that address
- Make a simple transfer
- Get blockchain fee information (standard, fast, fastest)
Packages
- xchain-binance
- xchain-bitcoin
- xchain-bitcoincash
- xchain-client
- xchain-cosmos
- xchain-crypto
- xchain-doge
- xchain-ethereum
- xchain-litecoin
- xchain-terra
- xchain-thorchain
- xchain-util
Advanced Features
For wallets that need even more flexibility (smart contract blockchains) the client can be retrieved and the wallet is then free to handle directly.
XChainJS uses following libraries, frameworks and more:
Tests
Make sure Jest and Lerna is installed
yarn add --dev jest lerna
Start with
yarn
yarn build
unit
yarn test
Integration Tests
There are a suite of integration test which work against testnet. You will need to specify a phrase which controls testnet coins
export PHRASE="secret phrase here"
yarn e2e
Development
lerna bootstrap
Releasing
To test the publish via a dryrun:
NPM_USERNAME="test123" NPM_PASSWORD="test123" NPM_EMAIL="[email protected]" ./dryrun_publish.sh
To publish:
NPM_USERNAME="TODO Use real npm username" NPM_PASSWORD="TODO Use real npm password" NPM_EMAIL="TODO Use real npm email" ./publish.sh
Contributing
Please ask in the telegram group to be added as a contributor.
Bug Reports
Please submit an issue and flag in the telegram group.
