You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
89 lines
3.5 KiB
89 lines
3.5 KiB
from huobi.constant import *
|
|
from huobi.model.etf.unitprice import UnitPrice
|
|
from huobi.utils import default_parse_list_dict
|
|
|
|
|
|
class EtfSwapList:
|
|
"""
|
|
The past creation and redemption.
|
|
|
|
:member
|
|
id: the operation Id.
|
|
gmt_created: The UNIX formatted timestamp in UTC of the operation.
|
|
currency: The ETF name.
|
|
amount: Creation or redemption amount.
|
|
type: The swap type. Creation or redemption.
|
|
status: The operation result
|
|
rate: The fee rate.
|
|
fee: The actual fee amount
|
|
|
|
point_card_amount: Discount from point card.
|
|
used_currency_list: For creation this is the list and amount of underlying assets used for ETF creation.
|
|
For redemption this is the amount of ETF used for redemption. The content is UnitPrice class.
|
|
obtain_currency_list: For creation this is the amount for ETF created.
|
|
For redemption this is the list and amount of underlying assets obtained. The content is UnitPrice class
|
|
"""
|
|
|
|
def __init__(self):
|
|
self.id = 0
|
|
self.gmt_created = 0
|
|
self.currency = ""
|
|
self.amount = 0.0
|
|
self.type = EtfSwapType.INVALID
|
|
self.status = 0
|
|
self.rate = 0.0
|
|
self.fee = 0.0
|
|
self.point_card_amount = 0.0
|
|
self.used_currency_list = list()
|
|
self.obtain_currency_list = list()
|
|
|
|
@staticmethod
|
|
def json_parse(dict_data):
|
|
if dict_data and len(dict_data):
|
|
detail = dict_data.get("detail", {})
|
|
dict_data.pop("detail")
|
|
etf_swap_obj = default_parse_list_dict(dict_data, EtfSwapList)
|
|
if detail and len(detail):
|
|
etf_swap_obj.rate = detail.get("rate", 0)
|
|
etf_swap_obj.fee = detail.get("fee", 0)
|
|
etf_swap_obj.point_card_amount = detail.get("point_card_amount", 0)
|
|
etf_swap_obj.used_currency_list = default_parse_list_dict(detail.get("used_currency_list"), UnitPrice, [])
|
|
etf_swap_obj.obtain_currency_list = default_parse_list_dict(detail.get("obtain_currency_list"), UnitPrice, [])
|
|
return etf_swap_obj
|
|
|
|
return None
|
|
|
|
@staticmethod
|
|
def json_parse_list(dict_data):
|
|
ret_list = list()
|
|
for item in dict_data:
|
|
item_obj = EtfSwapList.json_parse(item)
|
|
if item_obj is not None:
|
|
ret_list.append(item_obj)
|
|
|
|
return ret_list
|
|
|
|
|
|
def print_object(self, format_data=""):
|
|
from huobi.utils.print_mix_object import PrintBasic
|
|
PrintBasic.print_basic(self.id, format_data + "Operater Id")
|
|
PrintBasic.print_basic(self.gmt_created, format_data + "GMT Create Time")
|
|
PrintBasic.print_basic(self.currency, format_data + "Currency")
|
|
PrintBasic.print_basic(self.type, format_data + "Type")
|
|
PrintBasic.print_basic(self.amount, format_data + "Amount")
|
|
PrintBasic.print_basic(self.rate, format_data + "Rate")
|
|
PrintBasic.print_basic(self.fee, format_data + "Fee")
|
|
PrintBasic.print_basic(self.status, format_data + "Status")
|
|
PrintBasic.print_basic(self.point_card_amount, format_data + "Point Card Amount")
|
|
|
|
if len(self.used_currency_list):
|
|
PrintBasic.print_basic("used_currency_list as below:")
|
|
for row in self.used_currency_list:
|
|
row.print_object(format_data + "\t")
|
|
|
|
if len(self.obtain_currency_list):
|
|
PrintBasic.print_basic("obtain_currency_list as below:")
|
|
for row in self.obtain_currency_list:
|
|
row.print_object(format_data + "\t")
|
|
|