(self, entry: object, currency: Currency = None)
| 3852 | } |
| 3853 | |
| 3854 | def safe_ledger_entry(self, entry: object, currency: Currency = None): |
| 3855 | currency = self.safe_currency(None, currency) |
| 3856 | direction = self.safe_string(entry, 'direction') |
| 3857 | before = self.safe_string(entry, 'before') |
| 3858 | after = self.safe_string(entry, 'after') |
| 3859 | amount = self.safe_string(entry, 'amount') |
| 3860 | if amount is not None: |
| 3861 | if before is None and after is not None: |
| 3862 | before = Precise.string_sub(after, amount) |
| 3863 | elif before is not None and after is None: |
| 3864 | after = Precise.string_add(before, amount) |
| 3865 | if before is not None and after is not None: |
| 3866 | if direction is None: |
| 3867 | if Precise.string_gt(before, after): |
| 3868 | direction = 'out' |
| 3869 | if Precise.string_gt(after, before): |
| 3870 | direction = 'in' |
| 3871 | fee = self.safe_value(entry, 'fee') |
| 3872 | if fee is not None: |
| 3873 | fee['cost'] = self.safe_number(fee, 'cost') |
| 3874 | timestamp = self.safe_integer(entry, 'timestamp') |
| 3875 | info = self.safe_dict(entry, 'info', {}) |
| 3876 | return { |
| 3877 | 'id': self.safe_string(entry, 'id'), |
| 3878 | 'timestamp': timestamp, |
| 3879 | 'datetime': self.iso8601(timestamp), |
| 3880 | 'direction': direction, |
| 3881 | 'account': self.safe_string(entry, 'account'), |
| 3882 | 'referenceId': self.safe_string(entry, 'referenceId'), |
| 3883 | 'referenceAccount': self.safe_string(entry, 'referenceAccount'), |
| 3884 | 'type': self.safe_string(entry, 'type'), |
| 3885 | 'currency': currency['code'], |
| 3886 | 'amount': self.parse_number(amount), |
| 3887 | 'before': self.parse_number(before), |
| 3888 | 'after': self.parse_number(after), |
| 3889 | 'status': self.safe_string(entry, 'status'), |
| 3890 | 'fee': fee, |
| 3891 | 'info': info, |
| 3892 | } |
| 3893 | |
| 3894 | def safe_currency_structure(self, currency: object): |
| 3895 | # derive data from networks: deposit, withdraw, active, fee, limits, precision |
no test coverage detected