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

Method parse_ledger_entry

python/ccxt/ndax.py:1217–1269  ·  view source on GitHub ↗
(self, item: dict, currency: Currency = None)

Source from the content-addressed store, hash-verified

1215 return self.safe_string(types, type, type)
1216
1217 def parse_ledger_entry(self, item: dict, currency: Currency = None) -> LedgerEntry:
1218 #
1219 # {
1220 # "TransactionId": 2663709493,
1221 # "ReferenceId": 68,
1222 # "OMSId": 1,
1223 # "AccountId": 449,
1224 # "CR": 10.000000000000000000000000000,
1225 # "DR": 0.0000000000000000000000000000,
1226 # "Counterparty": 3,
1227 # "TransactionType": "Other",
1228 # "ReferenceType": "Deposit",
1229 # "ProductId": 1,
1230 # "Balance": 10.000000000000000000000000000,
1231 # "TimeStamp": 1607532331591
1232 # }
1233 #
1234 currencyId = self.safe_string(item, 'ProductId')
1235 currency = self.safe_currency(currencyId, currency)
1236 credit = self.safe_string(item, 'CR')
1237 debit = self.safe_string(item, 'DR')
1238 amount = None
1239 direction = None
1240 if Precise.string_lt(credit, '0'):
1241 amount = credit
1242 direction = 'in'
1243 elif Precise.string_lt(debit, '0'):
1244 amount = debit
1245 direction = 'out'
1246 before = None
1247 after = self.safe_string(item, 'Balance')
1248 if direction == 'out':
1249 before = Precise.string_add(after, amount)
1250 elif direction == 'in':
1251 before = Precise.string_max('0', Precise.string_sub(after, amount))
1252 timestamp = self.safe_integer(item, 'TimeStamp')
1253 return self.safe_ledger_entry({
1254 'info': item,
1255 'id': self.safe_string(item, 'TransactionId'),
1256 'direction': direction,
1257 'account': self.safe_string(item, 'AccountId'),
1258 'referenceId': self.safe_string(item, 'ReferenceId'),
1259 'referenceAccount': self.safe_string(item, 'Counterparty'),
1260 'type': self.parse_ledger_entry_type(self.safe_string(item, 'ReferenceType')),
1261 'currency': self.safe_currency_code(currencyId, currency),
1262 'amount': self.parse_number(amount),
1263 'before': self.parse_number(before),
1264 'after': self.parse_number(after),
1265 'status': 'ok',
1266 'timestamp': timestamp,
1267 'datetime': self.iso8601(timestamp),
1268 'fee': None,
1269 }, currency)
1270
1271 def fetch_ledger(self, code: Str = None, since: Int = None, limit: Int = None, params={}) -> List[LedgerEntry]:
1272 """

Callers

nothing calls this directly

Calls 12

safe_stringMethod · 0.80
safe_currencyMethod · 0.80
string_ltMethod · 0.80
string_addMethod · 0.80
string_maxMethod · 0.80
string_subMethod · 0.80
safe_integerMethod · 0.80
safe_ledger_entryMethod · 0.80
parse_numberMethod · 0.80
safe_currency_codeMethod · 0.45
iso8601Method · 0.45

Tested by

no test coverage detected