{ "info": { "author": "dYdX Trading Inc.", "author_email": "contact@dydx.exchange", "bugtrack_url": null, "classifiers": [ "Intended Audience :: Developers", "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent", "Programming Language :: Python", "Programming Language :: Python :: 2", "Programming Language :: Python :: 2.7", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Libraries :: Python Modules" ], "description": "

\n\n
\n \n CI\n \n \n PyPi\n \n \n License\n \n
\n\ndYdX Python API for Limit Orders\n\nThe library is currently tested against Python versions 2.7, 3.4, 3.5, and 3.6\n\n## Installation\n`dydx-python` is available on [PyPI](https://pypi.org/project/dydx-python). Install with `pip`:\n```\npip install dydx-python\n```\n\n## Documentation\n\nCheck the [dYdX developer docs](https://docs.dydx.exchange/#/api?id=orderbook) for the API endpoint.\n\n## Example Usage\n\n### Initializing the client\n\n```python\nfrom dydx.client import Client\nimport dydx.constants as consts\nimport dydx.util as utils\n\n# create a new client with a private key (string or bytearray)\nclient = Client(\n private_key='0x4f3edf983ac636a65a842ce7c78d9aa706d3b113bce9c46f30d7d21715b23b1d',\n node='https://parity.expotrading.com'\n)\n```\n\n### HTTP API Calls\n\n#### Trading Pairs\n\n```python\n# Get all trading pairs for dydx\npairs = client.get_pairs()\n'''\npairs = {\n \"pairs\": [\n {\n \"uuid\": \"83b69358-a05e-4048-bc11-204da54a8b19\",\n \"name\": \"DAI-WETH\",\n \"makerCurrencyUuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"takerCurrencyUuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"makerCurrency\": {\n \"symbol\": \"DAI\",\n \"contractAddress\": \"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359\",\n \"decimals\": 18,\n \"soloMarket\": 1,\n },\n \"takerCurrency\": {\n \"symbol\": \"WETH\",\n \"contractAddress\": \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n \"decimals\": 18,\n \"soloMarket\": 0,\n ...\n },\n ...\n },\n {\n \"uuid\": \"5a40f128-ced5-4947-ab10-2f5afee8e56b\",\n \"name\": \"WETH-DAI\",\n \"makerCurrencyUuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"takerCurrencyUuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"makerCurrency\": {\n \"uuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"symbol\": \"WETH\",\n \"contractAddress\": \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n \"decimals\": 18,\n \"soloMarket\": 0,\n ...\n },\n \"takerCurrency\": {\n \"uuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"symbol\": \"DAI\",\n \"contractAddress\": \"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359\",\n \"decimals\": 18,\n \"soloMarket\": 1,\n ...\n },\n ...\n }\n ]\n}\n'''\n```\n\n#### Account Balances\n\n```python\n# Get my on-chain balances\nmy_balances = client.get_my_balances()\n\n# Get on-chain balances of another account\nbalances = client.get_balances(\n address='0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1',\n number=0\n)\n\n'''\nbalances = {\n \"owner\": \"0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1\",\n \"number\": \"0\",\n \"uuid\": \"0db94de2-a77c-4e81-b6e5-677032344186\",\n \"balances\": {\n \"0\": {\n \"wei\": \"20000000893540864.968618118602975666\",\n \"expiresAt\": null,\n \"par\": \"19988408759132898\",\n ...\n },\n \"1\": {\n \"wei\": \"3000092108605235003.982412750027831584\",\n \"expiresAt\": null,\n \"par\": \"2895154605310571808\",\n ...\n },\n \"2\": {\n \"par\": 0,\n \"wei\": \"0\",\n \"expiresAt\": null,\n ...\n }\n }\n}\n'''\n```\n\n#### Open Orders\n\n```python\n# Get orders created by my account for both sides of the book\nmy_orders = client.get_my_orders(\n pairs=['WETH-DAI', 'DAI-WETH'],\n limit=None,\n startingBefore=None\n)\n\n# Get all orders for both sides of the book\nten_days_ago = datetime.datetime.now() - datetime.timedelta(days=10)\nall_orders = client.get_orders(\n pairs=['WETH-DAI', 'DAI-WETH'],\n makerAccountOwner=None, # optional\n makerAccountNumber=None, # optional\n limit=2, # optional\n startingBefore=ten_days_ago # optional\n)\n'''\norders = {\n \"orders\": [\n {\n \"uuid\": \"6c2d9196-8b18-4749-9c80-3a40135ce325\",\n \"id\": \"0x1bd537b8ccfa22c4d37e33062a5d88996819720b4748be5bd621c38f34d59708\",\n \"makerAccountOwner\": \"0x5f5a46a8471f60b1e9f2ed0b8fc21ba8b48887d8\",\n \"makerAccountNumber\": \"0\",\n \"status\": \"OPEN\",\n \"price\": \"0.01\",\n \"fillOrKill\": false,\n \"rawData\": \"...\",\n \"makerAmount\": \"10000000000000000000\",\n \"unfillableAt\": null,\n \"expiresAt\": \"2019-09-16T21:34:38.000Z\",\n \"unfillableReason\": null,\n \"takerAmount\": \"100000000000000000\",\n \"makerAmountRemaining\": \"10000000000000000000\",\n \"orderType\": \"dydexLimitV1\",\n \"takerAmountRemaining\": \"100000000000000000\",\n \"createdAt\": \"2019-08-19T21:34:41.626Z\",\n \"pairUuid\": \"83b69358-a05e-4048-bc11-204da54a8b19\",\n \"pair\": {\n \"name\": \"DAI-WETH\",\n ...\n },\n \"fills\": []\n },\n { ... }\n ]\n}\n'''\n```\n\n#### Historical Fills\n\n```python\n# Get fills created by my account for both sides of the orderbook\nmy_fills = client.get_my_fills(\n pairs=['WETH-DAI', 'DAI-WETH'],\n limit=None, # optional\n startingBefore=None # optional\n)\n\n# Get all fills from one side of the book\nall_fills = client.get_fills(\n pairs=['WETH-DAI'], # 'DAI-WETH' side of the book is not included\n makerAccountOwner='0x5F5A46a8471F60b1E9F2eD0b8fc21Ba8b48887D8', # optional\n makerAccountNumber=0, # optional\n limit=2, # optional\n startingBefore=None # optional\n)\n'''\nfills = {\n \"fills\": [\n {\n \"uuid\": \"29c11f80-3ccc-42f7-bc50-4bbebf1e4974\",\n \"messageId\": \"f911b6da-fc4c-474e-bd2d-d00bb9b6c14d\",\n \"status\": \"CONFIRMED\",\n \"orderId\": \"0x692160665bf33f072fe9f54103c171ef1572a0d067b4378f373072c8c5450d7d\",\n \"transactionSender\": \"0xf809e07870dca762b9536d61a4fbef1a17178092\",\n \"transactionNonce\": \"766\",\n \"transactionHash\": \"0x2a2923a6343a2aa7a454e0453ce824dbdd99679eaa6e1670c40314ed7d3472e6\",\n \"fillAmount\": \"100000000000000000\",\n \"createdAt\": \"2019-08-19T21:38:48.586Z\",\n \"order\": {\n \"uuid\": \"8e74f27e-d622-4e75-bddf-77640116bc93\",\n \"id\": \"0x692160665bf33f072fe9f54103c171ef1572a0d067b4378f373072c8c5450d7d\",\n \"makerAccountOwner\": \"0x5f5a46a8471f60b1e9f2ed0b8fc21ba8b48887d8\",\n \"makerAccountNumber\": \"0\",\n \"status\": \"OPEN\",\n \"price\": \"191.5\",\n \"fillOrKill\": false,\n \"rawData\": \"...\",\n \"makerAmount\": \"120000000000000000\",\n \"unfillableAt\": \"2019-08-19T23:53:19.627Z\",\n \"expiresAt\": \"2019-09-12T23:45:24.000Z\",\n \"unfillableReason\": \"USER_CANCELED\",\n \"takerAmount\": \"22980000000000000000\",\n \"makerAmountRemaining\": \"15500000000000000\",\n \"orderType\": \"dydexLimitV1\",\n \"takerAmountRemaining\": \"2968250000000000000\",\n \"createdAt\": \"2019-08-15T23:45:26.564Z\",\n \"pairUuid\": \"5a40f128-ced5-4947-ab10-2f5afee8e56b\",\n \"pair\": {\n \"name\": \"WETH-DAI\",\n ...\n }\n }\n },\n {\n ...\n }\n ...\n ]\n}\n'''\n\n# Get one order by id\norder = client.get_order(\n\torderId,\n)\n'''\norder = {\n\torder = {\n\t\t\"uuid\": \"6c2d9196-8b18-4749-9c80-3a40135ce325\",\n\t\t\"id\": \"0x1bd537b8ccfa22c4d37e33062a5d88996819720b4748be5bd621c38f34d59708\",\n\t\t\"makerAccountOwner\": \"0x5f5a46a8471f60b1e9f2ed0b8fc21ba8b48887d8\",\n\t\t\"makerAccountNumber\": \"0\",\n\t\t\"status\": \"OPEN\",\n\t\t\"price\": \"0.01\",\n\t\t\"fillOrKill\": false,\n\t\t\"rawData\": \"...\",\n\t\t\"makerAmount\": \"10000000000000000000\",\n\t\t\"unfillableAt\": null,\n\t\t\"expiresAt\": \"2019-09-16T21:34:38.000Z\",\n\t\t\"unfillableReason\": null,\n\t\t\"takerAmount\": \"100000000000000000\",\n\t\t\"makerAmountRemaining\": \"10000000000000000000\",\n\t\t\"orderType\": \"dydexLimitV1\",\n\t\t\"takerAmountRemaining\": \"100000000000000000\",\n\t\t\"createdAt\": \"2019-08-19T21:34:41.626Z\",\n\t\t\"pairUuid\": \"83b69358-a05e-4048-bc11-204da54a8b19\",\n\t\t\"pair\": {\n\t\t\t\"name\": \"DAI-WETH\",\n\t\t\t...\n\t\t},\n\t\t\"fills\": []\n\t}\n}\n'''\n```\n\n#### Historical Trades\n\n```python\n# Get trades created by my account for both sides of the orderbook\nmy_trades = client.get_my_trades(\n pairs=['WETH-DAI', 'DAI-WETH'],\n limit=None, # optional\n startingBefore=None # optional\n)\n\n# Get all trades from one side of the book\nall_trades = client.get_trades(\n pairs=['WETH-DAI'], # 'DAI-WETH' side of the book is not included\n makerAccountOwner='0x5F5A46a8471F60b1E9F2eD0b8fc21Ba8b48887D8', # optional\n makerAccountNumber=0, # optional\n limit=2, # optional\n startingBefore=None # optional\n)\n'''\ntrades = {\n \"trades\": [\n {\n \"uuid\": \"9c575414-503f-4d19-97ba-7e329ce7c1f0\",\n \"transactionSender\": \"0xf809e07870dca762b9536d61a4fbef1a17178092\",\n \"transactionNonce\": \"2036\",\n \"transactionHash\": \"0x6376e4af2c2429a1f9fdb0bd46d022c074713c58007f4c36825ed2228cbf6ce2\",\n \"status\": \"CONFIRMED\",\n \"price\": \"200\",\n \"makerAmount\": \"100\",\n \"takerAmount\": \"201500\",\n \"makerOrderId\": \"0xb5576698cd7ecca927bba833c60e66ae55585c3f9a722cef5fe6fd5cf80eee2a\",\n \"takerOrderId\": \"0x20cab002ade434d4e21cc7ff6144339c4b4f199bd1d35ec93813b19c7a03162b\",\n \"createdAt\": \"2019-08-27T21:34:12.619Z\",\n \"updatedAt\": \"2019-08-27T21:35:14.054Z\",\n \"takerOrder\": {\n \"uuid\": \"3ed110f1-a98b-462f-9a41-a04e6e0da94c\",\n \"id\": \"0x20cab002ade434d4e21cc7ff6144339c4b4f199bd1d35ec93813b19c7a03162b\",\n \"makerAccountOwner\": \"0x5f5a46a8471f60b1e9f2ed0b8fc21ba8b48887d8\",\n \"makerAccountNumber\": \"0\",\n \"status\": \"PARTIALLY_FILLED\",\n \"price\": \"0.004962779156327543424317617866004962779156327543424317617866004962779156327543\",\n \"fillOrKill\": false,\n \"rawData\": \"{\\\"makerMarket\\\":\\\"1\\\",\\\"takerMarket\\\":\\\"0\\\",\\\"makerAccountNumber\\\":\\\"0\\\",\\\"takerAccountNumber\\\":\\\"0\\\",\\\"makerAccountOwner\\\":\\\"0x5F5A46a8471F60b1E9F2eD0b8fc21Ba8b48887D8\\\",\\\"takerAccountOwner\\\":\\\"0xf809e07870dca762B9536d61A4fBEF1a17178092\\\",\\\"makerAmount\\\":\\\"2015000000000000000\\\",\\\"takerAmount\\\":\\\"10000000000000000\\\",\\\"salt\\\":\\\"98520959837884420232461297527105290253597439542504267862519345092558369505856\\\",\\\"expiration\\\":\\\"1569360848\\\",\\\"typedSignature\\\":\\\"0xf26210e77f8ed100c88ba7ab8c3a3132506805c0b7e14a2ba0fb7ea2b8edd659705525b2e98460e3c23ebda83975b668aab287d4c588196eb7e607bba87545a61b00\\\"}\",\n \"makerAmount\": \"2015000000000000000\",\n \"unfillableAt\": null,\n \"expiresAt\": \"2019-09-24T21:34:08.000Z\",\n \"unfillableReason\": null,\n \"clientId\": null,\n \"takerAmount\": \"10000000000000000\",\n \"makerAmountRemaining\": \"2014999999999798500\",\n \"orderType\": \"dydexLimitV1\",\n \"takerAmountRemaining\": \"9999999999999000\",\n \"createdAt\": \"2019-08-27T21:34:10.906Z\",\n \"updatedAt\": \"2019-08-27T21:34:12.648Z\",\n \"deletedAt\": null,\n \"pairUuid\": \"83b69358-a05e-4048-bc11-204da54a8b19\",\n \"pair\": {\n \"uuid\": \"83b69358-a05e-4048-bc11-204da54a8b19\",\n \"name\": \"DAI-WETH\",\n \"createdAt\": \"2018-08-24T16:26:46.963Z\",\n \"updatedAt\": \"2018-08-24T16:26:46.963Z\",\n \"deletedAt\": null,\n \"makerCurrencyUuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"takerCurrencyUuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"makerCurrency\": {\n \"uuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"symbol\": \"DAI\",\n \"contractAddress\": \"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359\",\n \"decimals\": 18,\n \"soloMarket\": 1,\n \"createdAt\": \"2018-08-24T16:26:46.904Z\",\n \"updatedAt\": \"2018-08-24T16:26:46.904Z\",\n \"deletedAt\": null\n },\n \"takerCurrency\": {\n \"uuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"symbol\": \"WETH\",\n \"contractAddress\": \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n \"decimals\": 18,\n \"soloMarket\": 0,\n \"createdAt\": \"2018-08-24T16:26:46.683Z\",\n \"updatedAt\": \"2018-08-24T16:26:46.683Z\",\n \"deletedAt\": null\n }\n }\n },\n \"makerOrder\": {\n \"uuid\": \"cd764c34-5198-48d7-a167-8ef120c93a4b\",\n \"id\": \"0xb5576698cd7ecca927bba833c60e66ae55585c3f9a722cef5fe6fd5cf80eee2a\",\n \"makerAccountOwner\": \"0xa33d2b7ad08cb84784a4db70fe7429eb603774e2\",\n \"makerAccountNumber\": \"0\",\n \"status\": \"FILLED\",\n \"price\": \"200\",\n \"fillOrKill\": false,\n \"rawData\": \"{\\\"makerMarket\\\":\\\"0\\\",\\\"takerMarket\\\":\\\"1\\\",\\\"makerAccountNumber\\\":\\\"0\\\",\\\"takerAccountNumber\\\":\\\"0\\\",\\\"makerAccountOwner\\\":\\\"0xa33d2b7ad08cb84784a4db70fe7429eb603774e2\\\",\\\"takerAccountOwner\\\":\\\"0xf809e07870dca762b9536d61a4fbef1a17178092\\\",\\\"makerAmount\\\":\\\"100\\\",\\\"takerAmount\\\":\\\"20000\\\",\\\"salt\\\":\\\"71396665083958089451142428285242792093549457850088753846410228331338822485995\\\",\\\"expiration\\\":\\\"0\\\",\\\"typedSignature\\\":\\\"0xfa843b61052d5ac28b7c47acdd0bcf568113eadead435f9f34b474a4fbeab8cd4c88ca7823ac0162c1081d081a50bcfe523dba2dff3b26f98d38c81aa9aad6e21c01\\\"}\",\n \"makerAmount\": \"100\",\n \"unfillableAt\": \"2019-08-27T21:34:12.640Z\",\n \"expiresAt\": null,\n \"unfillableReason\": \"ENTIRELY_FILLED\",\n \"clientId\": null,\n \"takerAmount\": \"20000\",\n \"makerAmountRemaining\": \"0\",\n \"orderType\": \"dydexLimitV1\",\n \"takerAmountRemaining\": \"0\",\n \"createdAt\": \"2019-08-12T21:10:12.936Z\",\n \"updatedAt\": \"2019-08-27T21:34:12.640Z\",\n \"deletedAt\": null,\n \"pairUuid\": \"5a40f128-ced5-4947-ab10-2f5afee8e56b\",\n \"pair\": {\n \"uuid\": \"5a40f128-ced5-4947-ab10-2f5afee8e56b\",\n \"name\": \"WETH-DAI\",\n \"createdAt\": \"2018-08-24T16:26:46.963Z\",\n \"updatedAt\": \"2018-08-24T16:26:46.963Z\",\n \"deletedAt\": null,\n \"makerCurrencyUuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"takerCurrencyUuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"makerCurrency\": {\n \"uuid\": \"84298577-6a82-4057-8523-27b05d3f5b8c\",\n \"symbol\": \"WETH\",\n \"contractAddress\": \"0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2\",\n \"decimals\": 18,\n \"soloMarket\": 0,\n \"createdAt\": \"2018-08-24T16:26:46.683Z\",\n \"updatedAt\": \"2018-08-24T16:26:46.683Z\",\n \"deletedAt\": null\n },\n \"takerCurrency\": {\n \"uuid\": \"b656c441-68ab-4776-927c-d894f4d6483b\",\n \"symbol\": \"DAI\",\n \"contractAddress\": \"0x89d24a6b4ccb1b6faa2625fe562bdd9a23260359\",\n \"decimals\": 18,\n \"soloMarket\": 1,\n \"createdAt\": \"2018-08-24T16:26:46.904Z\",\n \"updatedAt\": \"2018-08-24T16:26:46.904Z\",\n \"deletedAt\": null\n }\n }\n }\n },\n {\n ...\n }\n ...\n ]\n}\n'''\n```\n\n#### Create an Order\n\n```python\n# Create order to SELL 10 ETH for 2000 DAI (a price of 200 DAI/ETH)\ncreated_order = client.create_order(\n makerMarket=consts.MARKET_WETH,\n takerMarket=consts.MARKET_DAI,\n makerAmount=utils.token_to_wei(10, consts.MARKET_WETH),\n takerAmount=utils.token_to_wei(2000, consts.MARKET_DAI)\n)\n'''\ncreated_order = {\n \"order\": {\n \"uuid\": \"c85fc2f9-8aba-4302-bac8-c0fafb4b5e9c\",\n \"id\": \"0x28676bc8f3b3ba651ccc928004f0fe315399a157bf57fd7e36188f7bc6172736\",\n \"makerAccountOwner\": \"0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1\",\n \"makerAccountNumber\": \"0\",\n \"status\": \"PENDING\",\n \"price\": \"200\",\n \"fillOrKill\": false,\n \"orderType\": \"dydexLimitV1\",\n \"makerAmount\": \"10000000000000000\",\n \"makerAmountRemaining\": \"10000000000000000\",\n \"takerAmount\": \"2000000000000000000\",\n \"takerAmountRemaining\": \"2000000000000000000\",\n \"expiresAt\": \"2019-09-17T01:07:21.000Z\",\n \"unfillableAt\": null,\n \"unfillableReason\": null,\n \"pair\": {\n \"name\": \"WETH-DAI\",\n ...\n },\n ...\n }\n}\n'''\n```\n\n#### Cancel an Order\n\n```python\n# Cancel the previously created order\norder_hash = created_order['order']['id']\ncanceled_order = client.cancel_order(\n hash=order_hash\n)\n'''\ncanceled_order = {\n \"order\": {\n \"uuid\": \"16746923-10e4-4d30-92d9-1d1b16b52009\",\n \"id\": \"0xbee3de265bed729a7b67a0393277508f89a58cb14c7789fbb826532fb93b2eaf\",\n \"makerAccountOwner\": \"0x90F8bf6A479f320ead074411a4B0e7944Ea8c9C1\",\n \"makerAccountNumber\": \"0\",\n \"status\": \"OPEN\",\n \"price\": \"200\",\n \"fillOrKill\": false,\n \"orderType\": \"dydexLimitV1\",\n \"makerAmount\": \"10000000000000000\",\n \"makerAmountRemaining\": \"10000000000000000\",\n \"takerAmount\": \"2000000000000000000\",\n \"takerAmountRemaining\": \"2000000000000000000\",\n \"expiresAt\": \"2019-09-17T01:09:55.000Z\",\n \"unfillableAt\": null,\n \"unfillableReason\": null,\n \"pair\": {\n \"name\": \"WETH-DAI\",\n ...\n },\n ...\n }\n}\n'''\n```\n\n### Ethereum Transactions\n\n```python\n# deposit 10 ETH\n# does not require set_allowance\ntx_hash = client.eth.deposit(\n market=consts.MARKET_WETH,\n wei=utils.token_to_wei(10, consts.MARKET_WETH)\n)\nreceipt = client.eth.get_receipt(tx_hash)\n\n\n# deposit 100 DAI\ntx_hash = client.eth.set_allowance(market=consts.MARKET_DAI) # must only be called once, ever\nreceipt = client.eth.get_receipt(tx_hash)\n\ntx_hash = client.eth.deposit(\n market=consts.MARKET_DAI,\n wei=utils.token_to_wei(100, consts.MARKET_DAI)\n)\nreceipt = client.eth.get_receipt(tx_hash)\n\n\n# deposit 100 USDC\ntx_hash = client.eth.set_allowance(market=consts.MARKET_USDC) # must only be called once, ever\nreceipt = client.eth.get_receipt(tx_hash)\n\ntx_hash = client.eth.deposit(\n market=consts.MARKET_USDC,\n wei=utils.token_to_wei(100, consts.MARKET_USDC)\n)\nreceipt = client.eth.get_receipt(tx_hash)\n\n\n# withdraw 50 USDC\ntx_hash = client.eth.withdraw(\n market=consts.MARKET_USDC,\n wei=utils.token_to_wei(50, consts.MARKET_USDC)\n)\nreceipt = client.eth.get_receipt(tx_hash)\n\n\n# withdraw all DAI (including interest)\ntx_hash = client.eth.withdraw_to_zero(market=consts.MARKET_DAI)\nreceipt = client.eth.get_receipt(tx_hash)\n```\n\n### Ethereum Getters\n\nGetting information directly from the blockchain by querying a node\n\n```python\n# get the USD value of one atomic unit of DAI\ndai_price = client.eth.get_oracle_price(consts.MARKET_DAI)\n\n# get dYdX balances\nbalances = client.eth.get_my_balances()\n'''\nbalances = [\n -91971743707894,\n 3741715702031854553560,\n 2613206278\n]\n'''\n\n# get Wallet balances\nbalance = client.eth.get_my_wallet_balance(consts.MARKET_DAI)\n'''\nbalance = 1000000000000000000\n'''\n\n# get dYdX account collateralization\ncollateralization = client.eth.get_my_collateralization()\n'''\ncollateralization = 2.5 or float('inf')\n'''\n\n# collateralization must remain above the minimum to prevent liquidation\nassert(collateralization > consts.MINIMUM_COLLATERALIZATION)\n'''\nconsts.MINIMUM_COLLATERALIZATION = 1.15\n'''\n```\n\n## Testing\n```\n# Install the requirements\npip install -r requirements.txt\n\n# Run the tests\ndocker-compose up\ntox\n```\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/dydxprotocol/dydx-python", "keywords": "dydx exchange rest api defi ethereum eth", "license": "Apache 2.0", "maintainer": "", "maintainer_email": "", "name": "dydx-python", "package_url": "https://pypi.org/project/dydx-python/", "platform": "", "project_url": "https://pypi.org/project/dydx-python/", "project_urls": { "Homepage": "https://github.com/dydxprotocol/dydx-python" }, "release_url": "https://pypi.org/project/dydx-python/0.4.1/", "requires_dist": [ "requests (==2.22.0)", "requests-mock (==1.6.0)", "six (==1.12)", "web3 (==5.0.0)", "eth-account (==0.4.0)", "pytest (<5.0.0,>=4.4.0)", "tox (==3.13.2)", "setuptools (==41.0.1)", "eth-keys" ], "requires_python": "", "summary": "dYdX Python REST API for Limit Orders", "version": "0.4.1" }, "last_serial": 5979917, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "d42133f9ee123a48792931309cb39e90", "sha256": "44551659ce6895fc90ca1124681b05295f275b71d8112a460bdb016f318a0ca0" }, "downloads": -1, "filename": "dydx_python-0.0.1-py3-none-any.whl", "has_sig": false, "md5_digest": "d42133f9ee123a48792931309cb39e90", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8927, "upload_time": "2019-08-01T22:02:21", "url": "https://files.pythonhosted.org/packages/3f/be/3d4f29815d940f4c7ffe10f3b2bd5df010a5c27abea3b7dbd9b5c68c6079/dydx_python-0.0.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b973577824b9fe1c3653b7e17a13016a", "sha256": "4106ebf74fcab439737be0eda237d65f12b7c9e61c5c4ff7dffcf85ea641d201" }, "downloads": -1, "filename": "dydx-python-0.0.1.tar.gz", "has_sig": false, "md5_digest": "b973577824b9fe1c3653b7e17a13016a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3849, "upload_time": "2019-08-01T22:02:23", "url": "https://files.pythonhosted.org/packages/54/3b/50c5020dcc9629f1e3ec5352d3c0102588d86d7dda74d30c39ce804af7ac/dydx-python-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "8e92b841f87ffdaa2f8cb2b257cf7450", "sha256": "93e34ff09bb27843408faca19efcbc24261b915b210d3083c6cd1e208bacf3c6" }, "downloads": -1, "filename": "dydx_python-0.0.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8e92b841f87ffdaa2f8cb2b257cf7450", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9066, "upload_time": "2019-08-01T22:13:10", "url": "https://files.pythonhosted.org/packages/13/de/d01608ff412a5806107127d1650eff17a3561c5db381b8ac1c0d33841518/dydx_python-0.0.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1432eb24da44bdf8710ffba234840594", "sha256": "3381886beeb349c29fce80bb2583dfdc6bcb17f95e0623efcea16c7fdaeeb56e" }, "downloads": -1, "filename": "dydx-python-0.0.2.tar.gz", "has_sig": false, "md5_digest": "1432eb24da44bdf8710ffba234840594", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3972, "upload_time": "2019-08-01T22:13:11", "url": "https://files.pythonhosted.org/packages/87/a6/cabc647e54954577e45cae91fc2c85883aa91d823a1075cfbeaa731d9e57/dydx-python-0.0.2.tar.gz" } ], "0.0.3": [ { "comment_text": "", "digests": { "md5": "a313e7c124c6d6c1cae6f154db161fe0", "sha256": "a5750fcc314726b9d3b32d116d56a32d11510cb1486b37f1bc72885270116221" }, "downloads": -1, "filename": "dydx_python-0.0.3-py3-none-any.whl", "has_sig": false, "md5_digest": "a313e7c124c6d6c1cae6f154db161fe0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9073, "upload_time": "2019-08-01T23:09:50", "url": "https://files.pythonhosted.org/packages/7e/dd/74a0867ab5245401957e0055038a7c2866b25798256b1cb2101838f2a937/dydx_python-0.0.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "25d0d7b209971acfce38ea5356a58bb5", "sha256": "daa7dcf5803ba8420e51e0c856995a15c81bd7341dc3632a1be9d4e184df7aa6" }, "downloads": -1, "filename": "dydx-python-0.0.3.tar.gz", "has_sig": false, "md5_digest": "25d0d7b209971acfce38ea5356a58bb5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3977, "upload_time": "2019-08-01T23:09:50", "url": "https://files.pythonhosted.org/packages/b6/15/62aa70810bea2c9a4e64ac8a6fd88fb1cb07277ac5f9faf7fde9ae3ad498/dydx-python-0.0.3.tar.gz" } ], "0.0.4": [ { "comment_text": "", "digests": { "md5": "9bb2a372e4f3033008507977fc6c9542", "sha256": "bebff71b123baa9b8b21c3191fdbfb36f84231ad8cb0af7ee70323c4b164dba1" }, "downloads": -1, "filename": "dydx_python-0.0.4-py3-none-any.whl", "has_sig": false, "md5_digest": "9bb2a372e4f3033008507977fc6c9542", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 9073, "upload_time": "2019-08-01T23:41:13", "url": "https://files.pythonhosted.org/packages/38/9e/b9bce243f4cf2cd191b00fd35e1908cc86034cc98ef20de4d21b73785e95/dydx_python-0.0.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "cebdaad5c037594dc1db7043483940a8", "sha256": "360818eb3960de1ca52b3aec5c08d2b4299bc00fbebc182e948f460d53eae2cb" }, "downloads": -1, "filename": "dydx-python-0.0.4.tar.gz", "has_sig": false, "md5_digest": "cebdaad5c037594dc1db7043483940a8", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3951, "upload_time": "2019-08-01T23:41:15", "url": "https://files.pythonhosted.org/packages/5c/a2/6d8bd1b3167c09fca1a455f8697bf76c30e132bfee521ebafde820600c82/dydx-python-0.0.4.tar.gz" } ], "0.1.0": [ { "comment_text": "", "digests": { "md5": "1efa319eb5331fb4ef507f8c57fd3691", "sha256": "394eca048e8ba3106d2d775f8e19988d8031417cd1c394ce03f8411842acce95" }, "downloads": -1, "filename": "dydx_python-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1efa319eb5331fb4ef507f8c57fd3691", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15870, "upload_time": "2019-08-09T01:05:23", "url": "https://files.pythonhosted.org/packages/c5/8a/2acd9c81400fac4a9abad58e0a96827ee90e7cfec7fe47d6ef29cbd54a21/dydx_python-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a75c06e345f2cdc63727d903ba4d37c5", "sha256": "c1fa34784e54611f1c202d801221296985c09270e1868032064ba95f0e0008c2" }, "downloads": -1, "filename": "dydx-python-0.1.0.tar.gz", "has_sig": false, "md5_digest": "a75c06e345f2cdc63727d903ba4d37c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9497, "upload_time": "2019-08-09T01:05:24", "url": "https://files.pythonhosted.org/packages/b0/2c/40d098bd87d97c10c4b29cb545871098abf5f6aa764e41d944157c8ff357/dydx-python-0.1.0.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "8951b03c77bb92b967cb3018569af0c7", "sha256": "f73ea1f89df31e402012c24224006b1a5a6b5b6aaa1394611187343b9ccaef75" }, "downloads": -1, "filename": "dydx_python-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "8951b03c77bb92b967cb3018569af0c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18028, "upload_time": "2019-08-19T06:51:04", "url": "https://files.pythonhosted.org/packages/15/25/b7c196486e89df9b159208c26813c06479ae14ff729df98ddbbb023def8a/dydx_python-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "974b455541701a1c4e323a25c9ef145f", "sha256": "fa02f3ce6ac9d4e42a99ee3f29195f1518bf7956bc2587f2da4df02d2175dfaf" }, "downloads": -1, "filename": "dydx-python-0.2.0.tar.gz", "has_sig": false, "md5_digest": "974b455541701a1c4e323a25c9ef145f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11488, "upload_time": "2019-08-19T06:51:05", "url": "https://files.pythonhosted.org/packages/fc/39/14394049ff5444e01a09431659bf27b12af51aadbce557822949913d8a8e/dydx-python-0.2.0.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "96366f6e62eb7987188addb4698cb067", "sha256": "997649e249c778532b720e4bccc5d337e19a438358634b84a749d7de4aefda18" }, "downloads": -1, "filename": "dydx_python-0.2.1-py3-none-any.whl", "has_sig": false, "md5_digest": "96366f6e62eb7987188addb4698cb067", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18260, "upload_time": "2019-08-19T16:49:16", "url": "https://files.pythonhosted.org/packages/02/d6/873820519fe900d379012e1dffd20cfadc455db99a63d64694ed536cb150/dydx_python-0.2.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76b689a3eed1e885c0d288c0d7a200fa", "sha256": "ca41b49dfb96f9ef4a35607f4b354854c709507d6578fea65c1ff8d8f92164e7" }, "downloads": -1, "filename": "dydx-python-0.2.1.tar.gz", "has_sig": false, "md5_digest": "76b689a3eed1e885c0d288c0d7a200fa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12444, "upload_time": "2019-08-19T16:49:18", "url": "https://files.pythonhosted.org/packages/dc/fb/293d41506251f10e4a8b589db239c60ce418fd48377edcc81c4083d5118e/dydx-python-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "c87796c83bebf4d8ce061f28028c7b23", "sha256": "d9c6a413179fb54f0c05d73922f5e5235039451f8cae9228f27deb6f5546a12f" }, "downloads": -1, "filename": "dydx_python-0.2.2-py3-none-any.whl", "has_sig": false, "md5_digest": "c87796c83bebf4d8ce061f28028c7b23", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 18413, "upload_time": "2019-08-19T17:43:24", "url": "https://files.pythonhosted.org/packages/47/3b/b8e4a772514a706f660bf99491e714b624cb4cd6c9aa9ea5f2bef19d21cf/dydx_python-0.2.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3f9269da97e648bcfa814d0f33c8aaf0", "sha256": "d408775a8709d23a825e06a358ad8b8bfc40d764a3bc4254b05b7f6383b0a27f" }, "downloads": -1, "filename": "dydx-python-0.2.2.tar.gz", "has_sig": false, "md5_digest": "3f9269da97e648bcfa814d0f33c8aaf0", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13072, "upload_time": "2019-08-19T17:43:26", "url": "https://files.pythonhosted.org/packages/1e/6b/a3f62f1507a188f0515a72b798e964413f7daa67b9098ddc57b2830ed8f3/dydx-python-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "01028cbd8611619c04ce901a098ca29a", "sha256": "9627a91dc57331166867f56b4b4cb3d73fdd1a6c57797c18e025cac6cef2b092" }, "downloads": -1, "filename": "dydx_python-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "01028cbd8611619c04ce901a098ca29a", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 21013, "upload_time": "2019-08-19T21:32:27", "url": "https://files.pythonhosted.org/packages/55/db/e06dff82e693431f04d50e5ff13a9f8931ce2b06186b1fe80e381bf50e5d/dydx_python-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "e3c1cc6b29cf77584f5c894f1d8747f5", "sha256": "05719ab0f84cd19f7822db60108339c6c474482fe8576679ce5f3a4627980d95" }, "downloads": -1, "filename": "dydx-python-0.2.3.tar.gz", "has_sig": false, "md5_digest": "e3c1cc6b29cf77584f5c894f1d8747f5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14885, "upload_time": "2019-08-19T21:32:28", "url": "https://files.pythonhosted.org/packages/9d/28/630c929dd5fda7cd971ca88c6b053a34c7dbd76416f3052b2eda98c2ff10/dydx-python-0.2.3.tar.gz" } ], "0.2.4": [ { "comment_text": "", "digests": { "md5": "1aea274caed4c35d39f727020aea0316", "sha256": "ffb33b1f1e6b02da406109f06e148f8080e425ac5b0774d9e6c8caf5ff4a61b0" }, "downloads": -1, "filename": "dydx_python-0.2.4-py3-none-any.whl", "has_sig": false, "md5_digest": "1aea274caed4c35d39f727020aea0316", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 24132, "upload_time": "2019-08-20T01:56:54", "url": "https://files.pythonhosted.org/packages/e1/26/e5e7bc8ab0b416c30c33dfd4c415e55e7751abae59b605437ebb74098f17/dydx_python-0.2.4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "62f229dbee9e4254e959029349be0097", "sha256": "49d3b1ecdaec6c952527c053e22cd7d5b9d7ea2b22aad221f245842ca00bc2ca" }, "downloads": -1, "filename": "dydx-python-0.2.4.tar.gz", "has_sig": false, "md5_digest": "62f229dbee9e4254e959029349be0097", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 20515, "upload_time": "2019-08-20T01:56:56", "url": "https://files.pythonhosted.org/packages/4e/59/3ec76f71c6584adf51c1eb82f747ea76cf487a0ea16f45bfc53978f6e30f/dydx-python-0.2.4.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "6b52cf200daa189618216abbafc2a08b", "sha256": "284c93975d17a3bbac9c675aa05b91f9b46b62a39d54d840efaa7f14cf86079c" }, "downloads": -1, "filename": "dydx_python-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6b52cf200daa189618216abbafc2a08b", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26844, "upload_time": "2019-09-03T20:10:25", "url": "https://files.pythonhosted.org/packages/92/28/168a771e118bee9018da7da7802f71ba4ef6e1b4add39e090c82028c294a/dydx_python-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5fff945ab97f158bc19c298ff542e6ef", "sha256": "9fc8cfa4cefde4fdd8ee8df4e4bc51362ef824cc957685bea6333aefa286e9b1" }, "downloads": -1, "filename": "dydx-python-0.3.0.tar.gz", "has_sig": false, "md5_digest": "5fff945ab97f158bc19c298ff542e6ef", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25304, "upload_time": "2019-09-03T20:10:27", "url": "https://files.pythonhosted.org/packages/5d/bb/1195559f5dbfb73e0d7d1903602d5b91dc1e1565cd2165f91932c61b2e13/dydx-python-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "4bfc195d79c881ea55a6787b9fbe7aed", "sha256": "13cc5284e290e8a6a0e3426bb592eae0d05591569811a98a1ea5b38d7357580c" }, "downloads": -1, "filename": "dydx_python-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "4bfc195d79c881ea55a6787b9fbe7aed", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 26981, "upload_time": "2019-09-05T22:16:15", "url": "https://files.pythonhosted.org/packages/3b/fd/2ecf21339152c98d53560513cc21132f86d23a695d458ccf5cafc833a479/dydx_python-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b40c4b5eb9a65640876856d5a57dc012", "sha256": "0328951e55d4bba9ea9dbbfe8c0a5a4cb45bf87f476a0ed0fbb405b02bc53111" }, "downloads": -1, "filename": "dydx-python-0.3.1.tar.gz", "has_sig": false, "md5_digest": "b40c4b5eb9a65640876856d5a57dc012", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24792, "upload_time": "2019-09-05T22:16:17", "url": "https://files.pythonhosted.org/packages/4e/97/fd6a661d7ad932f596139ae533b9c7a9f5140bf917dc12412a98d059124c/dydx-python-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "8c4b002c4d5bfae3db8d4e94eae21c7e", "sha256": "a03b32a121f6b55b199beb53468a67d7e329f330ed5120e3f561d5aa98ad4fd6" }, "downloads": -1, "filename": "dydx_python-0.3.2-py3-none-any.whl", "has_sig": false, "md5_digest": "8c4b002c4d5bfae3db8d4e94eae21c7e", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27033, "upload_time": "2019-09-13T18:34:05", "url": "https://files.pythonhosted.org/packages/a9/20/8c138673d04494a1fedded847f79e1d786b7f820bd6fe585f135544ff85e/dydx_python-0.3.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5c03d9d40185b74a447bd388df5e0cce", "sha256": "71d59b0046f197f86b46c36927ab28863d01723e66028bc46a51666e4fff1d7a" }, "downloads": -1, "filename": "dydx-python-0.3.2.tar.gz", "has_sig": false, "md5_digest": "5c03d9d40185b74a447bd388df5e0cce", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 25296, "upload_time": "2019-09-13T18:34:07", "url": "https://files.pythonhosted.org/packages/bd/7a/b736db20003ecc2cd90b8951b82e93751a54cc319a07bbfe086987704f1a/dydx-python-0.3.2.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "0b4d0bcce0b29e7de321bbad2f834531", "sha256": "7902f17764a7edbbd21581da2ba2f4e37ec23b005b527d6dd8eebd3d5a17f560" }, "downloads": -1, "filename": "dydx_python-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "0b4d0bcce0b29e7de321bbad2f834531", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29681, "upload_time": "2019-09-16T18:38:07", "url": "https://files.pythonhosted.org/packages/39/3b/f2f0737a4b6dad3342f3d44bbda06cfd6031bc1b93c78e9480387c1752f8/dydx_python-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "32c83384a3ed5fe931ef7a0ea277058a", "sha256": "11eecccfcd14ce4dd6f7fd9d9c8c38a5cb852a532d39111ac95fc80d64017656" }, "downloads": -1, "filename": "dydx-python-0.4.0.tar.gz", "has_sig": false, "md5_digest": "32c83384a3ed5fe931ef7a0ea277058a", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 23412, "upload_time": "2019-09-16T18:38:09", "url": "https://files.pythonhosted.org/packages/93/5e/2d578ef9f7a0b60b7cbd76120f73d5797cada13d6d78c34eb2fa19a3004f/dydx-python-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "6f24aad9a7be915f4806bdfaaa3212b0", "sha256": "8cdb2da93bc85a114f6bbffbbf17dad09fad8f096832d79eea035f5d6e205630" }, "downloads": -1, "filename": "dydx_python-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6f24aad9a7be915f4806bdfaaa3212b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29715, "upload_time": "2019-10-15T21:17:56", "url": "https://files.pythonhosted.org/packages/f1/08/3a7ccb9a6afa6c7007fcac07ee62ef8a9135e131c616b91794d5965803cd/dydx_python-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "180ccddb2fe4b34f563de35c034978b1", "sha256": "cbe0f7837d285c7304ffb17075d85e87edfd818923779da1821e322b903214ec" }, "downloads": -1, "filename": "dydx-python-0.4.1.tar.gz", "has_sig": false, "md5_digest": "180ccddb2fe4b34f563de35c034978b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24175, "upload_time": "2019-10-15T21:17:58", "url": "https://files.pythonhosted.org/packages/e3/39/b1c7d868b815a1d28b952bbefde8c8561e069c3002f181eb31a34d20e0fc/dydx-python-0.4.1.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "6f24aad9a7be915f4806bdfaaa3212b0", "sha256": "8cdb2da93bc85a114f6bbffbbf17dad09fad8f096832d79eea035f5d6e205630" }, "downloads": -1, "filename": "dydx_python-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "6f24aad9a7be915f4806bdfaaa3212b0", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 29715, "upload_time": "2019-10-15T21:17:56", "url": "https://files.pythonhosted.org/packages/f1/08/3a7ccb9a6afa6c7007fcac07ee62ef8a9135e131c616b91794d5965803cd/dydx_python-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "180ccddb2fe4b34f563de35c034978b1", "sha256": "cbe0f7837d285c7304ffb17075d85e87edfd818923779da1821e322b903214ec" }, "downloads": -1, "filename": "dydx-python-0.4.1.tar.gz", "has_sig": false, "md5_digest": "180ccddb2fe4b34f563de35c034978b1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 24175, "upload_time": "2019-10-15T21:17:58", "url": "https://files.pythonhosted.org/packages/e3/39/b1c7d868b815a1d28b952bbefde8c8561e069c3002f181eb31a34d20e0fc/dydx-python-0.4.1.tar.gz" } ] }