(self, item: dict, currency: Currency = None)
| 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 | """ |
nothing calls this directly
no test coverage detected