Last updated 4 years ago
Right now there is a plain REST API available for communicating with the wallet but no higher-level abstraction classes for Python.
Create a Python module that implements base classes for Wallet, Address, Key, Transaction, etc. and offers well-structured exception tree.
This is the total amount allocated to Python module.
NB: Monthly reporting was deprecated from January 2024 and replaced fully by the Milestones Program framework. Learn more here
Create a Python module that implements base classes for Wallet, Address, Key, Transaction, etc. and offers well-structured exception tree.
I'm experienced Python developer and the main author of a similar module for Monero: https://github.com/monero-ecosystem/monero-python
The Python Module will provide base classes for Wallet, Address, Transaction and perhaps some other base types. The amounts will be processed by Decimal type designed for monetary operations. Operations like wallet retrieval, creation, sending transfers, staking, etc. will be provided as methods, sparing the developers from touching the underlying API.
Also, basic sanity checks will be implemented and a proper excepton tree will be created to handle errors in elegant OO way.
The REST API will be the backend but the module will also provide forward compatibility to introduce other backends should some appear later on.
The module will also include full documentation and unit test coverage.
A glance over a similar module I've written for Monero may explain what level of easiness the final code will provide: https://monero-python.readthedocs.io/en/latest/wallet.html
ROADMAP:
Each milestone consists of:
- implementation of given features,
- implementation of exceptions reflecting possible errors,
- unit test coverage for the code,
- updated API docs,
- bugfixes for already existing code.
Milestones:
1. ETA 2021-03-07: Classes representing Shelley Wallet, Address and Transaction are implemented. It is possible to list wallets, create a wallet from mnemonic or key, retrieve balance, existing addresses and list of incoming and outgoing transactions.
2. ETA 2021-03-14: It is possible to list assets (other than ADA).
3. ETA 2021-03-28: It is possible to create additional addresses and send transfers (also with metadata).
4. ETA 2021-04-04: It is possible to stake ADA and cancel staking.
5. ETA 2021-04-11: Minor features like UTXO stats, coin selection and fee estimation are implemented. The project concludes.
Further development and bugfixing will be provided by the author in spare time as a hobby project (like it's being constantly done with Monero module mentioned above).
Development process:
Due to personal and professional obligations I'll be able to work on the project only part-time (approx. 4h/day) and on weekends (approx. 6h/day). The total is 224h at rate of $44/h. It may seem as a lot of time but please remember it includes the coding itself, writing unit tests and documentation.
10000I'm experienced Python developer and the main author of a similar module for Monero: https://github.com/monero-ecosystem/monero-python