Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 82a83a2

Browse filesBrowse files
committed
pushback
1 parent 2f83a4d commit 82a83a2
Copy full SHA for 82a83a2

File tree

290 files changed

+65104
-2
lines changed
Filter options

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
Dismiss banner

290 files changed

+65104
-2
lines changed

‎README.md

Copy file name to clipboard
+307
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,307 @@
1+
# cryptocom-python
2+
Python SDK (sync and async) for Cryptocom cryptocurrency exchange with Rest and WS capabilities.
3+
4+
- You can check the SDK docs here: [SDK](https://docs.ccxt.com/#/exchanges/cryptocom)
5+
- You can check Cryptocom's docs here: [Docs](https://www.google.com/search?q=google+cryptocom+cryptocurrency+exchange+api+docs)
6+
- Github repo: https://github.com/ccxt/cryptocom-python
7+
- Pypi package: https://pypi.org/project/crypto-com-sdk
8+
9+
10+
## Installation
11+
12+
```
13+
pip install crypto-com-sdk
14+
```
15+
16+
## Usage
17+
18+
### Sync
19+
20+
```Python
21+
from cryptocom import CryptocomSync
22+
23+
def main():
24+
instance = CryptocomSync({})
25+
ob = instance.fetch_order_book("BTC/USDC")
26+
print(ob)
27+
#
28+
# balance = instance.fetch_balance()
29+
# order = instance.create_order("BTC/USDC", "limit", "buy", 1, 100000)
30+
31+
main()
32+
```
33+
34+
### Async
35+
36+
```Python
37+
import sys
38+
import asyncio
39+
from cryptocom import CryptocomAsync
40+
41+
### on Windows, uncomment below:
42+
# if sys.platform == 'win32':
43+
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
44+
45+
async def main():
46+
instance = CryptocomAsync({})
47+
ob = await instance.fetch_order_book("BTC/USDC")
48+
print(ob)
49+
#
50+
# balance = await instance.fetch_balance()
51+
# order = await instance.create_order("BTC/USDC", "limit", "buy", 1, 100000)
52+
53+
# once you are done with the exchange
54+
await instance.close()
55+
56+
asyncio.run(main())
57+
```
58+
59+
60+
61+
### Websockets
62+
63+
```Python
64+
import sys
65+
from cryptocom import CryptocomWs
66+
67+
### on Windows, uncomment below:
68+
# if sys.platform == 'win32':
69+
# asyncio.set_event_loop_policy(asyncio.WindowsSelectorEventLoopPolicy())
70+
71+
async def main():
72+
instance = CryptocomWs({})
73+
while True:
74+
ob = await instance.watch_order_book("BTC/USDC")
75+
print(ob)
76+
# orders = await instance.watch_orders("BTC/USDC")
77+
78+
# once you are done with the exchange
79+
await instance.close()
80+
81+
asyncio.run(main())
82+
```
83+
84+
85+
86+
87+
88+
#### Raw call
89+
90+
You can also construct custom requests to available "implicit" endpoints
91+
92+
```Python
93+
request = {
94+
'type': 'candleSnapshot',
95+
'req': {
96+
'coin': coin,
97+
'interval': tf,
98+
'startTime': since,
99+
'endTime': until,
100+
},
101+
}
102+
response = await instance.public_post_info(request)
103+
```
104+
105+
106+
## Available methods
107+
108+
### REST Unified
109+
110+
- `create_advanced_order_request(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
111+
- `create_order_request(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
112+
- `create_order(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
113+
- `create_orders(self, orders: List[OrderRequest], params={})`
114+
- `fetch_accounts(self, params={})`
115+
- `fetch_balance(self, params={})`
116+
- `fetch_deposit_address(self, code: str, params={})`
117+
- `fetch_deposit_addresses_by_network(self, code: str, params={})`
118+
- `fetch_deposit_withdraw_fees(self, codes: Strings = None, params={})`
119+
- `fetch_deposits(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
120+
- `fetch_funding_rate_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
121+
- `fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
122+
- `fetch_markets(self, params={})`
123+
- `fetch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
124+
- `fetch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`
125+
- `fetch_open_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
126+
- `fetch_order_book(self, symbol: str, limit: Int = None, params={})`
127+
- `fetch_order(self, id: str, symbol: Str = None, params={})`
128+
- `fetch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
129+
- `fetch_position(self, symbol: str, params={})`
130+
- `fetch_positions(self, symbols: Strings = None, params={})`
131+
- `fetch_settlement_history(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
132+
- `fetch_ticker(self, symbol: str, params={})`
133+
- `fetch_tickers(self, symbols: Strings = None, params={})`
134+
- `fetch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={})`
135+
- `fetch_trading_fee(self, symbol: str, params={})`
136+
- `fetch_trading_fees(self, params={})`
137+
- `fetch_withdrawals(self, code: Str = None, since: Int = None, limit: Int = None, params={})`
138+
- `cancel_all_orders(self, symbol: Str = None, params={})`
139+
- `cancel_order(self, id: str, symbol: Str = None, params={})`
140+
- `cancel_orders_for_symbols(self, orders: List[CancellationRequest], params={})`
141+
- `cancel_orders(self, ids, symbol: Str = None, params={})`
142+
- `close_position(self, symbol: str, side: OrderSide = None, params={})`
143+
- `custom_handle_margin_mode_and_params(self, methodName, params={})`
144+
- `describe(self)`
145+
- `nonce(self)`
146+
- `params_to_string(self, object, level)`
147+
- `withdraw(self, code: str, amount: float, address: str, tag=None, params={})`
148+
149+
### REST Raw
150+
151+
- `v1_public_get_public_auth(request)`
152+
- `v1_public_get_public_get_instruments(request)`
153+
- `v1_public_get_public_get_book(request)`
154+
- `v1_public_get_public_get_candlestick(request)`
155+
- `v1_public_get_public_get_trades(request)`
156+
- `v1_public_get_public_get_tickers(request)`
157+
- `v1_public_get_public_get_valuations(request)`
158+
- `v1_public_get_public_get_expired_settlement_price(request)`
159+
- `v1_public_get_public_get_insurance(request)`
160+
- `v1_public_get_public_get_risk_parameters(request)`
161+
- `v1_public_post_public_staking_get_conversion_rate(request)`
162+
- `v1_private_post_private_set_cancel_on_disconnect(request)`
163+
- `v1_private_post_private_get_cancel_on_disconnect(request)`
164+
- `v1_private_post_private_user_balance(request)`
165+
- `v1_private_post_private_user_balance_history(request)`
166+
- `v1_private_post_private_get_positions(request)`
167+
- `v1_private_post_private_create_order(request)`
168+
- `v1_private_post_private_create_order_list(request)`
169+
- `v1_private_post_private_cancel_order(request)`
170+
- `v1_private_post_private_cancel_order_list(request)`
171+
- `v1_private_post_private_cancel_all_orders(request)`
172+
- `v1_private_post_private_close_position(request)`
173+
- `v1_private_post_private_get_order_history(request)`
174+
- `v1_private_post_private_get_open_orders(request)`
175+
- `v1_private_post_private_get_order_detail(request)`
176+
- `v1_private_post_private_get_trades(request)`
177+
- `v1_private_post_private_change_account_leverage(request)`
178+
- `v1_private_post_private_get_transactions(request)`
179+
- `v1_private_post_private_create_subaccount_transfer(request)`
180+
- `v1_private_post_private_get_subaccount_balances(request)`
181+
- `v1_private_post_private_get_order_list(request)`
182+
- `v1_private_post_private_create_withdrawal(request)`
183+
- `v1_private_post_private_get_currency_networks(request)`
184+
- `v1_private_post_private_get_deposit_address(request)`
185+
- `v1_private_post_private_get_accounts(request)`
186+
- `v1_private_post_private_get_withdrawal_history(request)`
187+
- `v1_private_post_private_get_deposit_history(request)`
188+
- `v1_private_post_private_get_fee_rate(request)`
189+
- `v1_private_post_private_get_instrument_fee_rate(request)`
190+
- `v1_private_post_private_staking_stake(request)`
191+
- `v1_private_post_private_staking_unstake(request)`
192+
- `v1_private_post_private_staking_get_staking_position(request)`
193+
- `v1_private_post_private_staking_get_staking_instruments(request)`
194+
- `v1_private_post_private_staking_get_open_stake(request)`
195+
- `v1_private_post_private_staking_get_stake_history(request)`
196+
- `v1_private_post_private_staking_get_reward_history(request)`
197+
- `v1_private_post_private_staking_convert(request)`
198+
- `v1_private_post_private_staking_get_open_convert(request)`
199+
- `v1_private_post_private_staking_get_convert_history(request)`
200+
- `v2_public_get_public_auth(request)`
201+
- `v2_public_get_public_get_instruments(request)`
202+
- `v2_public_get_public_get_book(request)`
203+
- `v2_public_get_public_get_candlestick(request)`
204+
- `v2_public_get_public_get_ticker(request)`
205+
- `v2_public_get_public_get_trades(request)`
206+
- `v2_public_get_public_margin_get_transfer_currencies(request)`
207+
- `v2_public_get_public_margin_get_load_currenices(request)`
208+
- `v2_public_get_public_respond_heartbeat(request)`
209+
- `v2_private_post_private_set_cancel_on_disconnect(request)`
210+
- `v2_private_post_private_get_cancel_on_disconnect(request)`
211+
- `v2_private_post_private_create_withdrawal(request)`
212+
- `v2_private_post_private_get_withdrawal_history(request)`
213+
- `v2_private_post_private_get_currency_networks(request)`
214+
- `v2_private_post_private_get_deposit_history(request)`
215+
- `v2_private_post_private_get_deposit_address(request)`
216+
- `v2_private_post_private_export_create_export_request(request)`
217+
- `v2_private_post_private_export_get_export_requests(request)`
218+
- `v2_private_post_private_export_download_export_output(request)`
219+
- `v2_private_post_private_get_account_summary(request)`
220+
- `v2_private_post_private_create_order(request)`
221+
- `v2_private_post_private_cancel_order(request)`
222+
- `v2_private_post_private_cancel_all_orders(request)`
223+
- `v2_private_post_private_create_order_list(request)`
224+
- `v2_private_post_private_get_order_history(request)`
225+
- `v2_private_post_private_get_open_orders(request)`
226+
- `v2_private_post_private_get_order_detail(request)`
227+
- `v2_private_post_private_get_trades(request)`
228+
- `v2_private_post_private_get_accounts(request)`
229+
- `v2_private_post_private_get_subaccount_balances(request)`
230+
- `v2_private_post_private_create_subaccount_transfer(request)`
231+
- `v2_private_post_private_otc_get_otc_user(request)`
232+
- `v2_private_post_private_otc_get_instruments(request)`
233+
- `v2_private_post_private_otc_request_quote(request)`
234+
- `v2_private_post_private_otc_accept_quote(request)`
235+
- `v2_private_post_private_otc_get_quote_history(request)`
236+
- `v2_private_post_private_otc_get_trade_history(request)`
237+
- `v2_private_post_private_otc_create_order(request)`
238+
- `derivatives_public_get_public_auth(request)`
239+
- `derivatives_public_get_public_get_instruments(request)`
240+
- `derivatives_public_get_public_get_book(request)`
241+
- `derivatives_public_get_public_get_candlestick(request)`
242+
- `derivatives_public_get_public_get_trades(request)`
243+
- `derivatives_public_get_public_get_tickers(request)`
244+
- `derivatives_public_get_public_get_valuations(request)`
245+
- `derivatives_public_get_public_get_expired_settlement_price(request)`
246+
- `derivatives_public_get_public_get_insurance(request)`
247+
- `derivatives_private_post_private_set_cancel_on_disconnect(request)`
248+
- `derivatives_private_post_private_get_cancel_on_disconnect(request)`
249+
- `derivatives_private_post_private_user_balance(request)`
250+
- `derivatives_private_post_private_user_balance_history(request)`
251+
- `derivatives_private_post_private_get_positions(request)`
252+
- `derivatives_private_post_private_create_order(request)`
253+
- `derivatives_private_post_private_create_order_list(request)`
254+
- `derivatives_private_post_private_cancel_order(request)`
255+
- `derivatives_private_post_private_cancel_order_list(request)`
256+
- `derivatives_private_post_private_cancel_all_orders(request)`
257+
- `derivatives_private_post_private_close_position(request)`
258+
- `derivatives_private_post_private_convert_collateral(request)`
259+
- `derivatives_private_post_private_get_order_history(request)`
260+
- `derivatives_private_post_private_get_open_orders(request)`
261+
- `derivatives_private_post_private_get_order_detail(request)`
262+
- `derivatives_private_post_private_get_trades(request)`
263+
- `derivatives_private_post_private_change_account_leverage(request)`
264+
- `derivatives_private_post_private_get_transactions(request)`
265+
- `derivatives_private_post_private_create_subaccount_transfer(request)`
266+
- `derivatives_private_post_private_get_subaccount_balances(request)`
267+
- `derivatives_private_post_private_get_order_list(request)`
268+
269+
### WS Unified
270+
271+
- `describe(self)`
272+
- `pong(self, client, message)`
273+
- `watch_order_book(self, symbol: str, limit: Int = None, params={})`
274+
- `un_watch_order_book(self, symbol: str, params={})`
275+
- `watch_order_book_for_symbols(self, symbols: List[str], limit: Int = None, params={})`
276+
- `un_watch_order_book_for_symbols(self, symbols: List[str], params={})`
277+
- `watch_trades(self, symbol: str, since: Int = None, limit: Int = None, params={})`
278+
- `un_watch_trades(self, symbol: str, params={})`
279+
- `watch_trades_for_symbols(self, symbols: List[str], since: Int = None, limit: Int = None, params={})`
280+
- `un_watch_trades_for_symbols(self, symbols: List[str], params={})`
281+
- `watch_my_trades(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
282+
- `watch_ticker(self, symbol: str, params={})`
283+
- `un_watch_ticker(self, symbol: str, params={})`
284+
- `watch_tickers(self, symbols: Strings = None, params={})`
285+
- `un_watch_tickers(self, symbols: Strings = None, params={})`
286+
- `watch_bids_asks(self, symbols: Strings = None, params={})`
287+
- `watch_ohlcv(self, symbol: str, timeframe='1m', since: Int = None, limit: Int = None, params={})`
288+
- `un_watch_ohlcv(self, symbol: str, timeframe='1m', params={})`
289+
- `watch_orders(self, symbol: Str = None, since: Int = None, limit: Int = None, params={})`
290+
- `watch_positions(self, symbols: Strings = None, since: Int = None, limit: Int = None, params={})`
291+
- `set_positions_cache(self, client: Client, type, symbols: Strings = None)`
292+
- `load_positions_snapshot(self, client, messageHash)`
293+
- `watch_balance(self, params={})`
294+
- `create_order_ws(self, symbol: str, type: OrderType, side: OrderSide, amount: float, price: Num = None, params={})`
295+
- `cancel_order_ws(self, id: str, symbol: Str = None, params={})`
296+
- `cancel_all_orders_ws(self, symbol: Str = None, params={})`
297+
- `watch_public(self, messageHash, params={})`
298+
- `watch_public_multiple(self, messageHashes, topics, params={})`
299+
- `un_watch_public_multiple(self, topic: str, symbols: List[str], messageHashes: List[str], subMessageHashes: List[str], topics: List[str], params={}, subExtend={})`
300+
- `watch_private_request(self, nonce, params={})`
301+
- `watch_private_subscribe(self, messageHash, params={})`
302+
- `authenticate(self, params={})`
303+
304+
## Contribution
305+
- Give us a star :star:
306+
- Fork and Clone! Awesome
307+
- Select existing issues or create a new issue.

‎build/package.json

Copy file name to clipboardExpand all lines: build/package.json
+2-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"scripts": {
77
"build-single-exchange": "tsx build.ts",
88
"pypi-packager": "tsx pypi-packager.ts",
9-
109
"sample-generate": "cd ../.github/scripts/ && bash generate-exchange-skeleton.sh ../../../tmp_folder kucoin",
1110
"sample-build": "cd ../../tmp_folder/build && npm run build-single-exchange",
1211
"sample-pypi": "cd ../../tmp_folder/build && npm run pypi-packager",
@@ -17,7 +16,8 @@
1716
"dependencies": {
1817
"fs": "*",
1918
"path": "*",
20-
"semver": "^7.7.1"
19+
"semver": "^7.7.1",
20+
"typescript": "^5.8.3"
2121
},
2222
"devDependencies": {
2323
"tsx": "^4.19.3"

‎cryptocom/__init__.py

Copy file name to clipboard
+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
import sys
2+
import cryptocom.ccxt as ccxt_module
3+
sys.modules['ccxt'] = ccxt_module
4+
5+
from cryptocom.ccxt import cryptocom as CryptocomSync
6+
from cryptocom.ccxt.async_support.cryptocom import cryptocom as CryptocomAsync
7+
from cryptocom.ccxt.pro.cryptocom import cryptocom as CryptocomWs

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.