Solidity, the Smart Contract Programming Language
Go to file
Rhett Aultman f3a84eab91 Error out when contracts collide on name
The previous behaviour, courtesy of the [] operator in std::map, would
uncritically store a new ContractDefinition in m_contracts even when a
ContractDefinition already existed.  This "resolved" collissions on contract
names by clobbering the original one with the new one, and could lead to
scenarios where the clobber would only be discovered when the original
ContractDefinition could not be found or referred to, which was an unhelpful
InternalCompilerError.

This change checks the m_contracts map for a collision first and will not let
the ContractDefinition be changed to a new one once it's set, throwing a
CompilerError with information about the conflict.
2017-01-16 12:32:57 -05:00
cmake Minor changes from review. 2017-01-12 17:53:06 +01:00
deps@b3db890589 Update jsoncpp.cmake from cpp-dependencies repo 2016-11-08 14:28:59 +01:00
docs Update SolidityLexer.py (#1567) 2017-01-16 10:26:09 +01:00
libdevcore Do not evaluate strings if assertion succeeds. 2017-01-12 17:52:26 +01:00
libevmasm Make enum Tier into an enum class 2017-01-13 13:19:14 +01:00
liblll LLL: throw exceptions on invalid symbols 2016-11-30 16:17:50 +00:00
libsolidity Error out when contracts collide on name 2017-01-16 12:32:57 -05:00
lllc LLL: include version number in lllc (verbatim copy of solc) 2016-11-01 12:02:08 +00:00
scripts Travis CI: Install latest CMake 2017-01-12 14:14:19 +01:00
solc Merge pull request #1491 from ameten/refactoring 2016-12-12 21:43:04 +01:00
std Add tests for the std files. 2016-11-11 19:59:31 +01:00
test Merge pull request #1479 from ethereum/function_variable_mixin 2017-01-13 09:36:00 +01:00
.gitignore Remove leading zeroes in prerelease components. 2016-09-09 14:23:33 +02:00
.gitmodules Make the Solidity repository standalone. 2016-08-01 01:45:11 -07:00
.travis.yml Travis CI: Install latest CMake 2017-01-12 14:14:19 +01:00
appveyor.yml Fix licensing headers 2016-11-23 12:22:33 +01:00
Changelog.md Update version to 0.4.9. 2017-01-13 13:56:55 +01:00
CMakeLists.txt Update version to 0.4.9. 2017-01-13 13:56:55 +01:00
CONTRIBUTING.md Link from CONTRIBUTING to the docs 2016-08-29 13:28:33 -04:00
LICENSE.txt Align license to those in file headers. 2016-06-08 22:57:30 +02:00
README.md Update README to link to new contribution section 2016-08-29 14:05:46 -04:00

The Solidity Contract-Oriented Programming Language

Join the chat at https://gitter.im/ethereum/solidity

To get started you can find an introduction to the language in the Solidity documentation. In the documentation, you can find code examples as well as a reference of the syntax and details on how to write smart contracts.

You can start using Solidity in your browser with no need to download or compile anything.

The changelog for this project can be found here.

Solidity is still under development. So please do not hesitate and open an issue in GitHub if you encounter anything strange.

Building

See the Solidity documentation for build instructions.

How to Contribute

Please see our contribution guidelines in the Solidity documentation.

Any contributions are welcome!