Celo project: Python SDK Overview
What was the task?
How many milestones do the project have and how we divide them?
Firstly, we have divided the project as two main tasks: one is Java SDK development, and the second one is Python SDK development. Each consists of two milestones: first is developing the whole functional part and then writing unit tests and documentation preparation and finalization. We work in a team of 4 developers concentrating on back-end blockchain development in particular.
Accomplishments for now
We have clothed the first milestone and have the fully functional SDK for Python ready now. Broadly speaking, we have built the main object which the SDK users will utilize. This base kit allows to set the parameters of the wallet such as cost and amount of gas per transaction, create new keys or use existing ones and create contract objects. At the moment, wrappers for all main contracts of the Celo Protocol have been finished and are ready for the test phase. Wrappers represent a separate class where all the main requests for the contract are already registered. Therefore, the user does not need to re-write requests, he will simply use our class (wrapper), which will greatly speed up and simplify the whole work.
Challenges we faced
There are some unique exceptions in Celo blockchain framework which are not presented on any other platform. It creates some difficulties while configuring it with other applications. The Eth Account library is the most suitable for transaction formation. Yet, due to the uniqueness of the transaction body in Celo blockchain, we had to customize this library so that we could construct our own transaction and sign it.
Another difficulty was to write utils of various kinds. Utils are methods that hash data or help to convert one data type to another and therefore represent one of the main functionality of the whole kit. That is why, we needed to spend a great amount of time to study the existing SDK precisely and only then implement utils in the Python SDK.
We plan to set up the test environment which includes Ganache node running along with Celo contract deployment as our next step. After that we can start writing and performing unit tests itself. Thereafter, eliminate eventual bugs and write the project documentation. We all in Blaize are so excited for this coming up soon!