Python module
current project status
Current Project Status
in_progress
Total
amount
Received
$10000
Total
amount
Requested
$10000
Total
Percentage
Received
100%
$10000 Received out of $10000
Solution
Create a Python module that implements base classes for Wallet, Address, Key, Transaction, etc. and offers well-structured exception tree.
Problem
現在、ウォレットと通信するためのプレーンなREST APIは用意されていますが、Python用のより高度な抽象化クラスは用意されていません。
Impact alignment
Feasibility
Value for money

チーム

This proposal was approved and funded by the Cardano Community via Project F3: Developer Ecosystem Catalyst funding round.

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.

Comments

Monthly Reports

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    3分 24秒
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    4分 3秒
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    3分 48秒
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    2分 16秒
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    3分 14秒
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    3分 19秒
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    4分 59秒
    Darlington Kofa
0:00
/
~0:00