MCPcopy Create free account
hub / github.com/ccxt/ccxt / set_leverage

Method set_leverage

python/ccxt/hyperliquid.py:3592–3638  ·  view source on GitHub ↗

set the level of leverage for a market :param float leverage: the rate of leverage :param str symbol: unified market symbol :param dict [params]: extra parameters specific to the exchange API endpoint :param str [params.marginMode]: margin mode must be either

(self, leverage: int, symbol: Str = None, params={})

Source from the content-addressed store, hash-verified

3590 return response
3591
3592 def set_leverage(self, leverage: int, symbol: Str = None, params={}):
3593 """
3594 set the level of leverage for a market
3595 :param float leverage: the rate of leverage
3596 :param str symbol: unified market symbol
3597 :param dict [params]: extra parameters specific to the exchange API endpoint
3598 :param str [params.marginMode]: margin mode must be either [isolated, cross], default is cross
3599 :returns dict: response from the exchange
3600 """
3601 if symbol is None:
3602 raise ArgumentsRequired(self.id + ' setLeverage() requires a symbol argument')
3603 self.load_markets()
3604 market = self.market(symbol)
3605 marginMode = self.safe_string(params, 'marginMode', 'cross')
3606 isCross = (marginMode == 'cross')
3607 asset = self.parse_to_int(market['baseId'])
3608 nonce = self.milliseconds()
3609 params = self.omit(params, 'marginMode')
3610 updateAction = {
3611 'type': 'updateLeverage',
3612 'asset': asset,
3613 'isCross': isCross,
3614 'leverage': leverage,
3615 }
3616 vaultAddress = None
3617 vaultAddress, params = self.handle_option_and_params_2(params, 'setLeverage', 'vaultAddress', 'subAccountAddress')
3618 vaultAddress = self.format_vault_address(vaultAddress)
3619 signature = self.sign_l1_action(updateAction, nonce, vaultAddress)
3620 request = {
3621 'action': updateAction,
3622 'nonce': nonce,
3623 'signature': signature,
3624 # 'vaultAddress': vaultAddress,
3625 }
3626 if vaultAddress is not None:
3627 params = self.omit(params, 'vaultAddress')
3628 request['vaultAddress'] = vaultAddress
3629 response = self.privatePostExchange(request)
3630 #
3631 # {
3632 # 'response': {
3633 # 'type': 'default'
3634 # },
3635 # 'status': 'ok'
3636 # }
3637 #
3638 return response
3639
3640 def add_margin(self, symbol: str, amount: float, params={}) -> MarginModification:
3641 """

Callers

nothing calls this directly

Calls 11

marketMethod · 0.95
format_vault_addressMethod · 0.95
sign_l1_actionMethod · 0.95
ArgumentsRequiredClass · 0.90
safe_stringMethod · 0.80
parse_to_intMethod · 0.80
privatePostExchangeMethod · 0.65
load_marketsMethod · 0.45
millisecondsMethod · 0.45
omitMethod · 0.45

Tested by

no test coverage detected