Audit submission page
What it does
The site allows users to submit smart contracts to an audit through Quantstamp. In addition to uploading solidity files, users can also fetch verified contracts from etherscan to audit. Instead of presenting users with a JSON file containing the report code, this application displays the reported warnings inline in the source code file on the Report page.
How I built it
The site was built from scratch using React, Next.js, Web3 and the Quantstamp UI-Library. A number of site features use the Etherscan API.
Challenges I ran into
Fetching some information, such as past audit requests, was difficult due to the limitations of the existing Quantstamp contracts. There are no events indexed by sender, and no mappings to retrieve audit ID numbers. I worked through some of these issues by using Etherscan APIs to fetch transaction data for various users and transactions. Other issues were handled by parsing data from transaction data and receipts. These allow the site to load past audits.
One challenge I wasn't able to overcome was facing a CORS issue when fetching data from AWS. I chose to focus my time and energy on other issues, so I hardcoded the data that would be returned from a request.
Alternatively, IPFS could be a cool system for storing the report files and source code :)