Merge pull request #5621 from ethereum/explainAST

Improve explanation how to get abi output.
This commit is contained in:
chriseth 2018-12-11 16:08:23 +01:00 committed by GitHub
commit 599760b6ab
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 21 additions and 9 deletions

View File

@ -224,9 +224,9 @@ for displaying the current position in the source code inside a debugger
or for breakpoint handling. or for breakpoint handling.
Both kinds of source mappings use integer identifiers to refer to source files. Both kinds of source mappings use integer identifiers to refer to source files.
These are regular array indices into a list of source files usually called The identifier of a source file is stored in
``"sourceList"``, which is part of the combined-json and the output of ``output['sources'][sourceName]['id']`` where ``output`` is the output of the
the json / npm compiler. standard-json compiler interface parsed as JSON.
.. note :: .. note ::
In the case of instructions that are not associated with any particular source file, In the case of instructions that are not associated with any particular source file,

View File

@ -200,15 +200,27 @@ Input Description
"MyLib": "0x123123..." "MyLib": "0x123123..."
} }
} }
// The following can be used to select desired outputs. // The following can be used to select desired outputs based
// If this field is omitted, then the compiler loads and does type checking, but will not generate any outputs apart from errors. // on file and contract names.
// The first level key is the file name and the second is the contract name, where empty contract name refers to the file itself, // If this field is omitted, then the compiler loads and does type checking,
// while the star refers to all of the contracts. // but will not generate any outputs apart from errors.
// The first level key is the file name and the second level key is the contract name.
// An empty contract name is used for outputs that are not tied to a contract
// but to the whole source file like the AST.
// A star as contract name refers to all contracts in the file.
// Similarly, a star as a file name matches all files.
// To select all outputs the compiler can possibly generate, use
// "outputSelection: { "*": { "*": [ "*" ], "": [ "*" ] } }"
// but note that this might slow down the compilation process needlessly.
// //
// The available output types are as follows: // The available output types are as follows:
// abi - ABI //
// File level (needs empty string as contract name):
// ast - AST of all source files // ast - AST of all source files
// legacyAST - legacy AST of all source files // legacyAST - legacy AST of all source files
//
// Contract level (needs the contract name or "*"):
// abi - ABI
// devdoc - Developer documentation (natspec) // devdoc - Developer documentation (natspec)
// userdoc - User documentation (natspec) // userdoc - User documentation (natspec)
// metadata - Metadata // metadata - Metadata
@ -281,7 +293,7 @@ Output Description
// This contains the file-level outputs. In can be limited/filtered by the outputSelection settings. // This contains the file-level outputs. In can be limited/filtered by the outputSelection settings.
sources: { sources: {
"sourceFile.sol": { "sourceFile.sol": {
// Identifier (used in source maps) // Identifier of the source (used in source maps)
id: 1, id: 1,
// The AST object // The AST object
ast: {}, ast: {},