1 stable release
new 1.0.0 | Apr 23, 2025 |
---|
#123 in Magic Beans
62KB
1.5K
SLoC
Bluefin Pro SDK for Rust
Overview
The Bluefin Pro SDK for Rust allows developers to interact with the Bluefin Pro platform using generated client libraries from OpenAPI 3.0 specifications. This SDK enables seamless interaction with REST and WebSocket APIs to perform various trading operations, such as placing orders, withdrawing funds, and subscribing to market feeds.
To generate Rust client code:
cd tools
cargo run --bin apigen -- -l rust
Features
- REST API Client: Interact with Bluefin Pro’s REST APIs to perform operations such as creating orders, managing accounts, and retrieving trading data.
- WebSocket API Client: Subscribable channels for real-time market data and updates, generated from OpenAPI specs.
- Signature Utilities: Built-in cryptographic utilities to sign
update_leverage
,create order
andwithdraw
requests securely. - Environment Support: Example configurations and code provided to connect to DEVNET TESTNET or MAINNET environments.
Installation
Add the following to your Cargo.toml
:
[dependencies]
bluefin-sdk = "1.0.0"
Note: Replace 1.0.0
with the latest version available.
Resources and API Support
REST APIs
The REST APIs are grouped by functionality and defined within the OpenAPI files located in the resources
folder of the
repository. These APIs include:
- Authentication: Authenticate through Bluefin and get the Authorization token for REST API and WebSocket operations
- Trade: Place or cancel orders, fetch open orders.
- Account Management: View and manage user account information, update account leverage for market addresses.
- Exchange Info: View the public information of the exchange
Example usage for REST APIs can be found in the
examples
folder.
WebSocket APIs
WebSocket APIs enable real-time market data and event subscription. Documentation for WebSocket messages is available
within the OpenAPI specs in resources/websocket-api.yaml
file.
- Market: Real-time market updates such as Ticker, Recent Trades, Oracle Price and more
- Account: Real-time account updates such as Order Updates, Balance Changes and more (requires authentication token)
Example usage for WebSocket APIs can be found in the
examples
folder. Websocket examples are prefixed byws-
Examples
The SDK provides example code to demonstrate how to use the APIs.
- Connecting to DEVNET, TESTNET or MAINNET: The examples are configured for DEVNET, TESTNET and MAINNET environments. You can toggle between environments based on your use case.
- Signing Requests: Ensure secure interactions by leveraging the built-in signing utilities before making
create order
,update leverage
andwithdraw
requests.
To run examples, navigate to the examples
directory and execute them using:
cargo run --example <example_name>
Replace
<example_name>
with the specific example file you wish to execute.
The SDK provides test accounts with hex encoded ed25519 public key and private key available to run examples on DEVNET or TESTNET
example.rs
is a full example that shows how to use the SDK to perform multiple operations, including fetching account details, exchange info, creating an order, withdrawing funds, and listening to account and market updates.
Utility Functions
The SDK comes with built-in support for signing specific API requests:
- Sign
Create Order
Requests: Cryptographically sign your order requests securely. - Sign
Withdraw
Requests: Cryptographically sign your withdrawal requests. - Sign
Update Leverage
Requests: Cryptographically sign your update leverage requests.
For other API interactions, refer to the examples folder for detailed guidance.
Questions?
If you encounter an issue or have any questions, please feel free to reach out via GitHub issues or the support team.
Dependencies
~21–38MB
~504K SLoC