<?php

namespace ccxt\abstract;

// PLEASE DO NOT EDIT THIS FILE, IT IS GENERATED AND WILL BE OVERWRITTEN:
// https://github.com/ccxt/ccxt/blob/master/CONTRIBUTING.md#how-to-contribute-code


abstract class gemini extends \ccxt\Exchange {
    public function webexchange_get($params = array()) {
        return $this->request('', 'webExchange', 'GET', $params, null, null, array());
    }
    public function web_get_rest_api($params = array()) {
        return $this->request('rest-api', 'web', 'GET', $params, null, null, array());
    }
    public function public_get_v1_symbols($params = array()) {
        return $this->request('v1/symbols', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_symbols_details_symbol($params = array()) {
        return $this->request('v1/symbols/details/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_staking_rates($params = array()) {
        return $this->request('v1/staking/rates', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_pubticker_symbol($params = array()) {
        return $this->request('v1/pubticker/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v2_ticker_symbol($params = array()) {
        return $this->request('v2/ticker/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v2_candles_symbol_timeframe($params = array()) {
        return $this->request('v2/candles/{symbol}/{timeframe}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_trades_symbol($params = array()) {
        return $this->request('v1/trades/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_auction_symbol($params = array()) {
        return $this->request('v1/auction/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_auction_symbol_history($params = array()) {
        return $this->request('v1/auction/{symbol}/history', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_pricefeed($params = array()) {
        return $this->request('v1/pricefeed', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_book_symbol($params = array()) {
        return $this->request('v1/book/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function public_get_v1_earn_rates($params = array()) {
        return $this->request('v1/earn/rates', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function private_post_v1_staking_unstake($params = array()) {
        return $this->request('v1/staking/unstake', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_staking_stake($params = array()) {
        return $this->request('v1/staking/stake', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_staking_rewards($params = array()) {
        return $this->request('v1/staking/rewards', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_staking_history($params = array()) {
        return $this->request('v1/staking/history', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_order_new($params = array()) {
        return $this->request('v1/order/new', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_order_cancel($params = array()) {
        return $this->request('v1/order/cancel', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_wrap_symbol($params = array()) {
        return $this->request('v1/wrap/{symbol}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_order_cancel_session($params = array()) {
        return $this->request('v1/order/cancel/session', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_order_cancel_all($params = array()) {
        return $this->request('v1/order/cancel/all', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_order_status($params = array()) {
        return $this->request('v1/order/status', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_orders($params = array()) {
        return $this->request('v1/orders', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_mytrades($params = array()) {
        return $this->request('v1/mytrades', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_notionalvolume($params = array()) {
        return $this->request('v1/notionalvolume', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_tradevolume($params = array()) {
        return $this->request('v1/tradevolume', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_clearing_new($params = array()) {
        return $this->request('v1/clearing/new', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_clearing_status($params = array()) {
        return $this->request('v1/clearing/status', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_clearing_cancel($params = array()) {
        return $this->request('v1/clearing/cancel', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_clearing_confirm($params = array()) {
        return $this->request('v1/clearing/confirm', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_balances($params = array()) {
        return $this->request('v1/balances', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_balances_staking($params = array()) {
        return $this->request('v1/balances/staking', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_notionalbalances_currency($params = array()) {
        return $this->request('v1/notionalbalances/{currency}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_transfers($params = array()) {
        return $this->request('v1/transfers', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_addresses_network($params = array()) {
        return $this->request('v1/addresses/{network}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_deposit_network_newaddress($params = array()) {
        return $this->request('v1/deposit/{network}/newAddress', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_deposit_currency_newaddress($params = array()) {
        return $this->request('v1/deposit/{currency}/newAddress', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_withdraw_currency($params = array()) {
        return $this->request('v1/withdraw/{currency}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_account_transfer_currency($params = array()) {
        return $this->request('v1/account/transfer/{currency}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_payments_addbank($params = array()) {
        return $this->request('v1/payments/addbank', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_payments_methods($params = array()) {
        return $this->request('v1/payments/methods', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_payments_sen_withdraw($params = array()) {
        return $this->request('v1/payments/sen/withdraw', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_balances_earn($params = array()) {
        return $this->request('v1/balances/earn', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_earn_interest($params = array()) {
        return $this->request('v1/earn/interest', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_earn_history($params = array()) {
        return $this->request('v1/earn/history', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_approvedaddresses_network_request($params = array()) {
        return $this->request('v1/approvedAddresses/{network}/request', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_approvedaddresses_account_network($params = array()) {
        return $this->request('v1/approvedAddresses/account/{network}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_approvedaddresses_network_remove($params = array()) {
        return $this->request('v1/approvedAddresses/{network}/remove', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_account($params = array()) {
        return $this->request('v1/account', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_account_create($params = array()) {
        return $this->request('v1/account/create', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_account_list($params = array()) {
        return $this->request('v1/account/list', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_heartbeat($params = array()) {
        return $this->request('v1/heartbeat', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function private_post_v1_roles($params = array()) {
        return $this->request('v1/roles', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function webExchangeGet($params = array()) {
        return $this->request('', 'webExchange', 'GET', $params, null, null, array());
    }
    public function webGetRestApi($params = array()) {
        return $this->request('rest-api', 'web', 'GET', $params, null, null, array());
    }
    public function publicGetV1Symbols($params = array()) {
        return $this->request('v1/symbols', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1SymbolsDetailsSymbol($params = array()) {
        return $this->request('v1/symbols/details/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1StakingRates($params = array()) {
        return $this->request('v1/staking/rates', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1PubtickerSymbol($params = array()) {
        return $this->request('v1/pubticker/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV2TickerSymbol($params = array()) {
        return $this->request('v2/ticker/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV2CandlesSymbolTimeframe($params = array()) {
        return $this->request('v2/candles/{symbol}/{timeframe}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1TradesSymbol($params = array()) {
        return $this->request('v1/trades/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1AuctionSymbol($params = array()) {
        return $this->request('v1/auction/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1AuctionSymbolHistory($params = array()) {
        return $this->request('v1/auction/{symbol}/history', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1Pricefeed($params = array()) {
        return $this->request('v1/pricefeed', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1BookSymbol($params = array()) {
        return $this->request('v1/book/{symbol}', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function publicGetV1EarnRates($params = array()) {
        return $this->request('v1/earn/rates', 'public', 'GET', $params, null, null, array("cost" => 5));
    }
    public function privatePostV1StakingUnstake($params = array()) {
        return $this->request('v1/staking/unstake', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1StakingStake($params = array()) {
        return $this->request('v1/staking/stake', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1StakingRewards($params = array()) {
        return $this->request('v1/staking/rewards', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1StakingHistory($params = array()) {
        return $this->request('v1/staking/history', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1OrderNew($params = array()) {
        return $this->request('v1/order/new', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1OrderCancel($params = array()) {
        return $this->request('v1/order/cancel', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1WrapSymbol($params = array()) {
        return $this->request('v1/wrap/{symbol}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1OrderCancelSession($params = array()) {
        return $this->request('v1/order/cancel/session', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1OrderCancelAll($params = array()) {
        return $this->request('v1/order/cancel/all', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1OrderStatus($params = array()) {
        return $this->request('v1/order/status', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Orders($params = array()) {
        return $this->request('v1/orders', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Mytrades($params = array()) {
        return $this->request('v1/mytrades', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Notionalvolume($params = array()) {
        return $this->request('v1/notionalvolume', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Tradevolume($params = array()) {
        return $this->request('v1/tradevolume', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ClearingNew($params = array()) {
        return $this->request('v1/clearing/new', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ClearingStatus($params = array()) {
        return $this->request('v1/clearing/status', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ClearingCancel($params = array()) {
        return $this->request('v1/clearing/cancel', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ClearingConfirm($params = array()) {
        return $this->request('v1/clearing/confirm', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Balances($params = array()) {
        return $this->request('v1/balances', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1BalancesStaking($params = array()) {
        return $this->request('v1/balances/staking', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1NotionalbalancesCurrency($params = array()) {
        return $this->request('v1/notionalbalances/{currency}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Transfers($params = array()) {
        return $this->request('v1/transfers', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1AddressesNetwork($params = array()) {
        return $this->request('v1/addresses/{network}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1DepositNetworkNewAddress($params = array()) {
        return $this->request('v1/deposit/{network}/newAddress', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1DepositCurrencyNewAddress($params = array()) {
        return $this->request('v1/deposit/{currency}/newAddress', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1WithdrawCurrency($params = array()) {
        return $this->request('v1/withdraw/{currency}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1AccountTransferCurrency($params = array()) {
        return $this->request('v1/account/transfer/{currency}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1PaymentsAddbank($params = array()) {
        return $this->request('v1/payments/addbank', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1PaymentsMethods($params = array()) {
        return $this->request('v1/payments/methods', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1PaymentsSenWithdraw($params = array()) {
        return $this->request('v1/payments/sen/withdraw', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1BalancesEarn($params = array()) {
        return $this->request('v1/balances/earn', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1EarnInterest($params = array()) {
        return $this->request('v1/earn/interest', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1EarnHistory($params = array()) {
        return $this->request('v1/earn/history', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ApprovedAddressesNetworkRequest($params = array()) {
        return $this->request('v1/approvedAddresses/{network}/request', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ApprovedAddressesAccountNetwork($params = array()) {
        return $this->request('v1/approvedAddresses/account/{network}', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1ApprovedAddressesNetworkRemove($params = array()) {
        return $this->request('v1/approvedAddresses/{network}/remove', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Account($params = array()) {
        return $this->request('v1/account', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1AccountCreate($params = array()) {
        return $this->request('v1/account/create', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1AccountList($params = array()) {
        return $this->request('v1/account/list', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Heartbeat($params = array()) {
        return $this->request('v1/heartbeat', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
    public function privatePostV1Roles($params = array()) {
        return $this->request('v1/roles', 'private', 'POST', $params, null, null, array("cost" => 1));
    }
}
