Development resources at your finger tips
Build with the coolest Web3 projects
Recurring funding for Open Source
Learn about Web3 & earn rewards
Show appreciation for each other
Meet fellow developers, designers, futurists and more. Collaborate and BUIDL awesome projects together.
Discover great web3 organizations, work on meaningful projects and build relationships with like minded people. Browse Tribes
Meet the top hunters and contributors from our community.
Hello, Gitcoiners & Gitcoinerettes! It’s happening again – happy blockchain times are coming to San Francisco 🎉, as the San Francisco…
Heya Gitcoiners & Gitcoinerettes! They say that July is the warmest month of the year (location depending), and we’re definitely getting ready fo…
Gitcoin is GDPR complaint. Learn more in
Gitcoin's Terms & Conditions.
Check out the Issue Explorer
Looking to fund some work? You can submit a new Funded Issue here.
Create a plugin that uses a docker image of solc (the Solidity team provides them through dockerhub) to compile contracts.
If a user installs this plugin, the compilation process should automatically (without changing their workflow) use the docker-based compilers, and no unncessary solc-js binaries should be downloaded.
Desired implementation description:
1. The plugin should override the internalTask [TASK_COMPILE_RUN_COMPILER](https://github.com/nomiclabs/buidler/blob/3f7e9e49821cb0ed87722d382ac01d58a1fad6c7/src/builtin-tasks/task-names.ts#L10). You can read its definition [here](https://github.com/nomiclabs/buidler/blob/3f7e9e49821cb0ed87722d382ac01d58a1fad6c7/src/builtin-tasks/compile.ts#L56). This is part of [PR #190](https://github.com/nomiclabs/buidler/pull/190) which will be merged soon.
2. The overriden task receives the standard JSON input of solc, and returns the standard output JSON. You can read more about them [here](https://solidity.readthedocs.io/en/v0.5.5/using-the-compiler.html#compiler-input-and-output-json-description).
3. The plugin should throw a [BuidlerPluginError](https://github.com/nomiclabs/buidler/blob/cf5d15e65485afc3dc8e92cb8a19317529fe00f4/src/plugins.ts#L1) if docker is not running.
4. The plugin should pull the docker with the right version of solc if necessary. The version is specified in the config.
5. The plugin should throw a [BuidlerPluginError](https://github.com/nomiclabs/buidler/blob/cf5d15e65485afc3dc8e92cb8a19317529fe00f4/src/plugins.ts#L1) if the version is invalid.
6. The plugin should throw a [BuidlerPluginError](https://github.com/nomiclabs/buidler/blob/cf5d15e65485afc3dc8e92cb8a19317529fe00f4/src/plugins.ts#L1) if it can't pull the docker image.
7. The plugin should have unit and/or integration tests. We can provide guidance on how to test each part.
8. The plugin must be based in the [Buidler plugin boilerplate](https://github.com/nomiclabs/buidler-ts-plugin-boilerplate).