aboutsummaryrefslogtreecommitdiffstats
path: root/CompilerStack.h
diff options
context:
space:
mode:
authorLefteris Karapetsas <lefteris@refu.co>2015-01-13 22:59:42 +0800
committerLefteris Karapetsas <lefteris@refu.co>2015-01-13 22:59:42 +0800
commit12e000e0d327ead61092c890d0e5a359a9b9a54d (patch)
tree0e2e54e42c7ceab279ff82351c244f40a344df10 /CompilerStack.h
parenta253abf0623aec5ebbf8fa8b4ec3b00596c724ee (diff)
downloaddexon-solidity-12e000e0d327ead61092c890d0e5a359a9b9a54d.tar.gz
dexon-solidity-12e000e0d327ead61092c890d0e5a359a9b9a54d.tar.zst
dexon-solidity-12e000e0d327ead61092c890d0e5a359a9b9a54d.zip
A first version of Natspec warning popup
- Runtime Contract code hash can now be retrieved from the Compiler - Using the hash the Natspec handler stores and later retrieves Natspec JSON for a given contract.
Diffstat (limited to 'CompilerStack.h')
-rw-r--r--CompilerStack.h10
1 files changed, 7 insertions, 3 deletions
diff --git a/CompilerStack.h b/CompilerStack.h
index da0adf57..202f1b32 100644
--- a/CompilerStack.h
+++ b/CompilerStack.h
@@ -76,7 +76,13 @@ public:
/// @returns the compiled bytecode
bytes const& compile(std::string const& _sourceCode, bool _optimize = false);
+ /// Gets the assembled bytecode for a contract
bytes const& getBytecode(std::string const& _contractName = "") const;
+ /// Get the runtime context's bytecode for a contract
+ bytes const& getRuntimeBytecode(std::string const& _contractName = "") const;
+ /// Get the runtime context's code hash for a contract
+ dev::h256 getContractCodeHash(std::string const& _contractName = "") const;
+
/// Streams a verbose version of the assembly to @a _outStream.
/// Prerequisite: Successful compilation.
void streamAssembly(std::ostream& _outStream, std::string const& _contractName = "") const;
@@ -108,9 +114,6 @@ public:
/// scanning the source code - this is useful for printing exception information.
static bytes staticCompile(std::string const& _sourceCode, bool _optimize = false);
- /// Get the runtime context's code hash for a contract. LTODO
- dev::h256 getContractCodeHash(std::string const& _contractName);
-
private:
/**
* Information pertaining to one source unit, filled gradually during parsing and compilation.
@@ -128,6 +131,7 @@ private:
ContractDefinition const* contract = nullptr;
std::shared_ptr<Compiler> compiler;
bytes bytecode;
+ bytes runtimeBytecode;
std::shared_ptr<InterfaceHandler> interfaceHandler;
mutable std::unique_ptr<std::string const> interface;
mutable std::unique_ptr<std::string const> solidityInterface;