muellerberndt / sabre

Security analyzer for Solidity smart contracts. Uses the MythX smart contract security service.
https://mythx.io
MIT License
60 stars 23 forks source link

Add support for multiple contracts #8

Closed eswarasai closed 5 years ago

eswarasai commented 5 years ago

Description

Figure out how solc-js and sabre handle different cases like below:

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


This issue now has a funding of 1.2 ETH (161.85 USD @ $134.88/ETH) attached to it as part of the MythX fund.

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work has been started.

These users each claimed they can complete the work by 12 months from now. Please review their action plans below:

1) eswarasai has been approved to start work.

Will look into a way to support compilation of the above listed cases

Learn more on the Gitcoin Issue Details page.

eswarasai commented 5 years ago

@b-mueller -- Here are my findings for the current setup of solc and sabre for different scenarios:

1) Multiple separate contracts in a single file solc returns all the contracts as object with keys sorted in alphabetical order of the contract name. sabre picks up the first contract from the object and generates MythX report for that

2) Base contract and inherited contract in the same file This works same as the above

3) Base contract in an imported file This might be quite not possible yet as solc itself doesn't support importing files within contract -- https://github.com/ethereum/solc-js/issues/114

Let me know how you'd like me to proceed further :)

muellerberndt commented 5 years ago

solc itself doesn't support importing files within contract

Ok, that sucks. Then there's also no easy way to fix #9.

I think in most cases it makes sense to return the analysis result for the contract with the longest byte code, which (if I'm not mistaken) should be the lowest in the inheritance hierarchy. Should we try that first?

gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


Work for 1.2 ETH (164.15 USD @ $136.79/ETH) has been submitted by:

  1. @eswarasai

@b-mueller please take a look at the submitted work:


gitcoinbot commented 5 years ago

Issue Status: 1. Open 2. Started 3. Submitted 4. Done


The funding of 1.2 ETH (164.15 USD @ $136.79/ETH) attached to this issue has been approved & issued to @eswarasai.