mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 06:44:22 +01:00
Rewrite, edit and organize examples/rest demos.
This commit is contained in:
@@ -201,7 +201,7 @@ class RestAuthenticatedEndpoints(Middleware):
|
|||||||
"rate": rate, "period": period
|
"rate": rate, "period": period
|
||||||
}))
|
}))
|
||||||
|
|
||||||
def toggle_keep(self, type: Literal["credit", "loan"], ids: Optional[List[int]] = None, changes: Optional[Dict[int, bool]] = None) -> Notification[Literal[None]]:
|
def toggle_keep_funding(self, type: Literal["credit", "loan"], ids: Optional[List[int]] = None, changes: Optional[Dict[int, Literal[1, 2]]] = None) -> Notification[Literal[None]]:
|
||||||
return serializers._Notification[Literal[None]](None).parse(*self._POST("auth/w/funding/keep", body={
|
return serializers._Notification[Literal[None]](None).parse(*self._POST("auth/w/funding/keep", body={
|
||||||
"type": type,
|
"type": type,
|
||||||
"id": ids,
|
"id": ids,
|
||||||
|
|||||||
19
examples/rest/authenticated/claim_position.py
Normal file
19
examples/rest/authenticated/claim_position.py
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
# python -c "import examples.rest.authenticated.claim_position"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import Notification, PositionClaim
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
# Claims all active positions
|
||||||
|
for position in bfx.rest.auth.get_positions():
|
||||||
|
notification: Notification[PositionClaim] = bfx.rest.auth.claim_position(position.position_id)
|
||||||
|
claim: PositionClaim = notification.notify_info
|
||||||
|
print(f"Position: {position} | PositionClaim: {claim}")
|
||||||
44
examples/rest/authenticated/get_wallets.py
Normal file
44
examples/rest/authenticated/get_wallets.py
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
# python -c "import examples.rest.authenticated.get_wallets"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import List, Wallet, Transfer, \
|
||||||
|
DepositAddress, LightningNetworkInvoice, Withdrawal, \
|
||||||
|
Notification
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
# Gets all user's available wallets
|
||||||
|
wallets: List[Wallet] = bfx.rest.auth.get_wallets()
|
||||||
|
|
||||||
|
# Transfers funds (0.001 ETH) from exchange wallet to funding wallet
|
||||||
|
A: Notification[Transfer] = bfx.rest.auth.transfer_between_wallets(
|
||||||
|
from_wallet="exchange", to_wallet="funding", from_currency="ETH",
|
||||||
|
to_currency="ETH", amount=0.001)
|
||||||
|
|
||||||
|
print("Transfer:", A.notify_info)
|
||||||
|
|
||||||
|
# Retrieves the deposit address for bitcoin currency in exchange wallet.
|
||||||
|
B: Notification[DepositAddress] = bfx.rest.auth.get_deposit_address(
|
||||||
|
wallet="exchange", method="bitcoin", renew=False)
|
||||||
|
|
||||||
|
print("Deposit address:", B.notify_info)
|
||||||
|
|
||||||
|
# Generates a lightning network deposit invoice
|
||||||
|
C: Notification[LightningNetworkInvoice] = bfx.rest.auth.generate_deposit_invoice(
|
||||||
|
wallet="funding", currency="LNX", amount=0.001)
|
||||||
|
|
||||||
|
print("Lightning network invoice:", C.notify_info)
|
||||||
|
|
||||||
|
# Withdraws 1.0 UST from user's exchange wallet to address 0x742d35Cc6634C0532925a3b844Bc454e4438f44e
|
||||||
|
D: Notification[Withdrawal] = bfx.rest.auth.submit_wallet_withdrawal(
|
||||||
|
wallet="exchange", method="tetheruse", address="0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
|
||||||
|
amount=1.0)
|
||||||
|
|
||||||
|
print("Withdrawal:", D.notify_info)
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
# python -c "import examples.rest.authenticated.set_derivatives_position_collateral"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import DerivativePositionCollateral, DerivativePositionCollateralLimits
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
submit_order_notification = bfx.rest.auth.submit_order(
|
||||||
|
type="LIMIT",
|
||||||
|
symbol="tBTCF0:USTF0",
|
||||||
|
amount="0.015",
|
||||||
|
price="16700",
|
||||||
|
lev=10
|
||||||
|
)
|
||||||
|
|
||||||
|
print("New Order:", submit_order_notification.notify_info)
|
||||||
|
|
||||||
|
# Update the amount of collateral for tBTCF0:USTF0 derivative position
|
||||||
|
derivative_position_collateral: DerivativePositionCollateral = \
|
||||||
|
bfx.rest.auth.set_derivative_position_collateral(symbol="tBTCF0:USTF0", collateral=50.0)
|
||||||
|
|
||||||
|
print("Status:", bool(derivative_position_collateral.status))
|
||||||
|
|
||||||
|
# Calculate the minimum and maximum collateral that can be assigned to tBTCF0:USTF0.
|
||||||
|
derivative_position_collateral_limits: DerivativePositionCollateralLimits = \
|
||||||
|
bfx.rest.auth.get_derivative_position_collateral_limits(symbol="tBTCF0:USTF0")
|
||||||
|
|
||||||
|
print(f"Minimum collateral: {derivative_position_collateral_limits.min_collateral} | \
|
||||||
|
Maximum collateral: {derivative_position_collateral_limits.max_collateral}")
|
||||||
30
examples/rest/authenticated/submit_funding_offer.py
Normal file
30
examples/rest/authenticated/submit_funding_offer.py
Normal file
@@ -0,0 +1,30 @@
|
|||||||
|
# python -c "import examples.rest.authenticated.submit_funding_offer"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
from bfxapi.enums import FundingOfferType, Flag
|
||||||
|
from bfxapi.rest.types import Notification, FundingOffer
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
# Submit a new funding offer
|
||||||
|
notification: Notification[FundingOffer] = bfx.rest.auth.submit_funding_offer(
|
||||||
|
type=FundingOfferType.LIMIT,
|
||||||
|
symbol="fUSD",
|
||||||
|
amount=123.45,
|
||||||
|
rate=0.001,
|
||||||
|
period=2,
|
||||||
|
flags=Flag.HIDDEN
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Funding Offer notification:", notification)
|
||||||
|
|
||||||
|
# Get all fUSD active funding offers
|
||||||
|
offers = bfx.rest.auth.get_funding_offers(symbol="fUSD")
|
||||||
|
|
||||||
|
print("Offers (fUSD):", offers)
|
||||||
42
examples/rest/authenticated/submit_order.py
Normal file
42
examples/rest/authenticated/submit_order.py
Normal file
@@ -0,0 +1,42 @@
|
|||||||
|
# python -c "import examples.rest.authenticated.submit_order"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
from bfxapi.enums import OrderType, Flag
|
||||||
|
from bfxapi.rest.types import Notification, Order
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
# Submit a new order
|
||||||
|
submit_order_notification: Notification[Order] = bfx.rest.auth.submit_order(
|
||||||
|
type=OrderType.EXCHANGE_LIMIT,
|
||||||
|
symbol="tBTCUST",
|
||||||
|
amount=0.015,
|
||||||
|
price=10000,
|
||||||
|
flags=Flag.HIDDEN + Flag.OCO + Flag.CLOSE
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Submit order notification:", submit_order_notification)
|
||||||
|
|
||||||
|
order: Order = submit_order_notification.notify_info
|
||||||
|
|
||||||
|
# Update its amount and its price
|
||||||
|
update_order_notification: Notification[Order] = bfx.rest.auth.update_order(
|
||||||
|
id=order.id,
|
||||||
|
amount=0.020,
|
||||||
|
price=10150
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Update order notification:", update_order_notification)
|
||||||
|
|
||||||
|
# Cancel it by its ID
|
||||||
|
cancel_order_notification: Notification[Order] = bfx.rest.auth.cancel_order(
|
||||||
|
id=order.id
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Cancel order notification:", cancel_order_notification)
|
||||||
24
examples/rest/authenticated/toggle_keep_funding.py
Normal file
24
examples/rest/authenticated/toggle_keep_funding.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# python -c "import examples.rest.authenticated.toggle_keep_funding"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import List, FundingLoan, Notification
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
loans: List[FundingLoan] = bfx.rest.auth.get_funding_loans(symbol="fUSD")
|
||||||
|
|
||||||
|
# Set every loan's keep funding status to <off> (1: <on>, 2: <off>)
|
||||||
|
notification: Notification[None] = bfx.rest.auth.toggle_keep_funding(
|
||||||
|
funding_type="loan",
|
||||||
|
ids=[ loan.id for loan in loans ],
|
||||||
|
changes={ loan.id: 2 for loan in loans }
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Toggle keep funding notification:", notification)
|
||||||
@@ -1,19 +0,0 @@
|
|||||||
# python -c "import examples.rest.claim_position"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
open_margin_positions = bfx.rest.auth.get_positions()
|
|
||||||
|
|
||||||
# claim all positions
|
|
||||||
for position in open_margin_positions:
|
|
||||||
print(f"Position {position}")
|
|
||||||
claim = bfx.rest.auth.claim_position(position.position_id, amount=0.000001)
|
|
||||||
print(f"PositionClaim {claim.notify_info}")
|
|
||||||
@@ -1,32 +0,0 @@
|
|||||||
# python -c "import examples.rest.create_funding_offer"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
from bfxapi.enums import FundingOfferType, Flag
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
notification = bfx.rest.auth.submit_funding_offer(
|
|
||||||
type=FundingOfferType.LIMIT,
|
|
||||||
symbol="fUSD",
|
|
||||||
amount="123.45",
|
|
||||||
rate="0.001",
|
|
||||||
period=2,
|
|
||||||
flags=Flag.HIDDEN
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Offer notification:", notification)
|
|
||||||
|
|
||||||
offers = bfx.rest.auth.get_funding_offers(symbol="fUSD")
|
|
||||||
|
|
||||||
print("Offers:", offers)
|
|
||||||
|
|
||||||
# Cancel all funding offers
|
|
||||||
notification = bfx.rest.auth.cancel_all_funding_offers(currency="fUSD")
|
|
||||||
|
|
||||||
print(notification)
|
|
||||||
@@ -1,36 +0,0 @@
|
|||||||
# python -c "import examples.rest.create_order"
|
|
||||||
|
|
||||||
import os
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
from bfxapi.enums import OrderType, Flag
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create a new order
|
|
||||||
submitted_order = bfx.rest.auth.submit_order(
|
|
||||||
type=OrderType.EXCHANGE_LIMIT,
|
|
||||||
symbol="tBTCUST",
|
|
||||||
amount="0.015",
|
|
||||||
price="10000",
|
|
||||||
flags=Flag.HIDDEN + Flag.OCO + Flag.CLOSE
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Submit Order Notification:", submitted_order)
|
|
||||||
|
|
||||||
# Update it
|
|
||||||
updated_order = bfx.rest.auth.update_order(
|
|
||||||
id=submitted_order.notify_info.id,
|
|
||||||
amount="0.020",
|
|
||||||
price="10100"
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Update Order Notification:", updated_order)
|
|
||||||
|
|
||||||
# Delete it
|
|
||||||
canceled_order = bfx.rest.auth.cancel_order(id=submitted_order.notify_info.id)
|
|
||||||
|
|
||||||
print("Cancel Order Notification:", canceled_order)
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
# python -c "import examples.rest.derivatives"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
# Create a new order
|
|
||||||
submitted_order = bfx.rest.auth.submit_order(
|
|
||||||
symbol="tBTCF0:USTF0",
|
|
||||||
amount="0.015",
|
|
||||||
price="16700",
|
|
||||||
lev=10,
|
|
||||||
type="LIMIT"
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Submit Order Notification:", submitted_order)
|
|
||||||
|
|
||||||
# Get position collateral limits
|
|
||||||
limits = bfx.rest.auth.get_derivative_position_collateral_limits(symbol="tBTCF0:USTF0")
|
|
||||||
print(f"Limits {limits}")
|
|
||||||
|
|
||||||
# Update position collateral
|
|
||||||
response = bfx.rest.auth.set_derivative_position_collateral(symbol="tBTCF0:USTF0", collateral=50)
|
|
||||||
print(response.status)
|
|
||||||
|
|
||||||
@@ -1,28 +0,0 @@
|
|||||||
# python -c "import examples.rest.extra_calcs"
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST
|
|
||||||
)
|
|
||||||
|
|
||||||
t_symbol_response = bfx.rest.public.get_trading_market_average_price(
|
|
||||||
symbol="tBTCUSD",
|
|
||||||
amount=-100,
|
|
||||||
price_limit="20000.5"
|
|
||||||
)
|
|
||||||
|
|
||||||
print(t_symbol_response.price_avg)
|
|
||||||
|
|
||||||
f_symbol_response = bfx.rest.public.get_funding_market_average_price(
|
|
||||||
symbol="fUSD",
|
|
||||||
amount=100,
|
|
||||||
period=2,
|
|
||||||
rate_limit="0.00015"
|
|
||||||
)
|
|
||||||
|
|
||||||
print(f_symbol_response.rate_avg)
|
|
||||||
|
|
||||||
fx_rate = bfx.rest.public.get_fx_rate(ccy1="USD", ccy2="EUR")
|
|
||||||
|
|
||||||
print(fx_rate.current_rate)
|
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
# python -c "import examples.rest.funding_auto_renew"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
notification = bfx.rest.auth.toggle_auto_renew(
|
|
||||||
status=True,
|
|
||||||
currency="USD",
|
|
||||||
amount="150",
|
|
||||||
rate="0", # FRR
|
|
||||||
period=2
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Renew toggle notification:", notification)
|
|
||||||
@@ -1,123 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_authenticated_data"
|
|
||||||
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
now = int(round(time.time() * 1000))
|
|
||||||
|
|
||||||
|
|
||||||
def log_user_info():
|
|
||||||
user_info = bfx.rest.auth.get_user_info()
|
|
||||||
print(user_info)
|
|
||||||
|
|
||||||
|
|
||||||
def log_login_history():
|
|
||||||
login_history = bfx.rest.auth.get_login_history()
|
|
||||||
print(login_history)
|
|
||||||
|
|
||||||
|
|
||||||
def log_wallets():
|
|
||||||
wallets = bfx.rest.auth.get_wallets()
|
|
||||||
print("Wallets:")
|
|
||||||
[print(w) for w in wallets]
|
|
||||||
|
|
||||||
|
|
||||||
def log_orders():
|
|
||||||
orders = bfx.rest.auth.get_orders(symbol='tBTCUSD')
|
|
||||||
print("Orders:")
|
|
||||||
[print(o) for o in orders]
|
|
||||||
|
|
||||||
|
|
||||||
def log_orders_history():
|
|
||||||
orders = bfx.rest.auth.get_orders_history(symbol='tBTCUSD', start=0, end=now)
|
|
||||||
print("Orders:")
|
|
||||||
[print(o) for o in orders]
|
|
||||||
|
|
||||||
|
|
||||||
def log_positions():
|
|
||||||
positions = bfx.rest.auth.get_positions()
|
|
||||||
print("Positions:")
|
|
||||||
[print(p) for p in positions]
|
|
||||||
|
|
||||||
|
|
||||||
def log_trades():
|
|
||||||
trades = bfx.rest.auth.get_trades_history(symbol='tBTCUSD', start=0, end=now)
|
|
||||||
print("Trades:")
|
|
||||||
[print(t) for t in trades]
|
|
||||||
|
|
||||||
|
|
||||||
def log_order_trades():
|
|
||||||
order_id = 82406909127
|
|
||||||
trades = bfx.rest.auth.get_order_trades(symbol='tBTCUSD', id=order_id)
|
|
||||||
print("Trade orders:")
|
|
||||||
[print(t) for t in trades]
|
|
||||||
|
|
||||||
|
|
||||||
def log_funding_offers():
|
|
||||||
offers = bfx.rest.auth.get_funding_offers(symbol='fUSD')
|
|
||||||
print("Offers:")
|
|
||||||
[print(o) for o in offers]
|
|
||||||
|
|
||||||
|
|
||||||
def log_funding_offer_history():
|
|
||||||
offers = bfx.rest.auth.get_funding_offers_history(symbol='fUSD', start=0, end=now)
|
|
||||||
print("Offers history:")
|
|
||||||
[print(o) for o in offers]
|
|
||||||
|
|
||||||
|
|
||||||
def log_funding_loans():
|
|
||||||
loans = bfx.rest.auth.get_funding_loans(symbol='fUSD')
|
|
||||||
print("Funding loans:")
|
|
||||||
[print(l) for l in loans]
|
|
||||||
|
|
||||||
|
|
||||||
def log_funding_loans_history():
|
|
||||||
loans = bfx.rest.auth.get_funding_loans_history(symbol='fUSD', start=0, end=now)
|
|
||||||
print("Funding loan history:")
|
|
||||||
[print(l) for l in loans]
|
|
||||||
|
|
||||||
|
|
||||||
def log_funding_credits():
|
|
||||||
credits = bfx.rest.auth.get_funding_credits(symbol='fUSD')
|
|
||||||
print("Funding credits:")
|
|
||||||
[print(c) for c in credits]
|
|
||||||
|
|
||||||
|
|
||||||
def log_funding_credits_history():
|
|
||||||
credit = bfx.rest.auth.get_funding_credits_history(symbol='fUSD', start=0, end=now)
|
|
||||||
print("Funding credit history:")
|
|
||||||
[print(c) for c in credit]
|
|
||||||
|
|
||||||
def log_margin_info():
|
|
||||||
btcusd_margin_info = bfx.rest.auth.get_symbol_margin_info('tBTCUSD')
|
|
||||||
print(f"tBTCUSD margin info {btcusd_margin_info}")
|
|
||||||
|
|
||||||
sym_all_margin_info = bfx.rest.auth.get_all_symbols_margin_info()
|
|
||||||
print(f"Sym all margin info {sym_all_margin_info}")
|
|
||||||
|
|
||||||
base_margin_info = bfx.rest.auth.get_base_margin_info()
|
|
||||||
print(f"Base margin info {base_margin_info}")
|
|
||||||
|
|
||||||
def run():
|
|
||||||
log_user_info()
|
|
||||||
log_wallets()
|
|
||||||
log_orders()
|
|
||||||
log_orders_history()
|
|
||||||
log_positions()
|
|
||||||
log_trades()
|
|
||||||
log_order_trades()
|
|
||||||
log_funding_offers()
|
|
||||||
log_funding_offer_history()
|
|
||||||
log_funding_credits()
|
|
||||||
log_funding_credits_history()
|
|
||||||
log_margin_info()
|
|
||||||
|
|
||||||
run()
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_funding_info"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
print(bfx.rest.auth.get_funding_info(key="fUSD"))
|
|
||||||
@@ -1,13 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_funding_trades_history"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
print(bfx.rest.auth.get_funding_trades_history())
|
|
||||||
@@ -1,14 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_liquidations"
|
|
||||||
|
|
||||||
import time
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST
|
|
||||||
)
|
|
||||||
|
|
||||||
now = int(round(time.time() * 1000))
|
|
||||||
|
|
||||||
liquidations = bfx.rest.public.get_liquidations(start=0, end=now)
|
|
||||||
print(f"Liquidations: {liquidations}")
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_positions"
|
|
||||||
|
|
||||||
import os
|
|
||||||
import time
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
now = int(round(time.time() * 1000))
|
|
||||||
|
|
||||||
positions_snapshot = bfx.rest.auth.get_positions_snapshot(end=now, limit=50)
|
|
||||||
print(positions_snapshot)
|
|
||||||
|
|
||||||
positions_history = bfx.rest.auth.get_positions_history(end=now, limit=50)
|
|
||||||
print(positions_history)
|
|
||||||
|
|
||||||
positions_audit = bfx.rest.auth.get_positions_audit(end=now, limit=50)
|
|
||||||
print(positions_audit)
|
|
||||||
@@ -1,52 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_public_data"
|
|
||||||
|
|
||||||
import time
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST
|
|
||||||
)
|
|
||||||
|
|
||||||
now = int(round(time.time() * 1000))
|
|
||||||
|
|
||||||
|
|
||||||
def log_historical_candles():
|
|
||||||
candles = bfx.rest.public.get_candles_hist(start=0, end=now, resource='trade:1m:tBTCUSD')
|
|
||||||
print("Candles:")
|
|
||||||
[print(c) for c in candles]
|
|
||||||
|
|
||||||
|
|
||||||
def log_historical_trades():
|
|
||||||
trades = bfx.rest.public.get_t_trades(pair='tBTCUSD', start=0, end=now)
|
|
||||||
print("Trades:")
|
|
||||||
[print(t) for t in trades]
|
|
||||||
|
|
||||||
|
|
||||||
def log_books():
|
|
||||||
orders = bfx.rest.public.get_t_book(pair='BTCUSD', precision='P0')
|
|
||||||
print("Order book:")
|
|
||||||
[print(o) for o in orders]
|
|
||||||
|
|
||||||
|
|
||||||
def log_tickers():
|
|
||||||
tickers = bfx.rest.public.get_t_tickers(pairs=['BTCUSD'])
|
|
||||||
print("Tickers:")
|
|
||||||
print(tickers)
|
|
||||||
|
|
||||||
|
|
||||||
def log_derivative_status():
|
|
||||||
status = bfx.rest.public.get_derivatives_status('ALL')
|
|
||||||
print("Deriv status:")
|
|
||||||
print(status)
|
|
||||||
|
|
||||||
|
|
||||||
def run():
|
|
||||||
log_historical_candles()
|
|
||||||
log_historical_trades()
|
|
||||||
log_books()
|
|
||||||
log_tickers()
|
|
||||||
log_derivative_status()
|
|
||||||
|
|
||||||
|
|
||||||
run()
|
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# python -c "import examples.rest.get_pulse_data"
|
|
||||||
|
|
||||||
import time
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST
|
|
||||||
)
|
|
||||||
|
|
||||||
now = int(round(time.time() * 1000))
|
|
||||||
|
|
||||||
messages = bfx.rest.public.get_pulse_history(end=now, limit=100)
|
|
||||||
|
|
||||||
for message in messages:
|
|
||||||
print(f"Message: {message}")
|
|
||||||
print(message.content)
|
|
||||||
print(message.profile.picture)
|
|
||||||
|
|
||||||
profile = bfx.rest.public.get_pulse_profile("News")
|
|
||||||
print(f"Profile: {profile}")
|
|
||||||
print(f"Profile picture: {profile.picture}")
|
|
||||||
@@ -1,18 +0,0 @@
|
|||||||
# python -c "import examples.rest.increase_position"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
increase_info = bfx.rest.auth.get_increase_position_info(symbol="tBTCUSD", amount=0.0001)
|
|
||||||
print(increase_info)
|
|
||||||
|
|
||||||
# increase a margin position
|
|
||||||
notification = bfx.rest.auth.increase_position(symbol="tBTCUSD", amount=0.0001)
|
|
||||||
print(notification.notify_info)
|
|
||||||
@@ -1,26 +0,0 @@
|
|||||||
# python -c "import examples.rest.keep_taken_funding"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
loans = bfx.rest.auth.get_funding_loans(symbol="fUSD")
|
|
||||||
|
|
||||||
for loan in loans:
|
|
||||||
print(f"Loan {loan}")
|
|
||||||
|
|
||||||
notification = bfx.rest.auth.toggle_keep(
|
|
||||||
funding_type="loan",
|
|
||||||
ids=[loan.id],
|
|
||||||
changes={
|
|
||||||
loan.id: 2 # (1 if true, 2 if false)
|
|
||||||
}
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Funding keep notification:", notification)
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
# python -c "import examples.rest.merchant"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
customer_info = {
|
|
||||||
"nationality": "GB",
|
|
||||||
"resid_country": "DE",
|
|
||||||
"resid_city": "Berlin",
|
|
||||||
"resid_zip_code": 1,
|
|
||||||
"resid_street": "Timechain",
|
|
||||||
"full_name": "Satoshi",
|
|
||||||
"email": "satoshi3@bitfinex.com"
|
|
||||||
}
|
|
||||||
|
|
||||||
invoice = bfx.rest.merchant.submit_invoice(
|
|
||||||
amount=1,
|
|
||||||
currency="USD",
|
|
||||||
duration=864000,
|
|
||||||
order_id="order123",
|
|
||||||
customer_info=customer_info,
|
|
||||||
pay_currencies=["ETH"]
|
|
||||||
)
|
|
||||||
|
|
||||||
print(bfx.rest.merchant.get_invoices())
|
|
||||||
|
|
||||||
print(bfx.rest.merchant.get_invoice_count_stats(status="CREATED", format="Y"))
|
|
||||||
|
|
||||||
print(bfx.rest.merchant.get_invoice_earning_stats(currency="USD", format="Y"))
|
|
||||||
|
|
||||||
print(bfx.rest.merchant.get_currency_conversion_list())
|
|
||||||
|
|
||||||
print(bfx.rest.merchant.complete_invoice(
|
|
||||||
id=invoice.id,
|
|
||||||
pay_currency="ETH",
|
|
||||||
deposit_id=1
|
|
||||||
))
|
|
||||||
43
examples/rest/merchant/submit_invoice.py
Normal file
43
examples/rest/merchant/submit_invoice.py
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
# python -c "import examples.rest.merchant.submit_invoice"
|
||||||
|
|
||||||
|
import os
|
||||||
|
|
||||||
|
from bfxapi import Client, REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import InvoiceSubmission
|
||||||
|
|
||||||
|
bfx = Client(
|
||||||
|
REST_HOST=REST_HOST,
|
||||||
|
API_KEY=os.getenv("BFX_API_KEY"),
|
||||||
|
API_SECRET=os.getenv("BFX_API_SECRET")
|
||||||
|
)
|
||||||
|
|
||||||
|
customer_info = {
|
||||||
|
"nationality": "DE",
|
||||||
|
"residCountry": "GB",
|
||||||
|
"residCity": "London",
|
||||||
|
"residZipCode": "WC2H 7NA",
|
||||||
|
"residStreet": "5-6 Leicester Square",
|
||||||
|
"residBuildingNo": "23 A",
|
||||||
|
"fullName": "John Doe",
|
||||||
|
"email": "john@example.com"
|
||||||
|
}
|
||||||
|
|
||||||
|
invoice: InvoiceSubmission = bfx.rest.merchant.submit_invoice(
|
||||||
|
amount=1.0,
|
||||||
|
currency="USD",
|
||||||
|
order_id="test",
|
||||||
|
customer_info=customer_info,
|
||||||
|
pay_currencies=["ETH"],
|
||||||
|
duration=86400 * 10
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Invoice submission:", invoice)
|
||||||
|
|
||||||
|
print(bfx.rest.merchant.complete_invoice(
|
||||||
|
id=invoice.id,
|
||||||
|
pay_currency="ETH",
|
||||||
|
deposit_id=1
|
||||||
|
))
|
||||||
|
|
||||||
|
print(bfx.rest.merchant.get_invoices(limit=25))
|
||||||
24
examples/rest/public/book.py
Normal file
24
examples/rest/public/book.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# python -c "import examples.rest.public.book"
|
||||||
|
|
||||||
|
from bfxapi import Client, PUB_REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import List, TradingPairBook, TradingPairRawBook, \
|
||||||
|
FundingCurrencyBook, FundingCurrencyRawBook
|
||||||
|
|
||||||
|
bfx = Client(REST_HOST=PUB_REST_HOST)
|
||||||
|
|
||||||
|
t_book: List[TradingPairBook] = bfx.rest.public.get_t_book("tBTCUSD", precision="P0", len=25)
|
||||||
|
|
||||||
|
print("25 price points of tBTCUSD order book (with precision P0):", t_book)
|
||||||
|
|
||||||
|
t_raw_book: List[TradingPairRawBook] = bfx.rest.public.get_t_raw_book("tBTCUSD")
|
||||||
|
|
||||||
|
print("tBTCUSD raw order book:", t_raw_book)
|
||||||
|
|
||||||
|
f_book: List[FundingCurrencyBook] = bfx.rest.public.get_f_book("fUSD", precision="P0", len=25)
|
||||||
|
|
||||||
|
print("25 price points of fUSD order book (with precision P0):", f_book)
|
||||||
|
|
||||||
|
f_raw_book: List[FundingCurrencyRawBook] = bfx.rest.public.get_f_raw_book("fUSD")
|
||||||
|
|
||||||
|
print("fUSD raw order book:", f_raw_book)
|
||||||
18
examples/rest/public/conf.py
Normal file
18
examples/rest/public/conf.py
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
# python -c "import examples.rest.public.conf"
|
||||||
|
|
||||||
|
from bfxapi import Client, PUB_REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.enums import Config
|
||||||
|
|
||||||
|
bfx = Client(REST_HOST=PUB_REST_HOST)
|
||||||
|
|
||||||
|
print("Available configs:", [ config.value for config in Config ])
|
||||||
|
|
||||||
|
# Prints a map from symbols to their API symbols (pub:map:currency:sym)
|
||||||
|
print (bfx.rest.public.conf(Config.MAP_CURRENCY_SYM))
|
||||||
|
|
||||||
|
# Prints all the available exchange trading pairs (pub:list:pair:exchange)
|
||||||
|
print(bfx.rest.public.conf(Config.LIST_PAIR_EXCHANGE))
|
||||||
|
|
||||||
|
# Prints all the available funding currencies (pub:list:currency)
|
||||||
|
print(bfx.rest.public.conf(Config.LIST_CURRENCY))
|
||||||
@@ -1,10 +1,8 @@
|
|||||||
# python -c "import examples.rest.get_candles_hist"
|
# python -c "import examples.rest.public.get_candles_hist"
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
from bfxapi import Client, PUB_REST_HOST
|
||||||
|
|
||||||
bfx = Client(
|
bfx = Client(REST_HOST=PUB_REST_HOST)
|
||||||
REST_HOST=REST_HOST
|
|
||||||
)
|
|
||||||
|
|
||||||
print(f"Candles: {bfx.rest.public.get_candles_hist(symbol='tBTCUSD')}")
|
print(f"Candles: {bfx.rest.public.get_candles_hist(symbol='tBTCUSD')}")
|
||||||
|
|
||||||
24
examples/rest/public/pulse_endpoints.py
Normal file
24
examples/rest/public/pulse_endpoints.py
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
# python -c "import examples.rest.public.pulse_endpoints"
|
||||||
|
|
||||||
|
import datetime
|
||||||
|
|
||||||
|
from bfxapi import Client, PUB_REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import List, PulseMessage, PulseProfile
|
||||||
|
|
||||||
|
bfx = Client(REST_HOST=PUB_REST_HOST)
|
||||||
|
|
||||||
|
# POSIX timestamp in milliseconds (check https://currentmillis.com/)
|
||||||
|
end = datetime.datetime(2020, 5, 2).timestamp() * 1000
|
||||||
|
|
||||||
|
# Retrieves 25 pulse messages up to 2020/05/02
|
||||||
|
messages: List[PulseMessage] = bfx.rest.public.get_pulse_history(end=end, limit=25)
|
||||||
|
|
||||||
|
for message in messages:
|
||||||
|
print(f"Message author: {message.profile.nickname} ({message.profile.puid})")
|
||||||
|
print(f"Title: <{message.title}>")
|
||||||
|
print(f"Tags: {message.tags}\n")
|
||||||
|
|
||||||
|
profile: PulseProfile = bfx.rest.public.get_pulse_profile("News")
|
||||||
|
URL = profile.picture.replace("size", "small")
|
||||||
|
print(f"<{profile.nickname}>'s profile picture: https://s3-eu-west-1.amazonaws.com/bfx-pub/{URL}")
|
||||||
28
examples/rest/public/rest_calculation_endpoints.py
Normal file
28
examples/rest/public/rest_calculation_endpoints.py
Normal file
@@ -0,0 +1,28 @@
|
|||||||
|
# python -c "import examples.rest.public.rest_calculation_endpoints"
|
||||||
|
|
||||||
|
from bfxapi import Client, PUB_REST_HOST
|
||||||
|
|
||||||
|
from bfxapi.rest.types import TradingMarketAveragePrice, FundingMarketAveragePrice, FxRate
|
||||||
|
|
||||||
|
bfx = Client(REST_HOST=PUB_REST_HOST)
|
||||||
|
|
||||||
|
trading_market_average_price: TradingMarketAveragePrice = bfx.rest.public.get_trading_market_average_price(
|
||||||
|
symbol="tBTCUSD",
|
||||||
|
amount=-100,
|
||||||
|
price_limit=20000.5
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Average execution price for tBTCUSD:", trading_market_average_price.price_avg)
|
||||||
|
|
||||||
|
funding_market_average_price: FundingMarketAveragePrice = bfx.rest.public.get_funding_market_average_price(
|
||||||
|
symbol="fUSD",
|
||||||
|
amount=100,
|
||||||
|
period=2,
|
||||||
|
rate_limit=0.00015
|
||||||
|
)
|
||||||
|
|
||||||
|
print("Average execution rate for fUSD:", funding_market_average_price.rate_avg)
|
||||||
|
|
||||||
|
fx_rate: FxRate = bfx.rest.public.get_fx_rate(ccy1="USD", ccy2="EUR")
|
||||||
|
|
||||||
|
print("Exchange rate between USD and EUR:", fx_rate.current_rate)
|
||||||
17
examples/rest/public/trades.py
Normal file
17
examples/rest/public/trades.py
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
# python -c "import examples.rest.public.trades"
|
||||||
|
|
||||||
|
from bfxapi import Client, PUB_REST_HOST
|
||||||
|
from bfxapi.rest.enums import Sort
|
||||||
|
from bfxapi.rest.types import List, TradingPairTrade, FundingCurrencyTrade
|
||||||
|
|
||||||
|
bfx = Client(REST_HOST=PUB_REST_HOST)
|
||||||
|
|
||||||
|
t_trades: List[TradingPairTrade] = bfx.rest.public.get_t_trades("tBTCUSD", \
|
||||||
|
limit=15, sort=Sort.ASCENDING)
|
||||||
|
|
||||||
|
print("Latest 15 trades for tBTCUSD (in ascending order):", t_trades)
|
||||||
|
|
||||||
|
f_trades: List[FundingCurrencyTrade] = bfx.rest.public.get_f_trades("fUSD", \
|
||||||
|
limit=15, sort=Sort.DESCENDING)
|
||||||
|
|
||||||
|
print("Latest 15 trades for fUSD (in descending order):", f_trades)
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
# python -c "import examples.rest.return_taken_funding"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
loans = bfx.rest.auth.get_funding_loans(symbol="fUSD")
|
|
||||||
|
|
||||||
for loan in loans:
|
|
||||||
print(f"Loan {loan}")
|
|
||||||
|
|
||||||
notification = bfx.rest.auth.submit_funding_close(
|
|
||||||
id=loan.id
|
|
||||||
)
|
|
||||||
|
|
||||||
print("Funding close notification:", notification)
|
|
||||||
@@ -1,46 +0,0 @@
|
|||||||
# python -c "import examples.rest.transfer_wallet"
|
|
||||||
|
|
||||||
import os
|
|
||||||
|
|
||||||
from bfxapi.client import Client, REST_HOST
|
|
||||||
|
|
||||||
bfx = Client(
|
|
||||||
REST_HOST=REST_HOST,
|
|
||||||
API_KEY=os.getenv("BFX_API_KEY"),
|
|
||||||
API_SECRET=os.getenv("BFX_API_SECRET")
|
|
||||||
)
|
|
||||||
|
|
||||||
def transfer_wallet():
|
|
||||||
response = bfx.rest.auth.transfer_between_wallets(from_wallet="exchange", to_wallet="funding", from_currency="ETH", to_currency="ETH", amount=0.001)
|
|
||||||
print("Transfer:", response.notify_info)
|
|
||||||
|
|
||||||
def get_existing_deposit_address():
|
|
||||||
response = bfx.rest.auth.get_deposit_address(wallet="exchange", method="bitcoin", renew=False)
|
|
||||||
print("Address:", response.notify_info)
|
|
||||||
|
|
||||||
def create_new_deposit_address():
|
|
||||||
response = bfx.rest.auth.get_deposit_address(wallet="exchange", method="bitcoin", renew=True)
|
|
||||||
print("Address:", response.notify_info)
|
|
||||||
|
|
||||||
def withdraw():
|
|
||||||
# tetheruse = Tether (ERC20)
|
|
||||||
response = bfx.rest.auth.submit_wallet_withdrawal(wallet="exchange", method="tetheruse", amount=1, address="0x742d35Cc6634C0532925a3b844Bc454e4438f44e")
|
|
||||||
print("Address:", response.notify_info)
|
|
||||||
|
|
||||||
def create_lighting_network_deposit_address():
|
|
||||||
invoice = bfx.rest.auth.generate_deposit_invoice(wallet="funding", currency="LNX", amount=0.001)
|
|
||||||
print("Invoice:", invoice)
|
|
||||||
|
|
||||||
def get_movements():
|
|
||||||
movements = bfx.rest.auth.get_movements(currency="BTC")
|
|
||||||
print("Movements:", movements)
|
|
||||||
|
|
||||||
def run():
|
|
||||||
transfer_wallet()
|
|
||||||
get_existing_deposit_address()
|
|
||||||
create_new_deposit_address()
|
|
||||||
withdraw()
|
|
||||||
create_lighting_network_deposit_address()
|
|
||||||
get_movements()
|
|
||||||
|
|
||||||
run()
|
|
||||||
Reference in New Issue
Block a user