diff --git a/bfxapi/models/FundingCredit.py b/bfxapi/models/FundingCredit.py new file mode 100644 index 0000000..016d555 --- /dev/null +++ b/bfxapi/models/FundingCredit.py @@ -0,0 +1,86 @@ + +class FundingCreditModel: + ID = 0 + SYMBOL = 1 + SIDE = 2 + MTS_CREATE = 3 + MTS_UPDATE = 4 + AMOUNT = 5 + FLAGS = 6 + STATUS = 7 + RATE = 11 + PERIOD = 12 + MTS_OPENING = 13 + MTS_LAST_PAYOUT = 14 + NOTIFY = 15 + HIDDEN = 16 + RENEW = 18 + NO_CLOSE = 20 + POSITION_PAIR = 21 + +class FundingLoan: + """ + ID integer Offer ID + SYMBOL string The currency of the offer (fUSD, etc) + SIDE string "Lend" or "Loan" + MTS_CREATE int Millisecond Time Stamp when the offer was created + MSG_UPDATE int Millisecond Time Stamp when the offer was updated + AMOUNT float Amount the offer is for + FLAGS object future params object (stay tuned) + STATUS string Offer Status: ACTIVE, EXECUTED, PARTIALLY FILLED, CANCELED + RATE float Rate of the offer + PERIOD int Period of the offer + MTS_OPENING int Millisecond Time Stamp when funding opened + MTS_LAST_PAYOUT int Millisecond Time Stamp when last payout received + NOTIFY int 0 if false, 1 if true + HIDDEN int 0 if false, 1 if true + RENEW int 0 if false, 1 if true + NO_CLOSE int 0 if false, 1 if true Whether the funding will be closed when the position is closed + POSITION_PAIR string Pair of the position that the funding was used for + """ + + def __init__(self, id, symbol, side, mts_create, mts_update, amount, flags, status, rate, + period, mts_opening, mts_last_payout, notify, hidden, renew, no_close, position_pair): + self.id = id + self.symbol = symbol + self.side = side + self.mts_create = mts_create + self.mts_update = mts_update + self.amount = amount + self.flags = flags + self.status = status + self.rate = rate + self.period = period + self.mts_opening = mts_opening + self.mts_last_payout = mts_last_payout + self.notify = notify + self.hidden = hidden + self.renew = renew + self.no_close = no_close + self.position_pair = position_pair + + @staticmethod + def from_raw_credit(raw_credit): + id = raw_credit[FundingCreditModel.ID] + symbol = raw_credit[FundingCreditModel.SYMBOL] + side = raw_credit[FundingCreditModel.SIDE] + mts_create = raw_credit[FundingCreditModel.MTS_CREATE] + mts_update = raw_credit[FundingCreditModel.MTS_UPDATE] + amount = raw_credit[FundingCreditModel.AMOUNT] + flags = raw_credit[FundingCreditModel.FLAGS] + status = raw_credit[FundingCreditModel.STATUS] + rate = raw_credit[FundingCreditModel.RATE] + period = raw_credit[FundingCreditModel.PERIOD] + mts_opening = raw_credit[FundingCreditModel.MTS_OPENING] + mts_last_payout = raw_credit[FundingCreditModel.MTS_LAST_PAYOUT] + notify = raw_credit[FundingCreditModel.NOTIFY] + hidden = raw_credit[FundingCreditModel.HIDDEN] + renew = raw_credit[FundingCreditModel.RENEW] + no_close = raw_credit[FundingCreditModel.NO_CLOSE] + position_pair = raw_credit[FundingCreditModel.POSITION_PAIR] + return FundingLoan(id, symbol, side, mts_create, mts_update, amount, flags, status, rate, + period, mts_opening, mts_last_payout, notify, hidden, renew, no_close, position_pair) + + def __str__(self): + return "FundingCredit '{}' ".format( + self.symbol, self.id, self.rate, self.amount, self.period, self.status)