Skip to main content

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


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

firefly_exchange_client-0.0.8.tar.gz (26.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

firefly_exchange_client-0.0.8-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file firefly_exchange_client-0.0.8.tar.gz.

File metadata

  • Download URL: firefly_exchange_client-0.0.8.tar.gz
  • Upload date:
  • Size: 26.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.1 CPython/3.11.1

File hashes

Hashes for firefly_exchange_client-0.0.8.tar.gz
Algorithm Hash digest
SHA256 65dd2dfc83e9367d2f6a953199561dd4d183b0ac5b9c810d110cb6a4f55b1872
MD5 bf6bbbed62aff8bdbf1a6bd253d80bfc
BLAKE2b-256 8c90c94d1b731685a3fd0e5072a3e824cfe41c15ae72547e3eb879d03d5c1799

See more details on using hashes here.

File details

Details for the file firefly_exchange_client-0.0.8-py3-none-any.whl.

File metadata

File hashes

Hashes for firefly_exchange_client-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 2320345b78f7d10d7edf09ddecb0019ca09e40efb87383eada938d8fda3c5d21
MD5 8ae4bf65561039dbe694ee03dc08c204
BLAKE2b-256 301e00a677d6db66fe74e85758a834a5e42006d99f3f710293c076c9d5318f29

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page