Bounties put fourth by the Augur team for Ethereum/Solidity tooling.
2,000 REP bounty for a Solidity debugger which is portable / provided as a library.
The 2,000 REP has been escrowed with Bounties.Network and can be seen here.
The debugger should have the following features:
- Set breakpoints in Solidity
- Inspect variables when those breakpoints are hit
- Execute Solidity from the context of a bremakpoint and see the result/failure
- Library that can be integrated into editors/IDEs
- VSCode integration
- Should work on any OS
- Should work with TestRPC
Desired workflow: set breakpoint in Solidity code, run tests (e.g., using Mocha or Pyethereum tester), drop into debugging environment. See local variables, step forwards and backwards, see storage, etc.
All claimed for right now! Keep an eye out for more rules being added.
50 REP bounty per rule added to Solium.
Please read how to claim your bounty below if you're on this list:
- [required] Prohibit use of selfdestruct/suicide [@bwitt2]
- [required] Prohibit use of assembly [@solium-plugin]
- [required] Prohibit use of tx.origin [@solium-plugin]
- [optional] Prohibit use of call.value [@solium-plugin]
- [optional] Prohibit use of delegatecall [@solium-plugin]
- [required] Prohibit bitshifts and bit operators [@beaugunderson]
- [required] Prohibit fixedpoint (fixed and ufixed) types [@beaugunderson]
- [required] Prohibit use of integer types smaller than 256 bits [@beaugunderson]
- [required] Prohibit use of var / all variable types must be explicitly stated [@beaugunderson]
- [required] Prohibit use of named parameters in function calls [@beaugunderson]
- [optional] Prohibit use of user-defined modifiers [@beaugunderson]
- [optional] Restrict functions to a user-specified number of lines of code [@beaugunderson]
- [required] Prohibit unreachable code [@beaugunderson]
- [optional] Modifiers must have the _ as the last statement of the modifier [@beaugunderson]
- [required] Prohibit use of continue statement [@Cisplatin]
- [optional] Functions must have a single return at the end of the function [@Cisplatin]
- [required] Do not assign to parameters [Cisplatin]
- [required] Prohibit modification of for loop iteration counting variables in the loop body [nfeignon]
- [required] Prohibit use of inheritance [@nfeignon]
- [required] Prohibit use of multiple inheritance [@nfeignon]
- [required] Prohibit abstract functions [@nfeignon]
- [required] Functions must have an explicit return statement [@nfeignon]
- [required] Prohibit loops without fixed bounds [@nfeignon]
- [required] Functions must have a declared return type (i.e., no void returns) [@nfeignon]
- [required] Prohibit function overriding [@nfeignon]
- [required] Prohibit use of multiple inheritance but allow interfaces [@nfeignon]
- [required] Prohibit use of inheritance but allow interfaces [@nfeignon]
- [required] Only one break statement allowed per loop [@artemlitch]
- [required] An else clause must be included after else if [@mpokrass]
- [required] Prohibit use of send [TristanH]
To claim a bounty, make an issue on the augur-bounties GitHub repo, using the same username that you used to submit your code, and request payment of the bounty to an Ethereum address.