As per the original worker proposal’s terms (visible here) I’m asking for 9000 DAI in total.
Proof of work
Carrot
Create Carrot Template and Carrot scripts has been in tools with the addition of Turborepo and Rollup to manage builds. With Rollup, both ESM and CJS builds of Carrot scripts were added. Proof here.
As for work on the monorepo, I have:
- Unified ESLint and TSConfigs, reviewed dependencies and done some global formatting to enforce more consistent code styling overall.
- Added Turborepo to manage the monorepo in a quicker way (especially with cache and pre-commit hooks being A LOT faster).
- Started developing a UI package (with the Carrot design system implmented in React) with the addition of Tailwind to make it quick to style components.
- Swapped out the usage of ethers’ umbrella package in favor of lighter builds (tree shaking should take care of bundle optimizations but it doesn’t seem like ethers’ is fully tree shakeable).
- Added preview builds and CI actions to link to the preview build on PRs.
- Added pnpm dependencies cache in GH Actions to considerably speed up CI…
- Done some optimizations to make lib bundles smaller overall.
- Added Craco to the frontend in order to better update Webpack config as needed (cleaner solution compared to rewired).
- Set Webpack public path to auto to make the dapp work on direct IPFS links (not in the gateway subdomain format).
- Dropped CJS support across packages to focus on ESM (enough support should be around to use the new standard).
- Updated the React core Carrot provider NOT to handle i18n directly but expecting an instance of
i18next
to be passed through (solves some issues with i18n and multiple i18next instances floating around). This also lead to a change where in federated components, the i18n instance is passed directly by the host frontend instead of the React lib. - Added a service worker to drastically improve IPFS requests performance through local caching.
- Fixed fontsource font imports across UI lib, frontend and Storybook preview.
- Forced the extraction of styles in the UI packages, now put in a
styles.css
importable by Carrot KPI UI users in their own app. - Updated the
README
of the UI package. - Exported the Tailwind preset used in the UI lib in both CJS and ESM format, in order to be used externally. The preset was created by splitting the config in preset and new config using the created preset.
- Added the Fleek integration to automatically handle preview builds for both the UI package (Storybook), the frontend (
develop
branch) and each PR on both the UI or frontend packages. - Added webmanifest and updated favicons/og/etc etc.
- Moved contracts to the v1 monorepo.
- Added the first implementation of a subgraph as a package to the v1 monorepo.
- In the UI package, a
cui
prefix to Tailwind config had to be added to avoid conflicts with classes used in the frontend package. - Implemented a first version of the wallet connection using Rainbow Connect.
Proof and further details available here, and credit to @diogo for the help in this.
On the ERC20 KPI token template, I have:
- Fixed the start playground and build tasks after Tailwind was added to the template too (Webpack related).
- Fixed Webpack config to allow for custom font imports.
Proof and further details available here, and credit to @guerrap for the help in this.