# Біржа
Модуль для обробки данних біржі, а саме ордерів.

Тут користувач може створити ордер, продати токени по цьому ордері, купити токени, отримати всі ордери(створені користувачем), редагувати і видаляти ордери

### Початок
Для початку потрібно завантажити й імпортувати модуль:

`pip install SBExchange` - для встановлення

`from SBExchange import Exchange` - імпорт

### Ініціалізація
`token = Exchange("token_orders.json")` - ініціалізація токена, замість  **token** вкажіть назву токену. Зверніть увагу, розширення файлу повинно бути _.json_!!!

### Документація
В модулі є різні функції, нижче наведена тиблиця для кожної функції:

##### CreateOrder

| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| tokens |  -   | int |
| price |  -   | int |
| tokenName |  -  | str |
| userId |  -   | int |
| type |  -   | str |

tokenName - назва токену за який продається Ваш токен, наприклад token продається за TON, тому tokenName = "TON"!

type - тип ордера. Або "sell", або "buy"!

##### Buy

| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| token_amount |  -   | int |
| order_index |  -   | int |
| order_id |  -  | int |
| balance |  -   | int |

order_index - індекс ордера в списку

order_id - унікальний ідентифікатор ордера

balance - баланс користувача(використовується для перевірки). Повертає 400 якщо недостатньо коштів на балансі

##### Sell

| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| token_amount |  -   | int |
| order_index |  -   | int |
| order_id |  -  | int |
| balance |  -   | int |

order_index - індекс ордера в списку

order_id - унікальний ідентифікатор ордера

balance - баланс користувача(використовується для перевірки). Повертає 400 якщо недостатньо коштів на балансі

##### GetOrders
| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| - |  -   | - |

##### MultiSB
Multi Sell & Buy, продає або купує токени в більших кількостях ніж вони є в ордері

| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| token_amount |  -   | int |
| type |  -   | str |
| balance |  -   | int |

type - тип ордера, sell або buy

##### DeleteOrder

| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| order_index |  -   | int |
| order_id |  -   | int |
| type |  -   | str |

##### EditOrder

| Аргумент | Значення по замовчуванню | Тип данних |
|-----|-----------|--------|
| order_index |  -   | int |
| order_id |  -   | int |
| type |  -   | str |
| key |  -   | str |
| value |  -   | int/str |
| operation |  -   | str |

key - значення яке в ордері потрібно поміняти

value - значення яке повинне бути або на скільки повинно змінитися

operation - операція(+, -, /, *), якщо нічого не вказувати - просто заміниться старе значення на нове




### Інше

Якщо в order_id вказувати айді, то order_index повинно бути -1(по замовчуванню) і навпаки. Якщо вказан і індекс і айді то перевага надається індексу