Development on the onchain contracts should be done in feature branches and merged into develop via PRs.
When the contracts used in Apollo are updated, the state of the repo at that point should be merged to main. Until then all onchain changes should remain in develop.
The auction mechanism makes use of a Finite Set on-chain that records all the bidders enrolled within the auction. This means that every bidder has their own BidEscrow and therefore there is no contention when making bids. See Grabbit Documentation for more.
All on-chain scripts are written in Plutarch and can be found in ./onchain
All off-chain contracts are written w/ Lucid-Evolution and can be found in Apollo-Offchain (currently closed source)
To devlop within the on-chain script environment enter a nix shell with the make command
make shell
run make usage to see additional available make commands in the root directory.
Start the Script compiler Server
make shellmake vulcan_server
-
Follow installation https://github.com/direnv/direnv/blob/master/docs/installation.md
-
Hook direnv into the shell https://github.com/direnv/direnv/blob/master/docs/hook.md
- Make sure you are inside the project directory
direnv allow
now whenever you are inside the project folder Nix environment will load automatically