From b4e0fb4557a6eb28b74061d80d9df82d7a1b18e3 Mon Sep 17 00:00:00 2001 From: Iuri Matias Date: Fri, 14 Dec 2018 11:48:48 -0500 Subject: [PATCH] documentation(@embark/compiler): document compiler module --- src/lib/modules/compiler/README.md | 60 ++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) create mode 100644 src/lib/modules/compiler/README.md diff --git a/src/lib/modules/compiler/README.md b/src/lib/modules/compiler/README.md new file mode 100644 index 000000000..2b16fa99d --- /dev/null +++ b/src/lib/modules/compiler/README.md @@ -0,0 +1,60 @@ +## Embark Compiler module + +This module abstracts the compiler interface. It exposes a plugin api to register contract extensions and how to handle them. It accepts command requests to compile and returns the aggregated compilation result. + +### API + +**command: `compiler:contracts`** + +arguments: + +* `contractFiles` - +* `options` - config object `{disableOptimizations: boolean (default: false)}` + +response: + +* `error` +* `compiledObject` - compilation result +``` + { + runtimeBytecode: + realRuntimeByteCode: + code: + abiDefinition: + + swarmHash: (optional) + gasEstimates: (optional) + functionHashes: (optional) + filename: (optional) + originalFilename: (optional) + } +``` + +example: + +``` +const File = require('src/lib/core/file.js'); +const contractFiles = [(new File({filename: "simplestorage.sol", type: "custom", path: "simplestorage.sol", resolver: (cb) => { return cb(".. contract code...") }}))]; + +embark.events.request("compiler:contracts", contractFiles, {}, (err, compiledObject) => { +}) + +``` + +### Plugins + +This module enables the `registerCompiler` plugin API. see [documentation](https://embark.status.im/docs/plugin_reference.html#embark-registerCompiler-extension-callback-contractFiles-doneCallback) + +***embark.registerCompiler*** + +arguments: + +* `extension` - extension of the contract language (e.g `.sol`) +* response callback + * `contractFiles`: filenames matching the extension + * `callback(error, compiledObject)` + +### Dependencies + +* async.eachObject +