@bitfixyz/market-maker-sdk
v0.0.2
Published
## Overview BitFi Market Maker SDK is a TypeScript library that provides a comprehensive interface for interacting with the BitFi decentralized trading platform. The SDK facilitates cross-chain token transfers, signature verification, and trade settlement
Downloads
76
Readme
BitFi Market Maker SDK
Overview
BitFi Market Maker SDK is a TypeScript library that provides a comprehensive interface for interacting with the BitFi decentralized trading platform. The SDK facilitates cross-chain token transfers, signature verification, and trade settlements, with built-in support for both EVM and Bitcoin networks.
Features
- Cross-chain token transfers and settlements
- Comprehensive signature utilities
- Token management and information retrieval
- Router contract interactions
- Solver service integration
- Type-safe implementation with TypeScript
- Built-in error handling and validation
Installation
npm install @bitfixyz/market-maker-sdk
# or
yarn add @bitfixyz/market-maker-sdk
Services
RouterService
Handles interactions with the BitFi router contract:
import { routerService } from '@bitfixyz/market-maker-sdk';
// Get contract information
const signer = await routerService.getSigner();
const currentPubkey = await routerService.getCurrentPubkey();
// Trade management
const currentStage = await routerService.getCurrentStage(tradeId);
const tradeData = await routerService.getTradeData(tradeId);
// Handler and token information
const handler = await routerService.getHandler(fromChain, toChain);
const tokens = await routerService.getTokens(fromIdx, toIdx);
SolverService
Manages settlement transaction submissions:
import { solverService } from '@bitfixyz/market-maker-sdk';
// Single settlement
await solverService.submitSingleSettlement(
tradeId,
pmmId,
settlementTx,
signature
);
// Batch settlement
await solverService.submitBatchSettlement(
tradeIds,
pmmId,
settlementTx,
signature,
startIndex
);
TokenService
Provides token information and management:
import { tokenService } from '@bitfixyz/market-maker-sdk';
// Retrieve token information
const allTokens = await tokenService.getTokens();
const token = await tokenService.getTokenByTokenId(tokenId);
const networkTokens = await tokenService.getTokensByNetwork(networkId);
const specificToken = await tokenService.getToken(networkId, tokenAddress);
Signature Utilities
The SDK includes comprehensive signature utilities:
import {
getSignature,
SignatureType,
getInfoHash
} from '@bitfixyz/market-maker-sdk';
// Generate signatures
const signature = await getSignature(
signer,
provider,
signerHelper,
tradeId,
infoHash,
SignatureType.Presign // update type signature
);
// Generate various info hashes
const presignHash = getInfoHash.getPresignHash(pmmRecvAddress, amountIn);
const depositHash = getInfoHash.getDepositConfirmationHash(
amountIn,
fromChain,
depositTxId,
depositFromList
);
Best Practices
- Always validate input data before making service calls
- Implement proper error handling for all operations
- Keep private keys secure and never expose them in code
- Monitor transaction status after submitting settlements
- Use TypeScript for better type safety
- Regularly update to the latest SDK version
- Use environment variables for configuration
- Test thoroughly before deploying to production
Contributing
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature
) - Commit your changes (
git commit -m 'Add feature'
) - Push to the branch (
git push origin feature/amazing-feature
) - Open a Pull Request
Support
For issues and feature requests, please open an issue on GitHub.
License
This project is licensed under the MIT License. See the LICENSE file for details.