Last updated 3 months ago
current cddl tooling are close to non exsitent, there should be something to to better use of cddl than letting human interpret it.
We propose to realize a command line tool to help developer better understand the cddl they are looking at, generating examples and test cases.
This is the total amount allocated to HLabs: cddl-tools.
Please provide your proposal title
HLabs: cddl-tools
Enter the amount of funding you are requesting in ADA
100000
Please specify how many months you expect your project to last
6
Please indicate if your proposal has been auto-translated
No
Original Language
en
What is the problem you want to solve?
current cddl tooling are close to non exsitent, there should be something to to better use of cddl than letting human interpret it.
Does your project have any dependencies on other organizations, technical or otherwise?
No
Describe any dependencies or write 'No dependencies'
All the dependencies are maintained by HLabs too
Will your project's outputs be fully open source?
Yes
License and Additional Information
Apache-2.0
Please choose the most relevant theme and tag related to the outcomes of your proposal
Developer Tools
Mention your open source license and describe your open source license rationale.
Apache-2.0 (https://www.apache.org/licenses/LICENSE-2.0.html))
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
How do you make sure your source code is accessible to the public from project start, and people are informed?
A repo on the HLabs organization (https://github.com/HarmonicLabs ) will be created to host the project.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
How will you provide high quality documentation?
A link on the Harmonic labs domain will be created, as it was done with https://mutexo.harmoniclabs.tech/
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Please describe your proposed solution and how it addresses the problem
We propose to implement a cli tool able to understand and "evaluate" cddl files and expressions to help developers work with CBOR and CDDL.
This tool will turn useful essentially every hardfork, when the ledger data types tend to be modified.
Please define the positive impact your project will have on the wider Cardano community
Any developer who has had to deal with the ledger knows how painful CBOR can be. CDDL is meant to be the language to describe the "shape" cbor is supposed to take.
Even with a CDDL file on the side, it could be hard and error prone to interpret what the CDDL is trying to say, especially due to the many "flexibilites" the CDDL spec takes.
A tool that can read CDDL, unambigously interpret it, and return a valid example for that CDDL would greatly reduce the confusion.
The same tool can then be used to automatically generate test cases that are meant to pass and edge cases that are meant to fail.
This tool would essentially be useful for the many teams working on client diversity, and to any other developer essentially every hardfork.
What is your capability to deliver your project with high levels of trust and accountability? How do you intend to validate if your approach is feasible?
HLabs has been building strictly on Cardano since at least 4 years by now.
We are deeply involved in Cardano tooling, ranging from UPLC, transaction builders and smart contracts to full cardano-nodes.
Milestone Title
CDDL parser and AST
Milestone Outputs
First step to understanding CDDL is seeing the CDDL.
We humans can read and understand matching parentesis without problem (assuming proper indentation (looking at you lisp))
But programs need to parse the text and have some representation in memory in order to do so.
This first milestone output is the program being able to "read" the CDDL text.
Acceptance Criteria
cddl-tools can read CDDL and have an AST in memory.
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Evidence of Completion
test cases showing the parsing of cddl is successful.
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Delivery Month
2
Cost
30000
Progress
30 %
Milestone Title
cddl-tools repl
Milestone Outputs
updated cddl-tools repo includes a cli allowing to import cddl files and "evaluate" it returning a random cbor that satisfies it.
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Acceptance Criteria
cli works as explaind above
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Evidence of Completion
cli works as explained above
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Delivery Month
4
Cost
50000
Progress
80 %
Milestone Title
cddl test cases generation
Milestone Outputs
updated cddl-tools repo includes a cli command to generate the relevant test cases for a given cddl definition.
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Acceptance Criteria
cddl-tools can generate test cases
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Evidence of Completion
cddl-tools can generate test cases
That's it, follows "Lorem ipsum" to reach the 200 chars requirement
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Delivery Month
6
Cost
20000
Progress
100 %
Please provide a cost breakdown of the proposed work and resources
2 devs * 7000 USD / month * 6 months
84000 USD
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
How does the cost of the project represent value for the Cardano ecosystem?
less dev hours spent debugging cbor.
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.
Terms and Conditions:
Yes
Michele Nuzzi - developer
Mike - developer
Lorem ipsum dolor sit amet consectetur adipiscing elit. Quisque faucibus ex sapien vitae pellentesque sem placerat. In id cursus mi pretium tellus duis convallis. Tempus leo eu aenean sed diam urna tempor. Pulvinar vivamus fringilla lacus nec metus bibendum egestas. Iaculis massa nisl malesuada lacinia integer nunc posuere. Ut hendrerit semper vel class aptent taciti sociosqu. Ad litora torquent per conubia nostra inceptos himenaeos.