mirror of
https://github.com/aljazceru/bitfinex-api-py.git
synced 2025-12-19 06:44:22 +01:00
76 lines
2.5 KiB
Python
76 lines
2.5 KiB
Python
"""
|
|
Module used to describe movement data types
|
|
"""
|
|
|
|
import time
|
|
import datetime
|
|
|
|
class MovementModel:
|
|
"""
|
|
Enum used index the different values in a raw movement array
|
|
"""
|
|
|
|
ID = 0
|
|
CURRENCY = 1
|
|
CURRENCY_NAME = 2
|
|
MTS_STARTED = 5
|
|
MTS_UPDATED = 6
|
|
STATUS = 9
|
|
AMOUNT = 12
|
|
FEES = 13
|
|
DESTINATION_ADDRESS = 16
|
|
TRANSACTION_ID = 20
|
|
|
|
class Movement:
|
|
|
|
"""
|
|
ID String Movement identifier
|
|
CURRENCY String The symbol of the currency (ex. "BTC")
|
|
CURRENCY_NAME String The extended name of the currency (ex. "BITCOIN")
|
|
MTS_STARTED Date Movement started at
|
|
MTS_UPDATED Date Movement last updated at
|
|
STATUS String Current status
|
|
AMOUNT String Amount of funds moved
|
|
FEES String Tx Fees applied
|
|
DESTINATION_ADDRESS String Destination address
|
|
TRANSACTION_ID String Transaction identifier
|
|
"""
|
|
|
|
def __init__(self, mid, currency, mts_started, mts_updated, status, amount, fees, dst_address, tx_id):
|
|
self.id = mid
|
|
self.currency = currency
|
|
self.mts_started = mts_started
|
|
self.mts_updated = mts_updated
|
|
self.status = status
|
|
self.amount = amount
|
|
self.fees = fees
|
|
self.dst_address = dst_address
|
|
self.tx_id = tx_id
|
|
|
|
self.date = datetime.datetime.fromtimestamp(mts_started/1000.0)
|
|
|
|
|
|
@staticmethod
|
|
def from_raw_movement(raw_movement):
|
|
"""
|
|
Parse a raw movement object into a Movement object
|
|
@return Movement
|
|
"""
|
|
|
|
mid = raw_movement[MovementModel.ID]
|
|
currency = raw_movement[MovementModel.CURRENCY]
|
|
mts_started = raw_movement[MovementModel.MTS_STARTED]
|
|
mts_updated = raw_movement[MovementModel.MTS_UPDATED]
|
|
status = raw_movement[MovementModel.STATUS]
|
|
amount = raw_movement[MovementModel.AMOUNT]
|
|
fees = raw_movement[MovementModel.FEES]
|
|
dst_address = raw_movement[MovementModel.DESTINATION_ADDRESS]
|
|
tx_id = raw_movement[MovementModel.TRANSACTION_ID]
|
|
|
|
return Movement(mid, currency, mts_started, mts_updated, status, amount, fees, dst_address, tx_id)
|
|
|
|
def __str__(self):
|
|
''' Allow us to print the Movement object in a pretty format '''
|
|
text = "Movement <'{}' amount={} fees={} mts_created={} mts_updated={} status='{}' destination_address={} transaction_id={}>"
|
|
return text.format(self.currency, self.amount, self.fees,
|
|
self.mts_started, self.mts_updated, self.status, self.dst_address, self.tx_id) |