From c7fe9ecc317e56a1e4f7cb26b0545b836aa5db04 Mon Sep 17 00:00:00 2001 From: "Justin (HoangVD2)" Date: Wed, 10 Apr 2024 15:39:31 +0700 Subject: [PATCH 1/3] docs: add content for Chains Lib Documentation --- chains-lib/chains-lib.md | 130 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 128 insertions(+), 2 deletions(-) diff --git a/chains-lib/chains-lib.md b/chains-lib/chains-lib.md index c3771f810..7953f78a4 100644 --- a/chains-lib/chains-lib.md +++ b/chains-lib/chains-lib.md @@ -1,3 +1,129 @@ -# Chains Lib +# Chains Lib Documentation -Coming soon... +[Chainslib](https://github.com/XDeFi-tech/chains) is a TypeScript library is designed to provide a unified interface for working with multiple blockchain networks, allowing developers to interact with various blockchain chains seamlessly. It supports a wide range of features and blockchain networks, making it a versatile tool for blockchain development. + +## Features + +Chainslib offers the following key features: + +- **Hardware Wallet Support:** It provides integration with Ledger and Trezor hardware wallets for enhanced security in blockchain transactions. +- **Wallet Types:** You can work with both seed phrase and private key wallets for managing your blockchain assets. +- **Standardized RPC Interface:** The library offers a consistent RPC interface for fetching blockchain information and broadcasting transactions across different supported chains. + +## Supported Chains + +
+Chainslib currently supports the following blockchain networks: + +- Bitcoin +- Bitcoin Cash +- Litecoin +- Dogecoin +- Ethereum +- BNB Smart Chain +- Avalanche +- Polygon +- Optimism +- Arbitrum +- Fantom +- Other EVM-compatible chains +- Cosmos +- Osmosis +- Juno +- Other IBC-Compatible Chains +- THORChain +- BNB Beacon Chain +- Solana + +
+ +## Installation + +To use Chainslib in your TypeScript project, you can install it via npm or yarn: + +```bash +npm install @xdefi-tech/chains +# or +yarn add @xdefi-tech/chains +``` + +## Usage + +Here's a basic example of how to use this library in your TypeScript application: + +### 1. Import Required Modules + +```typescript +import { BitcoinProvider } from "./chain.provider"; +import LedgerSigner from "./ledger.signer"; +import { MsgBody, Msg } from "../msg"; +``` + +### 2. Initialize Bitcoin Provider + +Initialize the Bitcoin provider with the necessary configurations: + +```typescript +const provider = new BitcoinProvider(new IndexerDataSource(BITCOIN_MANIFEST)); +``` + +### 3. Create Transaction Input + +Define the transaction input data, including the sender (from), recipient (to), and the amount to send. + +```typescript +const txInput: MsgBody = { + from: "FROM ADDRESS", + to: "TO ADDRESS", + amount: 0.000001, +}; +``` + +### 4. Create a Transaction Message + +Create a transaction message using the provider: + +```typescript +const message: Msg = provider.createMsg(txInput); +``` + +### 5. Sign the Transaction with Ledger + +Use the LedgerSigner to sign the transaction. Provide the message and the derivation path: + +```typescript +const transport = await Transport.create(); +const signer = new LedgerSigner(transport); +const derivationPath = "m/84'/0'/0'/0/0"; + +await signer.sign(message, derivationPath); +// finally close +transport.close(); +``` + +### 6. Broadcast the Transaction + +Now that the transaction is signed, you can broadcast it to the Bitcoin network using the BitcoinProvider. This step assumes that the transaction is already signed within the `message`. + +```typescript +await provider.broadcast([message]); +``` + +## Retrieving a Transaction + +### 1. Get Transaction Hash + +If you have a transaction hash, you can retrieve the transaction details. Use the `getTransaction` method of the BitcoinProvider: + +```typescript +const txHash = "TX HAS"; +const txData = await provider.getTransaction(txHash); +``` + +The `txData` object will contain transaction details, including the transaction hash. + +## Disclaimer + +This library is provided as-is, and we make no warranties or guarantees regarding its functionality or security. Always exercise caution and proper security practices when working with blockchain assets. + +Happy blockchain development! 🚀🔗 From b5726f6fe4d1f28cd10c8e1dacaffe1d387aa066 Mon Sep 17 00:00:00 2001 From: "Justin (HoangVD2)" Date: Wed, 10 Apr 2024 22:31:36 +0700 Subject: [PATCH 2/3] chore --- components/GetBalance.jsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/components/GetBalance.jsx b/components/GetBalance.jsx index 20a94baec..b237942ec 100644 --- a/components/GetBalance.jsx +++ b/components/GetBalance.jsx @@ -202,7 +202,7 @@ const GetBalance = () => { id="address" name="Address" value={address} - className="max-sm:w-300px] bg-gray-50 text-gray-900 px-2 py-1 dark:bg-gray-700 dark:placeholder-gray-400 dark:text-white" + className="max-sm:w-[300px] bg-gray-50 text-gray-900 px-2 py-1 dark:bg-gray-700 dark:placeholder-gray-400 dark:text-white" placeholder="Enter an address" onChange={(e) => setAddress(e.target.value)} /> From 23cccdfa58762d1095769fd3f91fa899accf4900 Mon Sep 17 00:00:00 2001 From: dp <25910069+davidp94@users.noreply.github.com> Date: Tue, 16 Apr 2024 10:27:06 +0300 Subject: [PATCH 3/3] Update chains-lib.md --- chains-lib/chains-lib.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/chains-lib/chains-lib.md b/chains-lib/chains-lib.md index 7953f78a4..60d61e03b 100644 --- a/chains-lib/chains-lib.md +++ b/chains-lib/chains-lib.md @@ -1,6 +1,6 @@ # Chains Lib Documentation -[Chainslib](https://github.com/XDeFi-tech/chains) is a TypeScript library is designed to provide a unified interface for working with multiple blockchain networks, allowing developers to interact with various blockchain chains seamlessly. It supports a wide range of features and blockchain networks, making it a versatile tool for blockchain development. +[Chainslib](https://github.com/XDeFi-tech/chains-lib) is a TypeScript library is designed to provide a unified interface for working with multiple blockchain networks, allowing developers to interact with various blockchain chains seamlessly. It supports a wide range of features and blockchain networks, making it a versatile tool for blockchain development. ## Features