@nervina-labs/ckb-dex
v0.7.0
Published
The JavaScript SDK for CKB DEX
Downloads
938
Keywords
Readme
CKB DEX SDK
CKB DEX SDK is a comprehensive web development kit, which helps developers interact with the CKB DEX contract in JavaScript/TypeScript environments.
The SDK provides methods for making orders, taking orders, and canceling orders. Developers can use common lock scripts, such as official secp256k1/blake160 lock, JoyID lock, etc., to interact with the CKB DEX contract.
You can use the DEX to swap fungible tokens(SUDT, XUDT, ccBTC, etc.) and non-fungible tokens(Spore, mNFT, etc.) with CKB native asset and JoyID lock is recommended to hold and swap CKB assets.
You can build the maker transactions to transfer FT or NFT assets to DEX lock script whose args contains owner address, price(based on CKB native asset), setup, etc. Anyone can build a taker transaction, as long as the price required in the DEX lock args is met. You can cancel the maker transactions at any time before the taker transactions are executed.
Installation
$ npm i @nervina-labs/ckb-dex
# or
$ yarn add @nervina-labs/ckb-dex
# or
$ pnpm add @nervina-labs/ckb-dex
Development
Connect the JoyID Wallet
You can connect JoyID wallet using @joyid/ckb SDK connect
function and then you can get the ConnectResponseData to build maker and taker transactions later.
Build and Sign transactions
You can use buildMakerTx
, buildCancelTx
and buildTakerTx
methods to place, cancel and take orders with the ConnectResponseData and the methods will generate CKB raw transaction for you to be signed later.
You must set the asset type(CKBAsset) when calling buildXXXTx
methods and the CKBAsset is defined as follows:
export enum CKBAsset {
XUDT,
SUDT,
XUDT_CC, // ccBTC
SPORE,
MNFT,
}
The examples demonstrate how to build FT and NFT maker, taker transactions with JoyID lock and the local test private keys are for simplicity, please DON'T use the local private keys in your production DApp.
You can call the signRawTransaction
method to sign the raw tx with JoyID wallet through @joyid/ckb SDK, and you can send the signed transaction through CKB RPC.