Skip to content

Instantly share code, notes, and snippets.

@sakulstra
Last active April 29, 2023 13:57
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save sakulstra/25760582be25a31232644ff6f11c3752 to your computer and use it in GitHub Desktop.
Save sakulstra/25760582be25a31232644ff6f11c3752 to your computer and use it in GitHub Desktop.
tooling

Hey,had a closer look at gauntlet pr: https://github.com/GauntletNetworks/aave-proposals/pull/2/files

  • generate generates the proposal/tests/scripts based on a supplied ts https://github.com/GauntletNetworks/aave-proposals/pull/2/files#diff-45b18505dc9d6a005ade2f483af09d6387ad8248437b2a44d902ad0c675e5f78R1. This seems a bit different to what we started with. Instead of having another "config" artifact generating the proposal our appraoch was to have essentially a prompt asking you what you want & generating the proposal based on that.
    • the advantage of gauntlet approach is that it's easily reproducible/deterministic and you can change the config to then change the proposal & tests. Also if you know the tooling it's faster than ours. The core idea is that you never touch the solidity code and only adjust it via the generator.
    • the advantage of our appraoch is that you don't need any knowledge about the system. The core idea is that you initialize via the generator and then adjust on top of that.

Gauntlet approach is legit & useful for teams mostly doing repeating tasks that can be easy generated e2e.

Potentially our system could be improved to spit out a json or similar at the end (and allow as input on the start) so we end up with what gauntlet proposes on top of ours (as our system is very much a prototype and their is working & used in prod already, that just a thought for the future).

  • upload-ipfs transforms to json, uploads a file to ipfs (pinata & thegraph)

We don't cover this at all yet, but not sure if it makes sense as part of the cli level, or should better just be on ci? For teams like gauntlet who skip the current aave/aip process definitely useful. Put my thoughts about how i imagine the overall process here: bgd-labs/aave-proposals#85 (comment)

  • test tests a proposal based on glob date pattern a la forge test --match-contract AaveV3.*Update_${argv.updateDate}_Test -vv

  • deploy essentially same as test but for deploy

  • emit-proposal essentially same as deploy but for emit

I think a glob pattern is useful, although i'm wondering why by date and not topic? Anyhow both might be legit - that said, i don't see why one would do this in js and not just put it one the makefile?

Final thoughts: I think it's fine to merge (after careful review ofc¹) & will definitely add value short-term for teams like gauntlet/chaos/llama.

  • test, deploy and emit should probably be removed and moved to make.
  • upload-ipfs we might want to switch to our own tooling eventually

¹ Didn't yet have time to check, but there are some deps idk, so should probably review a bit in detail (namely stream-to-it and exaca.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment