Cardano-Tools Python Library
current project status
Current Project Status
complete
Total
amount
Received
$10000
Total
amount
Requested
$10000
Total
Percentage
Received
100%
$10000 Received out of $10000
Solution
The Cardano-Tools Python library should be expanded and updated to provide Python developers with more relevant tools.
Problem
The tools for Python developers to build on Cardano are currently limited and existing libraries need updating to wrap recent features.
Impact alignment
Feasibility
Value for money

Team

This proposal was approved and funded by the Cardano Community via Project F8: Open Source Development Ecosystem Catalyst funding round.

  • download
  • download

[IMPACT]

We propose to expand and update the current Cardano-Tools Python library in the following ways.

- Wrap new CLI features in the current Python API: leadership slot computation, incremental multi-signature, and mempool query features.

- Extend the amount of the Cardano Wallet back end wrapped by the library. Currently some of the wallet features are wrapped but we want to extend this to 85% with 100% being the stretch goal. This includes accessing the wallet via both CLI and HTTP methods.

- Increase in units test coverage of the existing library. Much of the existing library centers on interfacing with synced wallets or nodes which makes unit testing difficult. We want to refactor the library to break as much of the functionality into testable pieces as possible.

This project impacts the key KPIs for the challenge:

- This project will increase the number and the quality of Cardano Open Source projects, since it is itself a new Cardano open source project as well as making it easier for additional open source projects to come to the Cardano ecosystem.

- This project can increase the number of contributors to the Cardano ecosystem by bringing in developers from the Python developer community.

- This project will increase the amount of open source tools and frameworks from the community for the community since it is built by a team of long time community members for other developers in the community.

The project will be openly shared through social media channels and developer groups.

Given the team's experience with the tools, this project has very low risk.

[FEASIBILITY]

Q3 2022: Wrap new CLI features (leadership schedule, mempool, incremental multi-signature) in the NodeCLI Python object.

Q4 2022: Wrap additional Cardano wallet back end functionality (CLI and HTTP). Implement additional library unit tests.

This project depends entirely on manual hours invested to implement the code.

We estimate the required effort to fall roughly at 55 hours per month. With a conservative estimate of hourly labor costs, the total comes to approximately $10,000.00 for the six month effort.

Team member 1: Dylan Crocker Ph.D.

Ph.D. in Electrical Engineering with a minor in Computer Science from Georgia Tech. Engineering professional with over 10 years of experience. Cardano stake pool operator since December 2019.

Team member 2: Willie Marchetto

Received a Bachelor of Science degree in Computer Engineering from Missouri University of Science and Technology and a Master of Science degree in Astronautical Engineering (with a focus in spacecraft electronics and software) from University of Southern California. Willie has 10 years experience in research and development of high-consequence, high-reliability space systems and has spent a great deal of time administrating Linux servers and developing Python and embedded code. Cardano stake pool operator since December 2019.

Both team members have previously had a project funded through Catalyst with successful completion.

[AUDITABILITY]

The project progress will be measured by a goal of 5 substantial git commits per month. This isn't always the best method of measuring progress so we additionally measure implemented unit tests with the goal of one new unit test implemented and passing each month.

The project work defined under this proposal will be considered "done" when the following criteria are met:

1. New CLI leadership slot computation effectively wrapped.

2. New CLI incremental multi-signature functionality effectively wrapped.

3. New CLI mempool query feature effectively wrapped.

4. 85% of the Cardano Wallet back end (both CLI and HTTP) successfully wrapped.

5. 10% increase in units test coverage of existing library.

This is an entirely new Catalyst project.

Community Reviews (1)

Comments

Monthly Reports

No

Disbursed to Date
$10,000
Status
Still in progress
Completion Target
12/31/2022
Comments 0

Login or Register to leave a comment!

Progress being made on unit tests and CI/CD. See activity here https://gitlab.com/viper-staking/cardano-tools

Disbursed to Date
$10,000
Status
Still in progress
Completion Target
12/31/2022
Attachment(s)
Comments 0

Login or Register to leave a comment!

20 commits Milestone 2 (extend cardano-wallet wrapper to at least 85% coverage): Added wrappers for 7 new commands. Total API coverage is 17.2% Completed Milestone 3 (increase unit test coverage by at least 10%): total test coverage has increased by 11% (27% total)

Disbursed to Date
$10,000
Status
Still in progress
Completion Target
3. In the next 6 months
Attachment(s)
Comments 0

Login or Register to leave a comment!

Added wrappers for the following cardano-wallet commands: update metadata, update passphrase, list assets, get asset, get asset (empty name)

Total commands wrapped: 15 / 58 (25.8%) [Goal 85%] Git commits: 3

Disbursed to Date
$10,000
Status
Still in progress
Completion Target
3. In the next 6 months
Comments 0

Login or Register to leave a comment!

Total Commits: 33 ○ Milestone 2 complete: § Total commands wrapped: 45 / 49 (91.8%) (goal: 85%) § Added the following commands: □ Address inspect □ Estimate transaction fee □ List transactions □ Forget transaction □ Construct transaction □ Sign transaction □ Decode transaction □ Submit transaction □ Migrate □ Create migration plan □ Network info □ Network clock □ Update settings □ Get settings □ SMASH health □ List stake keys □ List stake pools □ View pool maintenance actions □ Trigger pool maintenance actions □ Estimate fee □ Quit staking □ Join stake pool □ Create account public key □ Get account public key □ Get public key □ Create policy ID □ Create policy key □ Get policy key ○ Updated min_utxo calculation for Babbage era ○ Milestone 3 (already complete): Added 40 unit tests for cardano-wallet functions § Total test coverage has now increased from 16% to 50% (goal: 26%)

Disbursed to Date
$10,000
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

The project is still on track; however, we had to shift priorities this past month to other projects. There has not been any major updates since the last report submission. We intend to close out the project next month or December at the latest.

Disbursed to Date
$10,000
Status
Still in progress
Completion Target
2. In the next 3 months
Comments 0

Login or Register to leave a comment!

The last items on the Fund 8 proposal are complete. The work this month focused on wrapping CLI commands related to leader schedule and mempool queries, as well as ensuring our code works with the multisignature capability.

Disbursed to Date
$10,000
Status
Complete
Completion Target
1. In the next month
Comments 0

Login or Register to leave a comment!

close

Playlist

  • EP2: epoch_length

    Authored by: Darlington Kofa

    d. 3 se. 24
    Darlington Kofa
  • EP1: 'd' parameter

    Authored by: Darlington Kofa

    d. 4 se. 3
    Darlington Kofa
  • EP3: key_deposit

    Authored by: Darlington Kofa

    d. 3 se. 48
    Darlington Kofa
  • EP4: epoch_no

    Authored by: Darlington Kofa

    d. 2 se. 16
    Darlington Kofa
  • EP5: max_block_size

    Authored by: Darlington Kofa

    d. 3 se. 14
    Darlington Kofa
  • EP6: pool_deposit

    Authored by: Darlington Kofa

    d. 3 se. 19
    Darlington Kofa
  • EP7: max_tx_size

    Authored by: Darlington Kofa

    d. 4 se. 59
    Darlington Kofa
0:00
/
~0:00