The basic idea is to be able to put funds into a bounty pool and distribute to a group of people that collectively work towards a goal.
At the end of the campaign—or in intervals, if it’s an open ended campaign—their success will be evaluated by verifiers. If the project is successful, the funds will be distributed among the collective of impact creators.
Verifiers will also be rewarded for their contributions out of the bounty pool.
Note: make sure your top level folder structure looks like this:
ethos-protocol
├── contracts
├── frontend
└── indexer
To build the contracts and share the artifacts (generate enums, copy ABIs), run:
bun build:all
This script does the following:
- Builds the contracts using Forge.
- Generates enums from Solidity contracts in the
src
directory. - Copies the generated
ethos-enums.ts
file to../indexer/src/
. - Copies all ABIs from the
out
directory to../indexer/abis/
.
To start a local node, deploy the contracts, and stop the node, run:
bun spinup:local
This script does the following:
- Starts a local Anvil node.
- Deploys the contracts to the local node.
- Stops the local node after deployment.
Make sure to run this script after making changes to the Solidity contracts or after compiling the contracts to ensure that the indexer has the latest enums and ABIs.