Skip to content
This repository was archived by the owner on Jan 13, 2023. It is now read-only.

Release/1.2.0-beta1 #54

Merged
merged 102 commits into from
Jul 16, 2017
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
102 commits
Select commit Hold shift + click to select a range
dceff85
Added support for pyota-ccurl extension.
todofixthis Mar 26, 2017
503a82f
Cleaned up links in README.
todofixthis Mar 26, 2017
59dd5c1
Added reference link for PyOTA-CCurl.
todofixthis Mar 26, 2017
c15b8a9
Turn on unit tests for ccurl extension.
todofixthis Mar 26, 2017
e3b9a43
Allow Travis to install alpha ccurl extension.
todofixthis Mar 26, 2017
852681e
Reverted Travis config.
todofixthis Mar 26, 2017
6f8490d
Fixed incorrect docs for `send_transfer`.
todofixthis Apr 4, 2017
8f8cda8
[#10] `get_private_keys` request filter.
todofixthis Apr 9, 2017
432ddb2
[#10] Wired-up `getPrivateKeys`.
todofixthis Apr 9, 2017
622b7a9
[#10] Cleaned up imports.
todofixthis Apr 9, 2017
b72226e
[#10] Impl'd `getPrivateKeys`.
todofixthis Apr 9, 2017
94a3c37
[#10] Fixed imports.
todofixthis Apr 9, 2017
3f3b4b8
[#10] Stubbed-out `getDigests`, impl'd req validation.
todofixthis Apr 9, 2017
f0d8587
[#10] Impl'd `getDigests`.
todofixthis Apr 9, 2017
214a638
[#39] Min version for `requests[security]`.
todofixthis Apr 9, 2017
3f3be8e
Added contributor guide.
todofixthis Apr 15, 2017
a1ac0bf
Fixed GitHub formatting in contributor guide.
todofixthis Apr 15, 2017
af09ea3
Fixed GitHub formatting in contributor guide.
todofixthis Apr 15, 2017
c27c62e
Added link for "help wanted" to contrib guide.
todofixthis Apr 15, 2017
1659316
[#42] Added optional `hash` arg to `Transaction.from_tryte_string`.
todofixthis Apr 24, 2017
bdc5fac
[#41] Fixed error from `help(iota)`.
todofixthis Apr 24, 2017
f931ee0
Wheels no longer universal, fixed deps.
todofixthis Apr 25, 2017
4b82abf
Set up auto PyPI distribution.
todofixthis Apr 25, 2017
3748ee0
Skip doc upload during deployment.
todofixthis Apr 25, 2017
c8481e1
Addressed IDE warning.
todofixthis Apr 29, 2017
5fa2eb3
`Address.with_valid_checksum` now also copies balance and key_index.
todofixthis Apr 29, 2017
e7f7280
[#10] Happy path impl for `MultisigAddressBuilder`.
todofixthis Apr 29, 2017
e0965ec
[#10] Unit tests now use security level 2.
todofixthis Apr 29, 2017
07d3e77
[#10] Introduced `MultisigAddress` type.
todofixthis Apr 29, 2017
58f7388
[#10] Addressed edge cases generating multisigs.
todofixthis Apr 29, 2017
bc5e5c3
[#10] Added req validation for createMultisigAddress.
todofixthis Apr 29, 2017
efc786d
[#10] Impl'd createMultisigAddress command.
todofixthis Apr 29, 2017
4059a8a
`create_iterator` now advances when a cache is installed.
todofixthis Apr 30, 2017
537fe14
Fixed URI in sandbox example.
todofixthis May 1, 2017
09c8c37
[#10] Stubbed out unit tests for `prepare_multisig_transfer`.
todofixthis May 1, 2017
8c30735
[#10] Improved documentation a bit.
todofixthis May 1, 2017
ef972da
[#10] Happy path for `prepare_multisig_transfer` req filter.
todofixthis May 1, 2017
d8f52bb
[#10] Type conversion for `p_m_t` req filter.
todofixthis May 1, 2017
5a692bd
[#10] `changeAddress` is optional.
todofixthis May 1, 2017
25f9134
[#10] Documented handling of unexpected param.
todofixthis May 1, 2017
3aec255
[#10] `transfers` is required.
todofixthis May 1, 2017
df0b4d6
[#10] `transfers` must be an array.
todofixthis May 1, 2017
a7d4808
[#10] `transfers` must not be empty.
todofixthis May 1, 2017
1ad6bf1
[#10] Validate types inside `transfers`.
todofixthis May 1, 2017
34f8602
[#10] `multisigInput` is required.
todofixthis May 1, 2017
c39bfdd
[#10] Impl'd remaining `p_m_t` req filter tests.
todofixthis May 1, 2017
beaf7f6
[#28] Laid the groundwork for configurable address security.
todofixthis May 1, 2017
4fb5059
[#28] Added security_level to `get_new_addresses`.
todofixthis May 1, 2017
dff8af7
[#28] Implemented securityLevel in `GetNewAddressesCommand`.
todofixthis May 1, 2017
4642cc9
[#28] Integrated security level into `MemoryAddressCache`.
todofixthis May 1, 2017
e8688ce
[#10] Stubbed-out `ProposedMultisigBundle`.
todofixthis May 7, 2017
7a7ec62
Made JSON reprs more comprehensive.
todofixthis May 7, 2017
1908b54
[#10] Multisig inputs must have security level.
todofixthis May 7, 2017
9f80174
[#10] Impl'd adding multisig inputs to bundle.
todofixthis May 7, 2017
353f88e
[#10] Fixed `prepare_multisig_transfer` return type.
todofixthis May 7, 2017
d022d4f
Improved IPython reprs.
todofixthis May 7, 2017
ba979f8
[#10] Impl'd unspent inputs test.
todofixthis May 7, 2017
63b3767
[#10] `prepare_multisig_transfer` must spend IOTAs.
todofixthis May 7, 2017
be3694b
[#10] Impl'd "insufficient balance" test.
todofixthis May 7, 2017
a1175e3
[#10] Impl'd "no change address" test.
todofixthis May 7, 2017
02d14c4
[#10] Added some documentation.
todofixthis May 7, 2017
6867837
Digest length must be a multiple of 81 trytes.
todofixthis May 7, 2017
336b7eb
Add unit converter
vynes May 9, 2017
19b2170
Update Unit Converter implementation
vynes May 11, 2017
9dea5f7
Merge pull request #48 from vynes/unit_converter
todofixthis May 11, 2017
393db53
Use stdlib `mock` in Python 3.
todofixthis May 13, 2017
98dd2c2
Updated testing deps for compat w/ older versions of pip.
todofixthis May 13, 2017
b3a2fac
Converted REPL script into entry point.
todofixthis May 20, 2017
f9631ea
[#47] Proof of concept to integrate JS MAM into Python.
todofixthis May 20, 2017
3899a0d
[#44] `Seed.random` generates 81-tryte seeds by default.
todofixthis May 20, 2017
73d1588
Fixed PEP-8 formatting.
todofixthis May 20, 2017
c0277f4
Improved documentation.
todofixthis May 20, 2017
bebfb45
Removed unnecessary import.
todofixthis May 20, 2017
d1c2ae4
Fix issue in address_generator example.
ivoscc May 20, 2017
938970b
Merge pull request #50 from ivoscc/develop
todofixthis May 20, 2017
04e1cb5
TryteStrings may now be created from unicode strings.
todofixthis Jun 16, 2017
4cb729f
Added output to MAM encryption PoC.
todofixthis Jun 16, 2017
40c9561
Fixed infinite recursion in Python 2.
todofixthis Jun 16, 2017
3dcd96f
Fixed awful symlink hack.
todofixthis Jun 16, 2017
2ec8e74
Made formatting a smidge prettier.
todofixthis Jun 16, 2017
7619609
Removed address caches.
todofixthis Jun 16, 2017
04385db
The C extension is no longer considered experimental.
todofixthis Jun 16, 2017
403e81f
Fixed links in readme.
todofixthis Jun 16, 2017
b2c1705
... and make it https.
todofixthis Jun 16, 2017
f0cd3e7
Removed remaining reference to address caches.
todofixthis Jun 16, 2017
d65b95c
Removed unnecessary optimization.
todofixthis Jun 17, 2017
d1444cb
Improved PyCurl performance by ~7%.
todofixthis Jun 17, 2017
edd2ce8
[#10] Cleaned up txn test case, stubbed out multisig tests.
todofixthis Jul 8, 2017
9e90248
[#10] Impl'd security level tests, added convenience funcs.
todofixthis Jul 8, 2017
f77acaa
[#10] Added validation to `sign_input_at`.
todofixthis Jul 8, 2017
bf2a8f9
[#10] Impl'd remaining unit tests.
todofixthis Jul 8, 2017
fe4fbf5
[#10] Addressed failing unit tests.
todofixthis Jul 8, 2017
b6168c6
[#10] Added security level param to API methods.
todofixthis Jul 8, 2017
95c1726
[#10] `prepare_multisig_transfer` now returns raw trytes.
todofixthis Jul 9, 2017
0e1fd8b
Made transaction module its own package.
todofixthis Jul 9, 2017
98a5cbe
Reorganized tests to match code under test.
todofixthis Jul 9, 2017
2c56b1d
Bumping version number.
todofixthis Jul 9, 2017
52a3927
[#10] Mostly impl'd multisig example script (minus sigs).
todofixthis Jul 15, 2017
5d16af1
[#10] Minor reorg.
todofixthis Jul 15, 2017
c782574
Refactored common code, fixed `head_to_tail` semantics.
todofixthis Jul 16, 2017
6909773
Reorganized txn tests to match package.
todofixthis Jul 16, 2017
5ce1c99
[#10] Completed multisig example script.
todofixthis Jul 16, 2017
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 14 additions & 5 deletions .travis.yml
Original file line number Diff line number Diff line change
@@ -1,7 +1,16 @@
language: python
python:
- "2.7"
- "3.5"
- "3.6"
install: "pip install ."
script: "nosetests"
- '2.7'
- '3.5'
- '3.6'
install: pip install .
script: nosetests
deploy:
on:
branch: master
provider: pypi
distribution: sdist bdist_wheel
skip_upload_docs: true
user: phx
password:
secure: KsjEOuDysFa7Z+ACy9qBgTadWEWR/zrBwxEQMGg7k9Hxr7tzq6bofywQID9GW6XQZWfcGXMCSo9RKmL0rtvbPenftJKwUtimssME6+TuNgnA/nu9QVuDvOc7PiaG471JdayDkutu61RNfiUeZKUk7h6xf1hHlLj+wBFPsNkFEuWCiVLGO54/tG9sDfGuPpomx9PBFwHZigSVBRelagkViYKva1fhzwW1sQG+yqK19TyDajCCp2pbCqKqqhwXDG16l4jS1basSfhtDty9IYtYMq8U6OPsgJyLXzCUJ3nU1OGy8ZvIAfJIloNwAekC1SukbUEpSA1S6wygGO3S5D9nQbwW4Z6pJi87tiNg71coPapDSI55jMQ3QUqycISHZ26iHmD6kgLXmEPYt4xpQMSBV5MGkn96w7qULlxF6eKCxoGbQZDuebXWJhzE2EG80NSSF3leVpFpbsobhiXcOm1pQ9hZ0sjgEzW40cnTTodbsx0CzALVyfGecZa2dFT9atS5ohvXYNYowMk86bghDpq+5Pnp7gdrs+TxWuElAfDz0BucE+uh1ZaG8YwZ13LPZmMlg50Bu+A96Qu0GTo1VwYh0/DhtCjVAM/07WJT2BggPbNYbLDlBbhsz/9EA0bhBjjGitXQ5GHKYT71DziLJHomo8h/pZnsmd9GFj3/tOK7Drw=
140 changes: 140 additions & 0 deletions CONTRIBUTING.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,140 @@
=====================
Contributing to PyOTA
=====================
So, you wanna contribute to PyOTA? Awesome! PyOTA is an important part of the IOTA ecosystem, and it's all thanks to people like you!

PyOTA is largely built and maintained by volunteers; by following a few "common sense" ground rules, we can make PyOTA stand out as a fun, exciting and rewarding project to work on.

Please take a few moments to read this guide to familiarize yourself with PyOTA's contributor code of conduct, and some of the ways you can contribute!

.. contents::
:depth: 2


Ways You Can Help!
==================
There are lots of ways to get involved with PyOTA. Many of them don't require writing any code (but if that's your thing, we've got you covered, too!).

- Improving Documentation
- Writing Tutorials
- Reporting Bugs
- Helping Users on the ``#iota-libs-pyota`` Channel on `Slack`_
- Fixing Bugs and Implementing New Features
- Writing Unit and Functional Tests

A Few Things that We Can't Accept
---------------------------------
We're pretty open about how people contribute to PyOTA, but there are a few things that we can't accept:

- Please do not post support requests here. Use the ``#iota-libs-pyota`` channel on `Slack`_ or post in the `forum`_ to ask for help.
- Please do not propose new API methods here. There are multiple IOTA API libraries out there, and they must all have the same functionality.
- That said, if you have an idea for a new API method, please share it on the ``#developers`` channel in `Slack`_ so that IOTA Foundation members can evaluate it!


Need Some Inspiration?
======================
If you would like to help out but don't know how to get started, here are some
places you can look for inspiration:

- Look for issues marked `help wanted`_ in the `PyOTA Bug Tracker`_
- Introduce yourself in the `#iota-libs-pyota` channel in `Slack`_ and watch for questions or issues that you can help with.
- Browse existing `tutorials`_ for other programming languages and create Python versions.

Is This Your First Contribution?
--------------------------------
Never contributed to an open-source project before? No problem! We're excited that you are considering PyOTA for your first contribution!

Please take a few minutes to read GitHub's guide on `How to Contribute to Open Source`_. It's a quick read, and it's a great way to introduce yourself to how things work behind the scenes in open-source projects.


Guidelines for Reporting Bugs
=============================
Found a bug in the PyOTA code? Great! We can't fix bugs we don't know about; your bug report will go a long way toward helping PyOTA flourish.

Instructions
------------
1. Make sure it really is a PyOTA bug.
- Check the traceback, and see if you can narrow down the cause of the bug.
- If the error is not directly caused by PyOTA, or if you are unable to figure out what is causing the problem, we're still here for for you! Post in the ``#iota-libs-pyota`` channel in `Slack`_ for assistance.
2. Is it safe to publish details about this bug publicly?
- If the bug is security-related (e.g., could compromise a user's seed if exploited), or if it requires sensitive information in order to reproduce (e.g., the private key for an address), please do not post in in the PyOTA Bug Tracker!
- To report security-related bugs, please contact ``@phx`` directly in `Slack`_.
3. Is this a known issue?
- Before posting a bug report, check the `PyOTA Bug Tracker`_ to see if there is an existing issue for this bug.
4. Create a new issue in the `PyOTA Bug Tracker`_.
- Be sure to include the following information:
- Which version of PyOTA you are using.
- Which version of Python you are using.
- Which operating system you are using.
- Instructions to reproduce the bug.
- The expected behavior, if applicable.
- The full exception traceback, if available.
- If the exception also has a context object, please include it.
5. Please be nice!
- It's frustrating when things don't work the way you expect them to. We promise we didn't put that bug in there on purpose; we're all human, and we all make mistakes sometimes.
6. Please be patient!
- We're committed to making to making PyOTA better, but we've also got jobs and other commitments. We'll respond as soon as we can, but it might be a few days.
7. Please be responsive if follow-up is needed.
- We may request additional information to help us identify/fix the bug. The faster you respond to follow-up comments in your bug report, the sooner we can squash that bug!
- If someone adds a comment to your bug report, it will appear in the `Notifications`_ page in GitHub. You can also configure GitHub to `email you`_ when a new comment is posted.

What You Can Expect
-------------------
When you submit a bug report, here's what you can expect from the individual who reviews it:

- You can expect a response within one week of submission.
- If any additional information is needed, or if we are having trouble reproducing the issue you reported, you can expect a respectful and constructive response.


Guidelines for Developers
=========================
If you would like to contribute code to the PyOTA project, this section is for you!

Instructions
------------
1. Find an issue in the `PyOTA Bug Tracker`_ to work on.
- If you want to work on a bug or feature that doesn't have a GitHub issue yet, create a new one before starting to work on it. That will give other developers an opportunity to provide feedback and/or suggest changes that will make it integrate better with the rest of the code.
2. Create a fork of the PyOTA repository.
3. Create a new branch just for the bug/feature you are working on.
- If you want to work on multiple bugs/features, you can use branches to keep them separate, so that you can submit a separate Pull Request for each one.
4. Once you have completed your work, create a Pull Request, ensuring that it meets the requirements listed below.

Requirements for Pull Requests
------------------------------
PyOTA is a critical component for many applications, and as such its code must be of exceptionally high quality. To help maintain reliability and code quality, there are a few requirements for contributions.

This is a big list, but don't let it intimidate you! Many of these are "common sense" things that you probably do already, but we have to list them here anyway, just so that there's no confusion.

If you have any questions, please feel free to post in the ``#iota-libs-pyota`` channel in `Slack`_!

- Please create Pull Requests against the ``develop`` branch.
- Please limit each Pull Request to a single bugfix/enhancement.
- Please limit the scope of each Pull Request to just the changes needed for that bugfix/enhancement.
- If you would like to refactor existing code, please create separate Pull Request(s) just for the refactoring.
- Please ensure your code works in all supported versions of Python (this includes versions of Python 2 and Python 3).
- See ``README.rst`` for the list of supported Python versions.
- Please ensure that your Pull Request includes full test coverage.
- Please do not introduce new dependencies unless absolutely necessary.
- When introducing new classes/functions, please write comprehensive and meaningful docstrings. It should be clear to anyone reading your code what your new class/function does and why it exists.
- Similarly, please be liberal about adding comments to your code. If you have any knowledge and/or had to do any research that would make your code easier to understand, add it as comment. Future developers will be very grateful for the extra context!
- Please ensure that your comments and docstrings use proper English grammar and spelling.
- Please ensure that your code conforms to `PEP-8`_.
- You may deviate from PEP-8 if you feel that your changes improve readability, but be aware that you may be asked to justify your decision.

What You Can Expect
-------------------
When you submit a Pull Request, here is what you can expect from the individual who reviews it:

- You can expect a response within one week of submission.
- If any changes are needed, or if we cannot accept your submission, we will provide a respectful and constructive explanation.


.. _email you: https://help.github.com/articles/managing-notification-delivery-methods/
.. _forum: https://forum.iota.org
.. _help wanted: https://github.com/iotaledger/iota.lib.py/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22
.. _how to contribute to open source: https://opensource.guide/how-to-contribute/
.. _notifications: https://github.com/notifications
.. _pep-8: https://www.python.org/dev/peps/pep-0008/
.. _pyota bug tracker: https://github.com/iotaledger/iota.lib.py/issues
.. _slack: https://slack.iota.org
.. _tutorials: https://learn.iota.org/tutorials
24 changes: 20 additions & 4 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,23 @@ To install the latest version::

pip install pyota

Optional C Extension
====================
PyOTA has an optional C extension that improves the performance of its
cryptography features significantly (speedups of **60x** are common!).

To install this extension, use the following command::

pip install pyota[ccurl]


.. note::

The C extension is currently only compatible with Python 3.

If you are familiar with Python 2's C API, we'd love to hear from you!
See `<https://github.com/todofixthis/pyota-ccurl/issues/4>`_ for more info.

Installing from Source
======================

Expand All @@ -58,9 +75,8 @@ For the full documentation of this library, please refer to the


.. _Create virtualenv: https://virtualenvwrapper.readthedocs.io/
.. _SWIG: http://www.swig.org/download.html
.. _Slack: http://slack.iotatoken.com/
.. _dedicated forum: https://forum.iotatoken.com/
.. _official API: https://iota.readme.io/
.. _PyOTA Bug Tracker: https://github.com/iotaledger/iota.lib.py/issues
.. _Slack: https://slack.iota.org/
.. _dedicated forum: https://forum.iota.org/
.. _official API: https://iota.readme.io/
.. _tox: https://tox.readthedocs.io/
3 changes: 2 additions & 1 deletion examples/address_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,8 @@ def main(uri, index, count):
print('')

# Here's where all the magic happens!
for addy in api.get_new_addresses(index, count):
api_response = api.get_new_addresses(index, count)
for addy in api_response['addresses']:
print(binary_type(addy).decode('ascii'))

print('')
Expand Down
Loading