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

Method parse_ledger_entry

python/ccxt/coinbaseexchange.py:1636–1704  ·  view source on GitHub ↗
(self, item: dict, currency: Currency = None)

Source from the content-addressed store, hash-verified

1634 return self.safe_string(types, type, type)
1635
1636 def parse_ledger_entry(self, item: dict, currency: Currency = None) -> LedgerEntry:
1637 # {
1638 # "id": "12087495079",
1639 # "amount": "-0.0100000000000000",
1640 # "balance": "0.0645419900000000",
1641 # "created_at": "2021-10-28T17:14:32.593168Z",
1642 # "type": "transfer",
1643 # "details": {
1644 # "from": "2f74edf7-1440-4586-86dc-ae58c5693691",
1645 # "profile_transfer_id": "3ef093ad-2482-40d1-8ede-2f89cff5099e",
1646 # "to": "dda99503-4980-4b60-9549-0b770ee51336"
1647 # }
1648 # },
1649 # {
1650 # "id": "11740725774",
1651 # "amount": "-1.7565669701255000",
1652 # "balance": "0.0016490047745000",
1653 # "created_at": "2021-10-22T03:47:34.764122Z",
1654 # "type": "fee",
1655 # "details": {
1656 # "order_id": "ad06abf4-95ab-432a-a1d8-059ef572e296",
1657 # "product_id": "ETH-DAI",
1658 # "trade_id": "1740617"
1659 # }
1660 # }
1661 id = self.safe_string(item, 'id')
1662 amountString = self.safe_string(item, 'amount')
1663 direction = None
1664 afterString = self.safe_string(item, 'balance')
1665 beforeString = Precise.string_sub(afterString, amountString)
1666 if Precise.string_lt(amountString, '0'):
1667 direction = 'out'
1668 amountString = Precise.string_abs(amountString)
1669 else:
1670 direction = 'in'
1671 amount = self.parse_number(amountString)
1672 after = self.parse_number(afterString)
1673 before = self.parse_number(beforeString)
1674 timestamp = self.parse8601(self.safe_value(item, 'created_at'))
1675 type = self.parse_ledger_entry_type(self.safe_string(item, 'type'))
1676 code = self.safe_currency_code(None, currency)
1677 details = self.safe_value(item, 'details', {})
1678 account = None
1679 referenceAccount = None
1680 referenceId = None
1681 if type == 'transfer':
1682 account = self.safe_string(details, 'from')
1683 referenceAccount = self.safe_string(details, 'to')
1684 referenceId = self.safe_string(details, 'profile_transfer_id')
1685 else:
1686 referenceId = self.safe_string(details, 'order_id')
1687 status = 'ok'
1688 return self.safe_ledger_entry({
1689 'info': item,
1690 'id': id,
1691 'timestamp': timestamp,
1692 'datetime': self.iso8601(timestamp),
1693 'direction': direction,

Callers

nothing calls this directly

Calls 11

safe_stringMethod · 0.80
string_subMethod · 0.80
string_ltMethod · 0.80
string_absMethod · 0.80
parse_numberMethod · 0.80
safe_valueMethod · 0.80
safe_ledger_entryMethod · 0.80
parse8601Method · 0.45
safe_currency_codeMethod · 0.45
iso8601Method · 0.45

Tested by

no test coverage detected