{ "info": { "author": "Jason Carver", "author_email": "ut96caarrs@snkmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 2 - Pre-Alpha", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Natural Language :: English", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "ethtoken.py\n===========\n\nThis is a tiny library leveraging web3.py to make an interface for\nworking with\n`EIP20 `__\ntokens on Ethereum. (formerly ERC20)\n\n**It is currently in Alpha, with 0 automated tests**\n\nUsage\n-----\n\nInstall\n~~~~~~~\n\n.. code:: sh\n\n virtualenv -p python3 venv\n . venv/bin/activate\n pip install --pre ethtoken\n\nInitialize\n~~~~~~~~~~\n\n.. code:: py\n\n from ethtoken import token\n\n # Use the ENS name that points to your token contract here:\n omg = token(\"omg.thetoken.eth\")\n\nUse standard EIP20 methods\n~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nMost EIP20 methods are optional. ``ethtoken`` makes no attempt to verify\nwhich methods are implemented by a token contract.\n\nHere's an example with all the read functions working:\n\n.. code:: py\n\n >>> omg.name()\n 'OMGToken'\n\n >>> omg.symbol()\n 'OMG'\n\n >>> omg.decimals()\n 18\n\n >>> omg.totalSupply()\n 140245398245132780789239631\n\n # Use the ENS name of the owner address here:\n >>> omg.balanceOf('ethereumfoundation.eth')\n 308744633639977714804\n\nCustom methods\n~~~~~~~~~~~~~~\n\n``ethtoken`` has a single custom method not in the EIP20 spec:\n``token_balance``.\n\n.. code:: py\n\n >>> omg.token_balance(\"ethereumfoundation.eth\")\n Decimal('308.744633639977714804')\n\nIt returns the balance of an address, with the decimal point shifted\naccording to the ``decimals()`` value on the contract. In other words,\nit is the human-readable number of tokens that the given address owns.\n\nCompletely Untested: Transfers\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nIn theory, you could use this to send a token. I haven't even tried it\nonce yet. Just don't use it. If you're going to ignore me, don't blame\nme if you lose tokens or ether.\n\nThis should theoretically transfer 1 giga units from 0x0 to 0xdead.\n(That's 1 nanotoken, at 18 decimals). Of course, this won't work if you\ndon't control the 0x0 address. (hint: you don't)\n\n.. code:: py\n\n from web3 import Web3\n\n >>> omg.transfer(\n '0x000000000000000000000000000000000000dEaD',\n 10 ** 9,\n transact={\n 'from': '0x0000000000000000000000000000000000000000',\n 'gasPrice': Web3.toWei('0.1', 'gwei'),\n },\n )\n\nOwnership Disclosure\n~~~~~~~~~~~~~~~~~~~~\n\nI own some OmiseGo tokens, because anyone who had some ether during\ntheir airdrop got some. I don't have any opinions on the company or\ntoken.\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/carver/ethtoken.py", "keywords": "ethereum erc20 token eip20 ICO ETH", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "ethtoken", "package_url": "https://pypi.org/project/ethtoken/", "platform": "", "project_url": "https://pypi.org/project/ethtoken/", "project_urls": { "Homepage": "https://github.com/carver/ethtoken.py" }, "release_url": "https://pypi.org/project/ethtoken/0.0.1a4/", "requires_dist": null, "requires_python": "", "summary": "Ethereum EIP20 Token Interface", "version": "0.0.1a4" }, "last_serial": 4361109, "releases": { "0.0.1a1": [ { "comment_text": "", "digests": { "md5": "c6691a9a91ce20fb4a4a1d198e9fc141", "sha256": "795e0b6de06bd40ace979f015b9e2be49427bab380b57c64fb47386f9cf9d46b" }, "downloads": -1, "filename": "ethtoken-0.0.1a1-py3-none-any.whl", "has_sig": false, "md5_digest": "c6691a9a91ce20fb4a4a1d198e9fc141", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 4175, "upload_time": "2017-11-17T23:15:35", "url": "https://files.pythonhosted.org/packages/31/04/8aba7b0a3ffbfcdf406893d5d079987b3af052cfb630b6d0f51e79317d68/ethtoken-0.0.1a1-py3-none-any.whl" } ], "0.0.1a2": [ { "comment_text": "", "digests": { "md5": "967414b35bb78a94b25f54f00f8a8a55", "sha256": "a1b3dfc9efe1dcfc818be8ac018e58ff07571ebd93c66aab647c487913167cf0" }, "downloads": -1, "filename": "ethtoken-0.0.1a2-py3-none-any.whl", "has_sig": false, "md5_digest": "967414b35bb78a94b25f54f00f8a8a55", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 5928, "upload_time": "2017-11-22T17:58:58", "url": "https://files.pythonhosted.org/packages/71/2e/3830e0dd15f6d93ce99925eba02a16f81dc7db58a0ec360b887568b83a87/ethtoken-0.0.1a2-py3-none-any.whl" } ], "0.0.1a3": [ { "comment_text": "", "digests": { "md5": "3e0c24056d0b2edab2f5b04fe7689d29", "sha256": "5cb9b9360e9e4e4c6fc26997976c8f7b7a6e44dc35b7ce9964d10140e718ee6d" }, "downloads": -1, "filename": "ethtoken-0.0.1a3-py3-none-any.whl", "has_sig": false, "md5_digest": "3e0c24056d0b2edab2f5b04fe7689d29", "packagetype": "bdist_wheel", "python_version": "3.5", "requires_python": null, "size": 6322, "upload_time": "2018-02-02T23:21:06", "url": "https://files.pythonhosted.org/packages/7b/79/77367fdc54e397cdf7e62d746b944628927907edbdeb04bd3adcd46bf187/ethtoken-0.0.1a3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0e84f6bd5f7efd03e1cae1a38ab1be73", "sha256": "9e3781c084f6b4b54c9bb74db3d1f3cea909140ad6a832bf9f83870ca9588558" }, "downloads": -1, "filename": "ethtoken-0.0.1a3.tar.gz", "has_sig": false, "md5_digest": "0e84f6bd5f7efd03e1cae1a38ab1be73", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3724, "upload_time": "2018-02-02T23:21:04", "url": "https://files.pythonhosted.org/packages/6f/98/f4cecb1e60df21532457d61304f5aa338707f73dfa8b5b98fa816c735a19/ethtoken-0.0.1a3.tar.gz" } ], "0.0.1a4": [ { "comment_text": "", "digests": { "md5": "1c2d3d11bc38ce681e2c9eb1b9905f42", "sha256": "31866fed979254565ad33224d89330cd9cec187ef09d65fdbbe73005ddf6d230" }, "downloads": -1, "filename": "ethtoken-0.0.1a4-py3-none-any.whl", "has_sig": false, "md5_digest": "1c2d3d11bc38ce681e2c9eb1b9905f42", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4057, "upload_time": "2018-10-10T18:28:04", "url": "https://files.pythonhosted.org/packages/ce/0e/44fc7c399ee3004304210cfc54870f4c7e4acbebedc26a6e4bbf42ca7e3a/ethtoken-0.0.1a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f592c12bcb0fb0a77e32a3f6afde8c5", "sha256": "22776382a76b31cef0ecfa13781d68cab3fffacbb6990b5e5bd21da7cb036d2b" }, "downloads": -1, "filename": "ethtoken-0.0.1a4.tar.gz", "has_sig": false, "md5_digest": "4f592c12bcb0fb0a77e32a3f6afde8c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3717, "upload_time": "2018-10-10T18:28:02", "url": "https://files.pythonhosted.org/packages/ac/4e/3fe9a6dfc94217f4250d0d1f467420c0adbd2158ab2a135a9beeb9da761b/ethtoken-0.0.1a4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1c2d3d11bc38ce681e2c9eb1b9905f42", "sha256": "31866fed979254565ad33224d89330cd9cec187ef09d65fdbbe73005ddf6d230" }, "downloads": -1, "filename": "ethtoken-0.0.1a4-py3-none-any.whl", "has_sig": false, "md5_digest": "1c2d3d11bc38ce681e2c9eb1b9905f42", "packagetype": "bdist_wheel", "python_version": "3.6", "requires_python": null, "size": 4057, "upload_time": "2018-10-10T18:28:04", "url": "https://files.pythonhosted.org/packages/ce/0e/44fc7c399ee3004304210cfc54870f4c7e4acbebedc26a6e4bbf42ca7e3a/ethtoken-0.0.1a4-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4f592c12bcb0fb0a77e32a3f6afde8c5", "sha256": "22776382a76b31cef0ecfa13781d68cab3fffacbb6990b5e5bd21da7cb036d2b" }, "downloads": -1, "filename": "ethtoken-0.0.1a4.tar.gz", "has_sig": false, "md5_digest": "4f592c12bcb0fb0a77e32a3f6afde8c5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3717, "upload_time": "2018-10-10T18:28:02", "url": "https://files.pythonhosted.org/packages/ac/4e/3fe9a6dfc94217f4250d0d1f467420c0adbd2158ab2a135a9beeb9da761b/ethtoken-0.0.1a4.tar.gz" } ] }