from ccxt.base.types import Entry


class ImplicitAPI:
    root_get = rootGet = Entry('', 'root', 'GET', {'cost': 1})
    root_get_info = rootGetInfo = Entry('info', 'root', 'GET', {'cost': 1})
    public_get_account = publicGetAccount = Entry('account', 'public', 'GET', {'cost': 1})
    public_get_accountsbyl1address = publicGetAccountsByL1Address = Entry('accountsByL1Address', 'public', 'GET', {'cost': 1})
    public_get_apikeys = publicGetApikeys = Entry('apikeys', 'public', 'GET', {'cost': 1})
    public_get_exchangestats = publicGetExchangeStats = Entry('exchangeStats', 'public', 'GET', {'cost': 1})
    public_get_assetdetails = publicGetAssetDetails = Entry('assetDetails', 'public', 'GET', {'cost': 1})
    public_get_orderbookdetails = publicGetOrderBookDetails = Entry('orderBookDetails', 'public', 'GET', {'cost': 1})
    public_get_orderbookorders = publicGetOrderBookOrders = Entry('orderBookOrders', 'public', 'GET', {'cost': 1})
    public_get_orderbooks = publicGetOrderBooks = Entry('orderBooks', 'public', 'GET', {'cost': 1})
    public_get_recenttrades = publicGetRecentTrades = Entry('recentTrades', 'public', 'GET', {'cost': 1})
    public_get_blocktxs = publicGetBlockTxs = Entry('blockTxs', 'public', 'GET', {'cost': 1})
    public_get_nextnonce = publicGetNextNonce = Entry('nextNonce', 'public', 'GET', {'cost': 1})
    public_get_tx = publicGetTx = Entry('tx', 'public', 'GET', {'cost': 1})
    public_get_txfroml1txhash = publicGetTxFromL1TxHash = Entry('txFromL1TxHash', 'public', 'GET', {'cost': 1})
    public_get_txs = publicGetTxs = Entry('txs', 'public', 'GET', {'cost': 1})
    public_get_announcement = publicGetAnnouncement = Entry('announcement', 'public', 'GET', {'cost': 1})
    public_get_block = publicGetBlock = Entry('block', 'public', 'GET', {'cost': 1})
    public_get_blocks = publicGetBlocks = Entry('blocks', 'public', 'GET', {'cost': 1})
    public_get_currentheight = publicGetCurrentHeight = Entry('currentHeight', 'public', 'GET', {'cost': 1})
    public_get_candles = publicGetCandles = Entry('candles', 'public', 'GET', {'cost': 1})
    public_get_fundings = publicGetFundings = Entry('fundings', 'public', 'GET', {'cost': 1})
    public_get_fastbridge_info = publicGetFastbridgeInfo = Entry('fastbridge/info', 'public', 'GET', {'cost': 1})
    public_get_funding_rates = publicGetFundingRates = Entry('funding-rates', 'public', 'GET', {'cost': 1})
    public_get_withdrawaldelay = publicGetWithdrawalDelay = Entry('withdrawalDelay', 'public', 'GET', {'cost': 1})
    public_post_sendtx = publicPostSendTx = Entry('sendTx', 'public', 'POST', {'cost': 1})
    public_post_sendtxbatch = publicPostSendTxBatch = Entry('sendTxBatch', 'public', 'POST', {'cost': 1})
    private_get_accountlimits = privateGetAccountLimits = Entry('accountLimits', 'private', 'GET', {'cost': 1})
    private_get_accountmetadata = privateGetAccountMetadata = Entry('accountMetadata', 'private', 'GET', {'cost': 1})
    private_get_pnl = privateGetPnl = Entry('pnl', 'private', 'GET', {'cost': 1})
    private_get_l1metadata = privateGetL1Metadata = Entry('l1Metadata', 'private', 'GET', {'cost': 1})
    private_get_liquidations = privateGetLiquidations = Entry('liquidations', 'private', 'GET', {'cost': 1})
    private_get_positionfunding = privateGetPositionFunding = Entry('positionFunding', 'private', 'GET', {'cost': 1})
    private_get_publicpoolsmetadata = privateGetPublicPoolsMetadata = Entry('publicPoolsMetadata', 'private', 'GET', {'cost': 1})
    private_get_accountactiveorders = privateGetAccountActiveOrders = Entry('accountActiveOrders', 'private', 'GET', {'cost': 1})
    private_get_accountinactiveorders = privateGetAccountInactiveOrders = Entry('accountInactiveOrders', 'private', 'GET', {'cost': 1})
    private_get_export = privateGetExport = Entry('export', 'private', 'GET', {'cost': 1})
    private_get_trades = privateGetTrades = Entry('trades', 'private', 'GET', {'cost': 1})
    private_get_accounttxs = privateGetAccountTxs = Entry('accountTxs', 'private', 'GET', {'cost': 1})
    private_get_deposit_history = privateGetDepositHistory = Entry('deposit/history', 'private', 'GET', {'cost': 1})
    private_get_transfer_history = privateGetTransferHistory = Entry('transfer/history', 'private', 'GET', {'cost': 1})
    private_get_withdraw_history = privateGetWithdrawHistory = Entry('withdraw/history', 'private', 'GET', {'cost': 1})
    private_get_referral_points = privateGetReferralPoints = Entry('referral/points', 'private', 'GET', {'cost': 1})
    private_get_transferfeeinfo = privateGetTransferFeeInfo = Entry('transferFeeInfo', 'private', 'GET', {'cost': 1})
    private_post_changeaccounttier = privatePostChangeAccountTier = Entry('changeAccountTier', 'private', 'POST', {'cost': 1})
    private_post_notification_ack = privatePostNotificationAck = Entry('notification/ack', 'private', 'POST', {'cost': 1})
