This is a lightweight library that works as a connector to DeGate public SDK.
Project description
DeGate Public SDK Connector Python
This is a lightweight library that works as a connector to DeGate public SDK
- Supported APIs:
- Spot
- Spot Websocket Market Stream
- Spot User Data Stream
- Inclusion of examples
- Customizable base URL
- Response metadata can be displayed
Installation
pip install degate-connector
SDK
Usage examples:
from degate.spot import Spot as Client
ETH = {
"id": 0,
"symbol": "ETH",
}
USDC = {
"id": 8,
"symbol": "USDC",
}
client = Client(tokens=[ETH,USDC])
# Get server timestamp
print(client.time())
# Get klines of ETHUSDC at 1m interval
print(client.klines("ETHUSDC", "1m"))
# Get last 10 klines of ETHUSDC at 1h interval
print(client.klines("ETHUSDC", "1h", limit=10))
# accountAddress、assetPrivateKey、accountId are required for user data endpoints
client = Client(accountAddress='<account_address>',assetPrivateKey='<DeGate AssetPrivateKey>',accountId='<account_id>',tokens=[ETH,USDC])
# Get account and balance information
print(client.account())
# Post a new order
params = {
'symbol': 'ETHUSDC',
'side': 'SELL',
'type': 'LIMIT',
'quantity': 0.1,
'price': 9500
}
response = client.newOrder(**params)
print(response)
Please find examples folder to check for more endpoints.
Testnet
Spot Testnet is available, it can be used to test.
To use testnet:
from degate.spot import Spot as Client
client = Client(baseUrl='https://testnet-backend.degate.com')
print(client.time())
Response Metadata
The DeGate API server provides weight usages in the headers of each response.
You can display them by initializing the client with show_header=True:
from degate.spot import Spot as Client
client = Client(show_header=True)
print(client.time())
returns:
{'data': {'serverTime': 1587990847650}, 'header': {'Context-Type': 'application/json;charset=utf-8', ...}}
If ClientError is received, it'll display full response meta information.
Display logs
Setting the log level to DEBUG will log the request URL, payload and response text.
Error
There are 2 types of error returned from the library:
degate.error.ClientError- This is thrown when server returns
4XX, it's an issue from client side. - It has 4 properties:
status_code- HTTP status codeerror_code- Server's error code, e.g.-1102error_message- Server's error message, e.g.Unknown order sent.header- Full response header.
- This is thrown when server returns
degate.error.ServerError- This is thrown when server returns
5XX, it's an issue from server side.
- This is thrown when server returns
Websocket
import time
from degate.websocket.spot.websocket_client import SpotWebsocketClient as WsClient
def message_handler(message):
print(message)
ETH = {
"id": 0,
"symbol": "ETH",
}
USDC = {
"id": 8,
"symbol": "USDC",
}
wsClient = WsClient(tokens=[ETH,USDC])
wsClient.start()
wsClient.subscribeTicker(
symbol="ETHUSDC",
id=1,
callback=message_handler,
)
time.sleep(300)
wsClient.stop()
More websocket examples are available in the examples folder
Testnet
from degate.websocket.spot.websocket_client import SpotWebsocketClient as WsClient
wsClient = WsClient(websocketBaseUrl='wss://testnet-ws.degate.com')
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
File details
Details for the file degate-connector-1.6.2.tar.gz.
File metadata
- Download URL: degate-connector-1.6.2.tar.gz
- Upload date:
- Size: 33.7 MB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.9.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0ff98b983ffeb7e182420ff9da9259057c9ce7d6a1a72491ecfb33a16ff4f071
|
|
| MD5 |
48902d79edc6f487acca3b8fcf7b7847
|
|
| BLAKE2b-256 |
f273f4c2499267fc3737932038efeb39c2e6e3cd5b7d7f0f4d2e7b0cf710485b
|