DAI payout (26/03/2022-25/04/2022) - luzzifoss

As per the original worker proposal’s terms (visible here) I’m asking for 9000 xDai in total to be sent to DevX’s wallet (DevX.eth).

Proof of work

Swapr staking contracts

After fixing the reported issues, all the changes were merged back to master alongside the addition of the final audit report for the rewards top-up feature.


On the MVP frontend I have:

  • Added a COW/ETH Swapr pair TVL campaign (along with CoW protocol as an allowed campaign creator).
  • Did a general dependencies upgrade.
  • Restored the use of config-overrides with react-app-rewired in order to consistently get a deterministic build on different machines (deterministic IPFS hash).
  • Set up the Amsterdam Devconnect Carrot awareness campaign.
  • Added 2 campaigns by 2 entirely new creators Augmented Finance and Hundred finance in order to incentivize their token’s liquidity on Swapr.
  • Implemented an entirely new page in the dapp to make it possible to check out all campaigns in a single place (both currently active and expired) with pagination.
  • Split the sdk in a core and v1 one to start working on a new basic implementation of a Carrot v1 frontend without issues for the currently in prod MVP.
  • Released alpha 6, 7 in prod.

Proof here.

On the v1 contracts, development has been moving forward:

  • Started using Foundry as a development framework (main advantages being blazing fast performance on both test execution and build times, top to bottom Solidity usage, built-in fuzzing, static analyzers support and remappings for a more concise import experience).
  • Upgraded the Solidity version to 0.8.13.
  • In the initial version, automation won’t be supported. Since the template registries have been developed to support upgrades, the plan is to make the initial deploy as simple as possible to then 100% switch focus to automation once the initial version has been released.
  • Return question id in abi-encoded reality.eth oracle data.
  • Possibility ro specify Reality.eth question template id on Reality.eth manual oracle creation.
  • Gas optimizations.
  • In order to avoid collisions, include the oracle creator’s address in the CREATE2 salt (oracle template registry).
  • Started implementing unit/integration tests.
  • Limit number of ERC20 collaterals to 5 in ERC20 KPI token template.

Proof here.

I’ve also created a first implementation of a v1 SDK, with the following features:

  • Constants module to export basic data such as contract addresses/abis etc etc.
  • A cacher implementation to improve performance by leveraging localStorage.
  • A decoder implementation to decode abi-encoded data returned by contracts (kpi tokens and oracles). Decoding functions are indexed by template and version to always return up to date data.
  • Implement different entities with utility functions (KPI token, oracle, template, template specification, widgets etc etc).
  • Fetcher to get various data directly from a target chain (all KPI tokens, a specific KPI token by id, a template specification and more). Data gets cached for improved performance.

Proof here.