Library to interact with firefly exchange protocol including its off-chain api-gateway and on-chain contracts
Project description
Firefly Client Library - Python
Python client library to interact with firefly api gateway to place orders on firefly exchange and to interact with on-chain firefly contracts.
How to use
Client initialization:
from firefly_exchange_client import FireflyClient
from constants import Networks
from pprint import pprint
# initialize client
client = FireflyClient(
True, # agree to terms and conditions
Networks["TESTNET_ARBITRUM"], # network to connect with e.g. TESTNET_ARBITRUM | MAINNET_ARBITRUM
"0x.....", # private key of wallet
True, # on boards user on firefly. Must be set to true for first time use
)
print('Account Address:', client.get_public_address());
# # gets user account data on-chain
data = client.get_user_account_data()
pprint(data)
Placing Orders:
from firefly_exchange_client import FireflyClient
from constants import Networks
from enumerations import MARKET_SYMBOLS, ORDER_SIDE, ORDER_TYPE
from interfaces import OrderSignatureRequest
# initialize
client = FireflyClient(....)
# creates a LIMIT order to be signed
signature_request = OrderSignatureRequest(
symbol=MARKET_SYMBOLS.ETH, # market symbol
price=0, # price at which you want to place order
quantity=0.01, # quantity
side=ORDER_SIDE.BUY,
orderType=ORDER_TYPE.MARKET,
leverage=user_leverage
)
# create signed order
signed_order = client.create_signed_order(signature_request);
print("Placing a market order")
# place signed order on orderbook
resp = client.post_signed_order(signed_order)
# returned order with PENDING state
print(resp)
Listening To Events:
from firefly_exchange_client import FireflyClient
from constants import Networks
from enumerations import MARKET_SYMBOLS, ORDER_SIDE, ORDER_TYPE
from interfaces import OrderSignatureRequest
def callback(event):
print("Event data:", event)
# initialize
client = FireflyClient(....)
# make connection with firefly exchange
client.socket.open()
# subscribe to local user events
client.socket.subscribe_user_update_by_token()
# listen to user order updates and trigger callback
client.socket.listen(SOCKET_EVENTS.ORDER_UPDATE.value, callback)
#
# place some orders to exchange, that will trigger callback
# resp = client.post_signed_order(signed_order)
#
time.sleep(10)
# unsubscribe from user events
client.socket.unsubscribe_user_update_by_token()
# close socket connection
client.socket.close()
Look at example directory to learn more about client usage.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Close
Hashes for firefly_exchange_client-0.0.8.tar.gz
Algorithm | Hash digest | |
---|---|---|
SHA256 | 65dd2dfc83e9367d2f6a953199561dd4d183b0ac5b9c810d110cb6a4f55b1872 |
|
MD5 | bf6bbbed62aff8bdbf1a6bd253d80bfc |
|
BLAKE2b-256 | 8c90c94d1b731685a3fd0e5072a3e824cfe41c15ae72547e3eb879d03d5c1799 |
Close
Hashes for firefly_exchange_client-0.0.8-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 2320345b78f7d10d7edf09ddecb0019ca09e40efb87383eada938d8fda3c5d21 |
|
MD5 | 8ae4bf65561039dbe694ee03dc08c204 |
|
BLAKE2b-256 | 301e00a677d6db66fe74e85758a834a5e42006d99f3f710293c076c9d5318f29 |