chainabstractionlayerBlockchain abstraction layer
Chain Abstraction Layer
⚠️ This project is under heavy development. Expect bugs & breaking changes.
📝
Introductory Blog Post: The Missing Tool to Cross-Chain Development
Query different blockchains with account management using a single and simple interface.
Packages
Usage
import { Client } from '@liquality/client'
import { BitcoinRpcProvider } from '@liquality/bitcoin-rpc-provider'
import { EthereumRpcProvider } from '@liquality/ethereum-rpc-provider'
import { BitcoinLedgerProvider } from '@liquality/bitcoin-ledger-provider'
import { EthereumLedgerProvider } from '@liquality/ethereum-ledger-provider'
import { BitcoinNetworks } from '@liquality/bitcoin-networks'
import { EthereumNetworks } from '@liquality/ethereum-networks'
const bitcoin = new Client()
const ethereum = new Client()
bitcoin.addProvider(new BitcoinRpcProvider(
'https://liquality.io/bitcointestnetrpc/', 'bitcoin', 'local321'
))
ethereum.addProvider(new EthereumRpcProvider(
'https://rinkeby.infura.io/v3/xxx'
))
bitcoin.addProvider(new BitcoinLedgerProvider(
{ network: BitcoinNetworks.bitcoin_testnet }
))
ethereum.addProvider(new EthereumLedgerProvider(
{ network: EthereumNetworks.rinkeby }
))
// Fetch addresses from Ledger wallet using a single-unified API
const [ bitcoinAddress ] = await bitcoin.wallet.getAddresses(0, 1)
const [ ethereumAddress ] = await ethereum.wallet.getAddresses(0, 1)
// Sign a message
const signedMessageBitcoin = await bitcoin.wallet.signMessage(
'The Times 3 January 2009 Chancellor on brink of second bailout for banks', bitcoinAddress
)
const signedMessageEthereum = await ethereum.wallet.signMessage(
'The Times 3 January 2009 Chancellor on brink of second bailout for banks', ethereumAddress
)
// Send a transaction
await bitcoin.chain.sendTransaction(<to>, 1000)
await ethereum.chain.sendTransaction(<to>, 1000)
Development
npm install
npm run bootstrap
npm run watch
Production
npm run build
Publish
npm run new:version # prepare
npm run publish:all # publish
License
评论