{ "info": { "author": "Ivan Vershigora", "author_email": "ivan.vershigora@gmail.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6", "Topic :: Software Development :: Build Tools" ], "description": "# django-cc #\n[![Build Status](https://travis-ci.org/limpbrains/django-cc.svg?branch=master)](https://travis-ci.org/limpbrains/django-cc)\n\nDjango-cryptocurrencies web wallet for Bitcoin and other cryptocurrencies.\n\nSimple pluggable application inspired by django-bitcoin.\n\nPython 3\n\n## Features ##\n* Multi-currency\n* Celery support\n* Withdraw and Deposite\n* 3 types of balances: balance, unconfirmed, holded\n\n## Quick start ##\n\nEdit Currency model\n```python\n\nfrom cc.models import Currency\n\ncurrency = Currency.objects.create(\n label = 'Bitcoin',\n ticker = 'BTC',\n api_url = 'http://root:toor@localhost:8332'\n)\n```\n\nStart celery worker\n```bash\n$ celery worker -A tst.cel.app\n```\n\nGet new addresses for wallets\n\n```bash\n$ celery call cc.tasks.refill_addresses_queue\n```\n\nNow you can create wallets, deposite and withdraw funds\n\n```python\n\nfrom cc.models import Wallet\n\nwallet = Wallet.objects.create(\n currency=currency\n)\n\nwallet.get_address()\n\nwallet.withdraw_to_address('mvEnyQ9b9iTA11QMHAwSVtHUrtD4CTfiDB', Decimal('0.01'))\n```\n\nAfter creating a withdraw transaction you need to run\n\n```bash\n$ celery call cc.tasks.process_withdraw_transactions\n```\n\nQuery for new deposite transactions:\n```bash\n$ cc.tasks.query_transactions\n```\n\nIf you want to catch event from bitcoind, but these calls options in bitcoin.conf file\n\n```\nwalletnotify=~/env/bin/celery call cc.tasks.query_transaction --args='[\"BTC\", \"'%s'\"]'\nblocknotify=~/env/bin/celery call cc.tasks.query_transactions --args='[\"BTC\"]'\n\n```\nwhere \"BTC\" - ticker (short name) of the Currency\n\n### Transactions\n\nWhen you write applications that are working with money it is extremely important to use Database transactions. Currenly django-cc doesn't inclues any `@transaction.atomic`. You should do this by yourself.\n\nIn my code I have a higher level wrapper with @transaction.atomic and to get wallets I'm always using select for update, like `Wallet.objects.select_for_update().get(addresses=address)` to get a lock over the Wallet.\n\n## Supported crypto currencies\n\nIn general django-cc should work with most Bitcoin forks. I've tested it against: Bitcoin, Litecoin, Zcash (not anonymous transactions), Dogecoin and Dash. \n\nWhen you are adding any other `Currency`, than Bitcoin, you should define `magicbyte` and `dust` values. Use tables below to get the values.\n\n### Magic bytes\n\nMagic bytes are used to verify withdraw addresses. They are different for each cryptocurrency\n\n| CC | Mainnet | Testnet |\n| -------- | ------- | ------- |\n| Bitcoin | 0,5 | 111,196 | \n| Litecoin | 48,50 | 58 | \n| Zcash | 28 | 29 | \n| Dogecoin | 30,22 | | \n| Dash | 76,16 | 140 | \n\n### Dust\n\nMinimal amount of valid transaction\n\n| CC | Dust size |\n| -------- | ------------ |\n| Bitcoin | `0.00005430` |\n| Litecoin | `0.00054600` |\n\n### Testing\n\nTests are written using Regtest. To run them you need docker and docker-compose. Simply run `docker-compose up` and it will build and run all tests for you. Usually it takes about 5 min to run all the tests.\n\n\n", "description_content_type": "text/markdown", "docs_url": null, "download_url": "https://github.com/limpbrains/django-cc/tarball/0.2.3", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/limpbrains/django-cc", "keywords": "bitcoin django wallet cryptocurrency litecoin zcash dogecoin dash", "license": "MIT License", "maintainer": "", "maintainer_email": "", "name": "django-cc", "package_url": "https://pypi.org/project/django-cc/", "platform": "", "project_url": "https://pypi.org/project/django-cc/", "project_urls": { "Download": "https://github.com/limpbrains/django-cc/tarball/0.2.3", "Homepage": "https://github.com/limpbrains/django-cc" }, "release_url": "https://pypi.org/project/django-cc/0.2.3/", "requires_dist": [ "celery (>=3)", "Django (>=1.7)", "mock", "pycoin (>=0.90)", "python-bitcoinrpc (>=1.0)" ], "requires_python": "", "summary": "Django wallet for Bitcoin and other cryptocurrencies", "version": "0.2.3" }, "last_serial": 5499624, "releases": { "0.0.1": [ { "comment_text": "", "digests": { "md5": "77e1d5eeef5508bd3cf1a735d382b0dd", "sha256": "74358be50a4220c4ed184a0c48cf2c086541cf354aa994a6e0e425dd167eb1b7" }, "downloads": -1, "filename": "django-cc-0.0.1.tar.gz", "has_sig": false, "md5_digest": "77e1d5eeef5508bd3cf1a735d382b0dd", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11562, "upload_time": "2014-09-16T16:56:06", "url": "https://files.pythonhosted.org/packages/a3/96/4125a999da17c73b070cfdfabb4a1773373275d51184a1a854a8f2fe934c/django-cc-0.0.1.tar.gz" } ], "0.0.2": [ { "comment_text": "", "digests": { "md5": "c4d7e0b18d2d4679ffa8b6b69cbbdfd2", "sha256": "fbe1aa10ade40ef8e0c7cecde27ab577902b9fc649986dbbd62527f4f1d4c422" }, "downloads": -1, "filename": "django-cc-0.0.2.tar.gz", "has_sig": false, "md5_digest": "c4d7e0b18d2d4679ffa8b6b69cbbdfd2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11861, "upload_time": "2014-09-16T17:09:44", "url": "https://files.pythonhosted.org/packages/db/f3/3900c41f4d37bbf0b269c26b73becf227f6333d11522f7945789936ef884/django-cc-0.0.2.tar.gz" } ], "0.0.3": [], "0.1": [], "0.1.1": [ { "comment_text": "", "digests": { "md5": "0950598af451a90b8c549f76eeff5d55", "sha256": "7c48e7b751924894d49830df826f59bcc111feab513c40fb82957416ee6bb260" }, "downloads": -1, "filename": "django-cc-0.1.1.tar.gz", "has_sig": false, "md5_digest": "0950598af451a90b8c549f76eeff5d55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 14330, "upload_time": "2015-03-08T09:03:18", "url": "https://files.pythonhosted.org/packages/f9/f8/078a9891fd4fd23c8a418ab5df01ed7b80d3efffbcd5e3e6df2772ff2259/django-cc-0.1.1.tar.gz" } ], "0.2": [ { "comment_text": "", "digests": { "md5": "1c7c801c423a0d22624bb3a42e88a9ba", "sha256": "d167d63ea7c7c093195e654961687d0acb124d1281dd4aab08a493eb8ac40748" }, "downloads": -1, "filename": "django-cc-0.2.tar.gz", "has_sig": false, "md5_digest": "1c7c801c423a0d22624bb3a42e88a9ba", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12310, "upload_time": "2016-11-05T06:21:33", "url": "https://files.pythonhosted.org/packages/35/c9/f8427f0c6cf9012714ae20aa8688f872011ee9511627f67985f8d3831a79/django-cc-0.2.tar.gz" } ], "0.2.1": [ { "comment_text": "", "digests": { "md5": "d0a1345c87874f15118e6001dd01809e", "sha256": "1137f55b2fd149012160f70875efcb73e9a469c0f3d3c2f8e063f654b018d213" }, "downloads": -1, "filename": "django-cc-0.2.1.tar.gz", "has_sig": false, "md5_digest": "d0a1345c87874f15118e6001dd01809e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12628, "upload_time": "2017-01-02T17:58:58", "url": "https://files.pythonhosted.org/packages/d6/70/2f09eb2b11d209db684e720f7a098d272296bc7e4eb07f8fa6cc7fd9eaad/django-cc-0.2.1.tar.gz" } ], "0.2.2": [ { "comment_text": "", "digests": { "md5": "a4b5aa0207ec143a0feb92d0df8fddae", "sha256": "469c9c7135a69abd51bed38c98ce08baad9ff3ceb18fd0d9b261a3c07033e4fe" }, "downloads": -1, "filename": "django-cc-0.2.2.tar.gz", "has_sig": false, "md5_digest": "a4b5aa0207ec143a0feb92d0df8fddae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11897, "upload_time": "2018-02-25T11:27:48", "url": "https://files.pythonhosted.org/packages/a4/b7/d0abf05ebfb4bc23240f26fd4fa9e92fa4790e238857ae6a9f539b18e1d8/django-cc-0.2.2.tar.gz" } ], "0.2.3": [ { "comment_text": "", "digests": { "md5": "1f2613c66c0b75c1207739c77509a9e4", "sha256": "94f9139a2c091717ae0f92349a64e8ae73f7abe0c9e5571beb60f669e94bb793" }, "downloads": -1, "filename": "django_cc-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1f2613c66c0b75c1207739c77509a9e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27131, "upload_time": "2019-07-08T08:45:05", "url": "https://files.pythonhosted.org/packages/43/9b/61dd2a26ed3185f89050770c28b2c8baa45dc7aeb7a783567aec4a074081/django_cc-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "661d083baaed606266637ffd2c4db079", "sha256": "f90f769ca95bbd78d12deefc4331f37b6882fbb0c82afcb53626667ea03920e7" }, "downloads": -1, "filename": "django-cc-0.2.3.tar.gz", "has_sig": false, "md5_digest": "661d083baaed606266637ffd2c4db079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17317, "upload_time": "2019-07-08T08:45:08", "url": "https://files.pythonhosted.org/packages/c2/65/f31315a2308cb33cdeebacd7f0705a2fb327aca665c843f74aa590d8ccfb/django-cc-0.2.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1f2613c66c0b75c1207739c77509a9e4", "sha256": "94f9139a2c091717ae0f92349a64e8ae73f7abe0c9e5571beb60f669e94bb793" }, "downloads": -1, "filename": "django_cc-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "1f2613c66c0b75c1207739c77509a9e4", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 27131, "upload_time": "2019-07-08T08:45:05", "url": "https://files.pythonhosted.org/packages/43/9b/61dd2a26ed3185f89050770c28b2c8baa45dc7aeb7a783567aec4a074081/django_cc-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "661d083baaed606266637ffd2c4db079", "sha256": "f90f769ca95bbd78d12deefc4331f37b6882fbb0c82afcb53626667ea03920e7" }, "downloads": -1, "filename": "django-cc-0.2.3.tar.gz", "has_sig": false, "md5_digest": "661d083baaed606266637ffd2c4db079", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 17317, "upload_time": "2019-07-08T08:45:08", "url": "https://files.pythonhosted.org/packages/c2/65/f31315a2308cb33cdeebacd7f0705a2fb327aca665c843f74aa590d8ccfb/django-cc-0.2.3.tar.gz" } ] }