Developer’s Log with Jesse Ireland Volume 3 (September 2023)

2 min readSep 16, 2023

The time has finally come! Development of the contracts is finished, the remote team has the final versions, and I’ve hung up my developer hat for the time being (and replaced it with my Quality Assurance hat). That’s the short version, but if you’re into the details, let’s dig in:

As a reminder, in July I spent a lot of time documenting and optimizing most of the contracts. Almost all of the static contracts (the ones deployed by Modefi that form the backbone of the ODO system) were finished last month, so in August I turned my attention to the data store contracts and the on-demand contracts that are individually deployed for each data request.

There are five contracts that are deployed for each data request:

  1. A time keeper that stores information about when certain events occur (i.e. when staking starts and when dispute periods begin and end)
  2. A commitment tracker that handles available staking slots within a data request and determines the conditions that allows one validator to ‘bump’ another
  3. An endorsement tracker that tracks which users have provided data, as well as the values that inform staking and endorsement conditions
  4. A payment processor that handles validator payments and slashing
  5. A delegation contract that serves as the interface between the static contracts the on-demand contracts

Work on these contracts was completed in August, another big step toward deployment for the next phase of the beta.

DataStore Contracts

With the above tasks finished, the only thing left to complete was the DataStore contracts (the ones that store the data submitted by validators). To begin this process, I cleaned and optimized the contract for positive integers and gave it to the front end team for integration.

With the interface and algorithms established for that case, I moved on to the other data types that were already integrated into the previous version of the ODO: string values (words), positive decimals, and the list versions of those. During the update, I also took the opportunity to add support for negative integers and negative decimals, together with their list versions.

This means that the updated ODO will be our most flexible yet, with ten different data types. With the completion of the DataStore contracts, the ODO was now ‘feature complete’ and ready for the final stretch of testing!

The Final Countdown

For the beta release, I’m preparing a comprehensive end-to-end test to confirm each feature’s functionality.

The test I used during this step of the process while developing the first beta was built to work with the old consensus mechanism, meaning that several sections of it need to be rewritten. However, I am able to use parts of the previous code to expedite the process.

My current focus is finalizing the design of our new end-to-end tests. Once these have been completed and passed successfully, the contracts will be ready for launch and our second round of ODO Beta Testing can begin!




Building the foundation for real world adoption of Oracles and DeFi