from ccxt.base.types import Entry


class ImplicitAPI:
    public_get_markets = publicGetMarkets = Entry('markets', 'public', 'GET', {'cost': 1})
    public_get_currencies = publicGetCurrencies = Entry('currencies', 'public', 'GET', {'cost': 1})
    public_post_ticker = publicPostTicker = Entry('ticker', 'public', 'POST', {'cost': 1})
    public_post_orderbook = publicPostOrderbook = Entry('orderbook', 'public', 'POST', {'cost': 1})
    public_post_trades = publicPostTrades = Entry('trades', 'public', 'POST', {'cost': 1})
    public_post_ohlcv = publicPostOHLCV = Entry('OHLCV', 'public', 'POST', {'cost': 1})
    private_post_accounts = privatePostAccounts = Entry('accounts', 'private', 'POST', {'cost': 1})
    private_post_balance = privatePostBalance = Entry('balance', 'private', 'POST', {'cost': 1})
    private_post_mypendingorders = privatePostMyPendingOrders = Entry('myPendingOrders', 'private', 'POST', {'cost': 1})
    private_post_positions = privatePostPositions = Entry('positions', 'private', 'POST', {'cost': 1})
    private_post_build_allocate = privatePostBuildAllocate = Entry('build/allocate', 'private', 'POST', {'cost': 1})
    private_post_build_cancelorders = privatePostBuildCancelOrders = Entry('build/cancelOrders', 'private', 'POST', {'cost': 1})
    private_post_build_createaccount = privatePostBuildCreateAccount = Entry('build/createAccount', 'private', 'POST', {'cost': 1})
    private_post_build_createorders = privatePostBuildCreateOrders = Entry('build/createOrders', 'private', 'POST', {'cost': 1})
    private_post_build_deallocate = privatePostBuildDeallocate = Entry('build/deallocate', 'private', 'POST', {'cost': 1})
    private_post_build_deposit = privatePostBuildDeposit = Entry('build/deposit', 'private', 'POST', {'cost': 1})
    private_post_build_setleverage = privatePostBuildSetLeverage = Entry('build/setLeverage', 'private', 'POST', {'cost': 1})
    private_post_build_withdraw = privatePostBuildWithdraw = Entry('build/withdraw', 'private', 'POST', {'cost': 1})
    private_post_submit_allocate = privatePostSubmitAllocate = Entry('submit/allocate', 'private', 'POST', {'cost': 1})
    private_post_submit_cancelorders = privatePostSubmitCancelOrders = Entry('submit/cancelOrders', 'private', 'POST', {'cost': 1})
    private_post_submit_createaccount = privatePostSubmitCreateAccount = Entry('submit/createAccount', 'private', 'POST', {'cost': 1})
    private_post_submit_createorders = privatePostSubmitCreateOrders = Entry('submit/createOrders', 'private', 'POST', {'cost': 1})
    private_post_submit_deallocate = privatePostSubmitDeallocate = Entry('submit/deallocate', 'private', 'POST', {'cost': 1})
    private_post_submit_deposit = privatePostSubmitDeposit = Entry('submit/deposit', 'private', 'POST', {'cost': 1})
    private_post_submit_setleverage = privatePostSubmitSetLeverage = Entry('submit/setLeverage', 'private', 'POST', {'cost': 1})
    private_post_submit_withdraw = privatePostSubmitWithdraw = Entry('submit/withdraw', 'private', 'POST', {'cost': 1})
