from time import sleep
# from pybit import usdt_perpetual
from pybit.unified_trading import HTTP
import utils

config = utils.get_config()

# 自分のトークンを設定してください。
API_KEY    = config["BYBIT_API_KEY"]
API_SECRET = config["BYBIT_API_SECRET"]

# ウェブソケットの初期化
# ws = usdt_perpetual.WebSocket(
#     test=True,
#     api_key=API_KEY,
#     api_secret=API_SECRET,
#     # domain="bytick"  # the default is "bybit"
session = HTTP(
    testnet=False,
    api_key=API_KEY,
    api_secret=API_SECRET,
)


# トレード情報のコールバック関数
def handle_tradeinfo(message):
    print('-----Trade Message-----')
    print(message)

# 板情報のコールバック関数
def handle_orderbook(message):
    print('-----OrderBook Message-----')
    print(message)

# ポジションのコールバック関数
def handle_position(message):
    print('-----Position Message-----')
    print(message)

# ローソク足のコールバック関数
def handle_kline(message):
    print('-----Kline Message-----')
    print(message)


def main():
    # ウェブソケットのトピック登録
    # ws.trade_stream(handle_tradeinfo, 'BTCUSDT')        # トレード情報を受信してみる。
    # ws.orderbook_25_stream(handle_orderbook, 'BTCUSDT') # 板情報を受信してみる。
    # ws.position_stream(handle_position)                 # ポジション情報を受信してみる。
    # ws.kline_stream(handle_kline, 'BTCUSDT', 30)        # ローソク足情報を受信してみる。(1 3 5 15 30 60 120 240 360(秒), or D W M)

    # # メインループ
    # while True:
    #     # トレードのメインロジック等はここに書けます。
    #     sleep(60)

    # print(session.get_mark_price_kline(
    #     category="linear",
    #     symbol="BTCUSDT",
    #     interval=15,
    #     start=1670601600000,
    #     end=1670608800000,
    #     limit=1,
    # ))
    print(session.get_wallet_balance(
        accountType="UNIFIED",
        coin="BTC",
    ))

if __name__ == "__main__":
    main()
