aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorchriseth <c@ethdev.com>2015-06-18 23:38:26 +0800
committerchriseth <c@ethdev.com>2015-06-18 23:38:26 +0800
commitffb7d94035bf650c79cac1f94e2711795ee3f85b (patch)
treef099a964408efe78e6a3c629c6564b0785d4c712
parentf9bbe3279e7ecbbc6c25bc484500977a56af8e52 (diff)
downloaddexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.tar
dexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.tar.gz
dexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.tar.bz2
dexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.tar.lz
dexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.tar.xz
dexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.tar.zst
dexon-solidity-ffb7d94035bf650c79cac1f94e2711795ee3f85b.zip
Added fallback function to gas estimation and fixed mix gas estimation.
Fixes #2156
-rw-r--r--CommandLineInterface.cpp5
-rw-r--r--jsonCompiler.cpp2
2 files changed, 7 insertions, 0 deletions
diff --git a/CommandLineInterface.cpp b/CommandLineInterface.cpp
index ec2a9003..c95f34f6 100644
--- a/CommandLineInterface.cpp
+++ b/CommandLineInterface.cpp
@@ -273,6 +273,11 @@ void CommandLineInterface::handleGasEstimation(string const& _contract)
GasEstimator::GasConsumption gas = GasEstimator::functionalEstimation(*items, sig);
cout << " " << sig << ":\t" << gas << endl;
}
+ if (contract.getFallbackFunction())
+ {
+ GasEstimator::GasConsumption gas = GasEstimator::functionalEstimation(*items, "INVALID");
+ cout << " fallback:\t" << gas << endl;
+ }
cout << "internal:" << endl;
for (auto const& it: contract.getDefinedFunctions())
{
diff --git a/jsonCompiler.cpp b/jsonCompiler.cpp
index 7bde3e47..340713b1 100644
--- a/jsonCompiler.cpp
+++ b/jsonCompiler.cpp
@@ -91,6 +91,8 @@ Json::Value estimateGas(CompilerStack const& _compiler, string const& _contract)
string sig = it.second->externalSignature();
externalFunctions[sig] = gasToJson(GasEstimator::functionalEstimation(*items, sig));
}
+ if (contract.getFallbackFunction())
+ externalFunctions[""] = gasToJson(GasEstimator::functionalEstimation(*items, "INVALID"));
gasEstimates["external"] = externalFunctions;
Json::Value internalFunctions(Json::objectValue);
for (auto const& it: contract.getDefinedFunctions())