Skip to main content

Cryptology webscoket client

Project description

This is an official Python client library for the Cryptology exchange WebSocket API.

By using this Cryptology Python client you confirm that you have read and accept License Agreement:

Features

  • Asynchronous implementation of all WebSocket Market Data and Account endpoints.

  • Handling response errors

  • Withdrawal functionality

Quick Start

Receive your own API access key and secret key.

pip install cryptology-ws-client

Run tests.

make tests

And see example.

import asyncio
import itertools
import os
import logging
import time

from collections import namedtuple
from cryptology import ClientWriterStub, run_client, exceptions
from datetime import datetime
from decimal import Decimal
from typing import Iterable, Dict, List

SERVER = os.getenv('SERVER', 'wss://api.sandbox.cryptology.com')


logging.basicConfig(level='DEBUG')


async def main():

    async def writer(ws: ClientWriterStub, pairs: List, state: Dict) -> None:
        while True:
            client_order_id = int(time.time() * 10)
            await ws.send_message(payload={
                '@type': 'PlaceBuyLimitOrder',
                'trade_pair': 'BTC_USD',
                'price': '1',
                'amount': '1',
                'client_order_id': client_order_id,
                'ttl': 0
            })
            await asyncio.sleep(5)

    async def read_callback(ws: ClientWriterStub, ts: datetime, message_id: int, payload: dict) -> None:
        if payload['@type'] == 'BuyOrderPlaced':
            await ws.send_message(payload={'@type': 'CancelOrder', 'order_id': payload['order_id']})

    while True:
        try:
            await run_client(
                access_key='YOUR ACCESS KEY',
                secret_key='YOUR SECRET KEY',
                ws_addr=SERVER,
                writer=writer,
                read_callback=read_callback,
                last_seen_message_id=-1
            )
        except exceptions.ServerRestart:
            asyncio.sleep(60)


if __name__ == '__main__':
    loop = asyncio.get_event_loop()
    loop.run_until_complete(main())

For more check out the documentation.

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

cryptology-ws-client-1.1.5.tar.gz (6.4 kB view details)

Uploaded Source

File details

Details for the file cryptology-ws-client-1.1.5.tar.gz.

File metadata

  • Download URL: cryptology-ws-client-1.1.5.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: Python-urllib/3.6

File hashes

Hashes for cryptology-ws-client-1.1.5.tar.gz
Algorithm Hash digest
SHA256 2c16bc3b03c0418fa78304bb6b990573d63e33f3b27fd7de0a2d4d8204c6e648
MD5 2e62649c4b71baf80d6762116437f4b4
BLAKE2b-256 1fe0b6a3c644f042c276164ceade17632bb32c0bf249e9b31ad8aea773ffce2b

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