GitXplorerGitXplorer
m

verisol

public
246 stars
46 forks
51 issues

Commits

List of commits on branch master.
Verified
4357a18b73c07e09f0b615bc2733e3b93f61fd44

Merge pull request #276 from microsoft/users/GitHubPolicyService/c9f088c0-051f-419c-ac4e-d0c2bb415633

sshuvendu-lahiri committed 2 years ago
Verified
9bcde28b65fde2e54fe2be488c3639c3d3653a04

Microsoft mandatory file

mmicrosoft-github-policy-service[bot] committed 2 years ago
Verified
d11d392c8c345e165911acb8bb4e30e8b88d87c6

Update README.md

sshuvendu-lahiri committed 3 years ago
Verified
b23ef5ce3e8bcc1a9de69f324b1ee76d17fbb794

Merge pull request #268 from microsoft/ellab-exception

sshuvendu-lahiri committed 5 years ago
Verified
c90ee5bf8f1118e76cf750b122292bdc2284c194

Merge branch 'master' into ellab-exception

eellab123 committed 5 years ago
Unverified
09fdc488ee704a772c2e629077b88d53f2de3789

bump up VeriSol version to 0.1.5-alpha; last merge '69a51b1 3c39efb'

eellab123 committed 5 years ago

README

The README file for this repository.

We are no longer actively maintaining the tool as of 2021

Build Status

VeriSol

VeriSol (Verifier for Solidity) is a Microsoft Research project for prototyping a formal verification and analysis system for smart contracts developed in the popular Solidity programming language. It is based on translating programs in Solidity language to programs in Boogie intermediate verification language, and then leveraging and extending the verification toolchain for Boogie programs. The following blog provides a high-level overview of the initial goals or VeriSol.

The following paper describes the design of VeriSol and application of smart contract verification for Azure Blockchain:

Formal Specification and Verification of Smart Contracts for Azure Blockchain, Yuepeng Wang, Shuvendu K. Lahiri, Shuo Chen, Rong Pan, Isil Dillig, Cody Born, Immad Naseer, https://arxiv.org/abs/1812.08829

INSTALL

Instructions for installing and running VeriSol can be found here.

VeriSol Code Contracts library

The code contract library VeriSolContracts.sol is present here. This allows adding specifications in the form of pre/post conditions, loop invariants, contract invariants, modifies clauses, and extending the assertion language with constructs such as old, sum, etc.

License

VeriSol is licensed under the MIT license.

Contributing

This project welcomes contributions and suggestions. Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit https://cla.microsoft.com.

When you submit a pull request, a CLA-bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., label, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.