Commit Graph

187 Commits

Author SHA1 Message Date
Li Xuanji
576964bd01 Mark --formal as deprecated in CLI options 2018-04-11 20:08:41 +01:00
Daniel Kirchner
c15cb6cc7a Prevent information about file existence outside the allowed paths to leak by mimicing boost::filesystem::weakly_canonical. 2018-04-11 18:52:22 +02:00
Sergiusz Bazanski
f39f36f2c7 Fix file missing error message on imports.
Trying to convert an import path into a Boost canonical path causes
boost to throw an exception if the given file does not exist. Thus,
instead of geting to the 'File not found' error, we instead got into the
cath-all handler for 'Unknown exception in read callback'.

This change rearranges the file checks to happen before we create a
canonical Boost path. It also drive-by removes the unnecessary 'else'
block, as the body of the if is a guard-like return block.
2018-04-06 11:03:52 +02:00
Anthony Broad-Crawford
8a18f22b87 Support for error on non-existant or irregular files with command line option to ignore 2018-03-28 10:25:43 +01:00
chriseth
6ec4517929 Use EVM version in gas meter and optimizer. 2018-03-05 11:36:33 +01:00
chriseth
4ce0e7775d Add constantinople. 2018-03-01 17:19:35 +01:00
chriseth
982476f99d Add TangerineWhistle. 2018-03-01 17:19:35 +01:00
chriseth
dc317a44e0 Provide EVM version to assembly analysis. 2018-03-01 17:19:35 +01:00
chriseth
5ab4a1ae78 Add ability to set the target EVM version. 2018-03-01 17:19:34 +01:00
Zhen Zhang
5fd9ea4b2a Stop allow_guessing for command line option parser 2018-02-28 09:31:24 +08:00
Federico Bond
d7532f7b9c Convert static SourceReferenceFormatter functions to member ones 2018-02-19 15:04:22 +01:00
Alex Beregszaszi
bc1fffb42f Support --strict-assembly in CLI 2018-01-06 03:28:12 +00:00
chriseth
4e7d1440ab Merge pull request #3101 from ethereum/compilerstack-header
Remove the reliance on empty contract name equals "last contract" in CompilerStack
2017-10-19 13:43:17 +02:00
Alex Beregszaszi
2ce35b77be Implement CompilerStack.lastContractName() 2017-10-18 23:54:32 +01:00
Alex Beregszaszi
039cc25b1f Always require a contract/sourceName in CompilerStack 2017-10-18 23:32:33 +01:00
Alex Beregszaszi
6f2865228c Add readStandardInput helper 2017-10-18 12:56:11 +01:00
Alex Beregszaszi
7186e142b8 Rename contentsString to readFileAsString 2017-10-18 12:55:12 +01:00
Sergiusz Bazanski
a458100175 Do not use remove_trailing_separator from Boost 1.58 as 1.56 is required 2017-10-06 13:55:18 +01:00
Sergiusz Bazanski
71a819654e Allow trailing slash in solc -allow-paths. 2017-10-06 13:55:18 +01:00
Ali92hm
61dabb2f29 Added --pretty-json commandline option 2017-09-12 21:51:28 +01:00
Ali92hm
487ade1635 Enabling --combined-json to output to file 2017-09-12 21:50:22 +01:00
Ali92hm
1a9c503e93 Added createJson method to make writing json easier 2017-09-12 21:50:22 +01:00
Alex Beregszaszi
bd6510d99a Simplify assembly printing in CLI 2017-09-11 15:53:20 +01:00
Alex Beregszaszi
bbfb16cf5c Introduce assemblyString 2017-09-11 15:53:20 +01:00
Alex Beregszaszi
a535a8b06e Split out the JSON functionality from assembly.stream() 2017-09-11 15:48:52 +01:00
chriseth
9ac2ac14c1 Rename read file callback. 2017-08-23 17:37:35 +02:00
chriseth
e3f90565d8 Avoid some Json copy operations. 2017-08-21 16:28:30 +01:00
Alex Beregszaszi
7222fac456 Remove DocumentationType from natspec 2017-08-15 19:56:38 +01:00
Alex Beregszaszi
30012db396 Add CompilerStack::setOptimiserSettings 2017-07-26 15:17:07 +01:00
Alex Beregszaszi
6848199b66 Add CompilerStack::setLibraries 2017-07-26 15:05:16 +01:00
Alex Beregszaszi
6d8929a71a Rename onChainMetadata to metadata 2017-07-18 20:54:28 +01:00
chriseth
c78a3a0b01 Add other licenses. 2017-07-01 22:59:08 +01:00
Alex Beregszaszi
555dc4f46f Remove Why3 generator 2017-06-25 12:26:16 +01:00
Alex Beregszaszi
ba7d698ee6 Make compiler.contractDefinition private 2017-06-22 11:13:06 +01:00
Alex Beregszaszi
b99e4bc68b Rework functionHashes into methodIdentifiers 2017-06-22 11:13:06 +01:00
chriseth
9084d48750 Merge pull request #2382 from ruchevits/combined-json-hashes
Allow including hashes of method signatures in --combined-json output
2017-06-15 10:10:18 +02:00
chriseth
e232a105f0 Merge pull request #2327 from ethereum/assembler-object
Return assembler object in AssemblyStack
2017-06-14 14:28:06 +02:00
Edward Ruchevits
2e816967d3 Allow including hashes of method signatures in --combined-json output 2017-06-13 17:03:17 +01:00
chriseth
f583008c73 Remove copyright notice. 2017-06-12 12:28:17 +02:00
Alex Beregszaszi
762bec9116 Nicer machine output in CLI 2017-06-09 16:40:14 +02:00
Alex Beregszaszi
ca92bda886 Supply text representation of assembly 2017-06-09 16:40:14 +02:00
Alex Beregszaszi
f0d213e6b5 Introduce MachineAssemblyObject 2017-06-09 16:40:14 +02:00
chriseth
9d0691b47a Include license and warranty statement with solc. 2017-06-09 13:11:15 +02:00
chriseth
002df12d13 Merge pull request #2287 from ethereum/legacyAstCLI
add legacy/compact AST-format options to CLI
2017-05-29 14:24:55 +02:00
chriseth
261731f7ee Adapt EVM codegen to new namespace. 2017-05-26 15:08:27 +02:00
chriseth
eaa13d42a0 Support multiple assembly front and backends. 2017-05-26 15:03:29 +02:00
chriseth
f2804c49ed Handle assembly in one go to allow for different stacks. 2017-05-26 11:50:26 +02:00
chriseth
9a23603af2 Commandline options. 2017-05-26 11:50:26 +02:00
djudjuu
1131c5035f make src-indices equal (#2286) 2017-05-24 14:48:32 +02:00
djudjuu
0f7a9e8149 add legacy/compact AST-format options to CL 2017-05-24 14:48:32 +02:00
chriseth
8eead553af Merge pull request #1810 from ethereum/compactJson
Compact format for AST-Json.
2017-05-22 14:33:46 +02:00
Alex Beregszaszi
bbef2cd4a8 Rename handleMeta to handleNatspec 2017-05-19 16:11:04 +01:00
Alex Beregszaszi
cd5d93da2a Rename CompilerStack.metadata to CompilerStack.natspec 2017-05-19 16:11:04 +01:00
Alex Beregszaszi
4bf3cbb09a Use CompilerStack.contractABI directly 2017-05-19 15:57:36 +01:00
Alex Beregszaszi
8169e149c9 Rename CompilerStack.interface to CompilerStack.contractABI 2017-05-19 15:57:36 +01:00
chriseth
dea7b864e6 Compact format for AST-Json with backwards compatibility 2017-05-17 11:14:33 +02:00
Alex Beregszaszi
a95c86e8e4 Catch errors gracefully in CLI assembler 2017-05-06 10:43:58 +01:00
chriseth
017fedebfe Add missing space. 2017-04-24 14:22:39 +02:00
Alex Beregszaszi
b7951be44a Add exception guard to ReadFileCallback in CLI 2017-04-22 14:08:28 +01:00
Alex Beregszaszi
4566b4b336 Pass readFileCallback to StandardCompiler in CLI 2017-04-20 23:22:23 +01:00
Alex Beregszaszi
ed64c849f5 Merge pull request #2145 from ethereum/cli-readfile-permissions
Check for path permissions before opening file in the CLI file reader
2017-04-20 20:31:27 +01:00
Alex Beregszaszi
b30fad4a49 Check for path permissions before opening file in the CLI file reader 2017-04-20 20:01:17 +01:00
Alex Beregszaszi
8c9e57fadf Add --standard-json to solc 2017-04-20 19:38:00 +01:00
Alex Beregszaszi
8bf842050e Support --allow-paths in the CLI 2017-04-20 15:39:30 +01:00
Alex Beregszaszi
54dcb0e11b Keep gas values as a string in CompilerStack::gasEstimate 2017-04-13 02:18:29 +01:00
Alex Beregszaszi
328f2b0a8e Use new gasEstimate in CLI 2017-04-13 02:17:40 +01:00
Alex Beregszaszi
623b8eb107 Pull out ReadFile from CompilerStack 2017-04-10 12:49:47 +01:00
chriseth
14196f2621 Allow long library names. 2017-03-14 11:58:43 +01:00
chriseth
31a5e5bfef Do not overwrite files unless forced. 2017-03-10 19:23:43 +01:00
Alex Beregszaszi
a5d0fd9c8a Do not create directories . and .. 2017-02-06 14:27:54 +00:00
Alex Beregszaszi
46412473b6 Always escape filenames in solc 2017-02-05 19:19:29 +00:00
VoR0220
b3f0d713a1
fix for linker wrt binaries generated with import statements
Signed-off-by: VoR0220 <rj@erisindustries.com>
2017-01-30 13:41:33 -06:00
Alex Beregszaszi
102fd7ee5d Merge pull request #1604 from ethereum/checksums
Warn about invalid checksums of addresses.
2017-01-26 14:42:34 +00:00
Alex Beregszaszi
024061b828 Merge pull request #1610 from ethereum/assemblyModeError
Proper error reporting for assembly mode.
2017-01-26 14:41:39 +00:00
Alex Beregszaszi
84bf547f21 Add option to solc to use literal sources in metadta 2017-01-26 13:24:59 +00:00
chriseth
8e29d636f7 Header cleanup. 2017-01-26 13:47:57 +01:00
chriseth
1b097fd3c7 Proper error reporting for assembly mode. 2017-01-26 13:45:23 +01:00
chriseth
3949624a61 Also check library addresses. 2017-01-24 23:37:48 +01:00
Rhett Aultman
610156fb92 Fix bad merge artifact(?)
Looks like merging up munged line 188 in CommandLineInterface.cpp,
so that a string literal was being used where a global variable should
be.
2017-01-16 12:32:58 -05:00
Rhett Aultman
0c98e4b2da Stylistic corrections 2017-01-16 12:32:57 -05:00
Rhett Aultman
071b936b37 Only avoid collision if it's the same file
@chriseth had suggested that it would be better if contracts were
referenced in a file:contract notation, and that we output .bin files
that prepend original path names if necessary to avoid a collision.

This commit is mostly a draft; it still needs to be run through the test
suite.
2017-01-16 12:32:57 -05:00
chriseth
c111d6e27e Merge pull request #1491 from ameten/refactoring
Just refactored some code
2016-12-12 21:43:04 +01:00
Federico Bond
dac95ce398 Remove unused variable inputFiles 2016-12-11 00:41:41 -03:00
Danil Nemirovsky
e5a992937c - alphabetically sorted string constants per name. 2016-12-08 21:33:09 +03:00
Danil Nemirovsky
f1cf9eb1ea - moved string constants into common place;
- replaced string literals with string constants.
2016-12-08 21:33:09 +03:00
Alex Beregszaszi
35325ee7c3 Update metadata documentation 2016-12-01 16:03:59 +01:00
chriseth
659b635b2d Make sure some keys are present. 2016-12-01 16:03:59 +01:00
chriseth
5789eaa78d Metadata stamp. 2016-12-01 16:03:59 +01:00
Federico Bond
29e304d3bc Fix typos (existant -> existent) 2016-12-01 01:29:30 -03:00
VoR0220
3f9f725737 Fix licensing headers
Signed-off-by: VoR0220 <rj@erisindustries.com>
2016-11-23 12:22:33 +01:00
Alex Beregszaszi
81c50143f2 Move JSON helpers to libdevcore/json 2016-11-15 17:38:18 +00:00
Alex Beregszaszi
9719cf38e6 Move InterfaceHandler from string to JSON 2016-11-15 15:55:25 +00:00
Rhett Aultman
58e75c7a48 Unimplemented features moved to their own exception (#1361)
Unimplemented features moved to their own exception

InternalCompilerError is an exception that really should be reserved for
actual internal errors of the compiler.  Unimplemented features can now
use either solUnimplemented( ) or, if it should be conditional, then
solUnimplementedAssert( ).

* Revert some unimplemented exceptions, add handlers

The jsonCompiler and CommandLineInterface needed handlers for the
new UnimplementedFeatureException, and some cases I had moved on to
the new exception were better treated as real internal compiler
errors.

* Standardize on "Unimplemented feature" message
2016-11-14 20:41:58 +00:00
Kevin Boxhoorn
97703ac6e4 Add import remapping documentation to solc --help
Derived from the docs found [here](https://solidity.readthedocs.io/en/develop/miscellaneous.html#using-the-commandline-compiler).
Fixes #1207.
2016-10-15 17:36:40 +11:00
Alex Beregszaszi
bab96ee1e0 Disallow unknown options in solc 2016-10-06 16:32:56 +02:00
chriseth
8c315a18c9 Fix compiler error. 2016-09-06 11:57:21 +02:00
chriseth
f869f25b84 More comments about size constants. 2016-09-06 11:12:55 +02:00
chriseth
a787e70594 Fix linking for libraries with underscores. 2016-09-02 01:17:02 +02:00
Denton Liu
e00f802f72 Remove standard contracts 2016-08-19 10:34:50 -04:00
chriseth
c282ab379a Merge pull request #918 from winsvega/solremove4
remove solidity --interface
2016-08-17 17:55:40 +02:00