mirror of
https://github.com/ethereum/solidity
synced 2023-10-03 13:03:40 +00:00
Rework functionHashes into methodIdentifiers
This commit is contained in:
parent
63395b31af
commit
b99e4bc68b
@ -481,12 +481,12 @@ Json::Value const& CompilerStack::natspec(Contract const& _contract, Documentati
|
|||||||
return *(*doc);
|
return *(*doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
Json::Value CompilerStack::functionHashes(ContractDefinition const& _contract)
|
Json::Value CompilerStack::methodIdentifiers(string const& _contractName) const
|
||||||
{
|
{
|
||||||
Json::Value functionHashes(Json::objectValue);
|
Json::Value methodIdentifiers(Json::objectValue);
|
||||||
for (auto const& it: _contract.interfaceFunctions())
|
for (auto const& it: contractDefinition(_contractName).interfaceFunctions())
|
||||||
functionHashes[it.second->externalSignature()] = toHex(it.first.ref());
|
methodIdentifiers[it.second->externalSignature()] = toHex(it.first.ref());
|
||||||
return functionHashes;
|
return methodIdentifiers;
|
||||||
}
|
}
|
||||||
|
|
||||||
string const& CompilerStack::onChainMetadata(string const& _contractName) const
|
string const& CompilerStack::onChainMetadata(string const& _contractName) const
|
||||||
|
@ -178,7 +178,8 @@ public:
|
|||||||
/// Can be one of 4 types defined at @c DocumentationType
|
/// Can be one of 4 types defined at @c DocumentationType
|
||||||
Json::Value const& natspec(std::string const& _contractName, DocumentationType _type) const;
|
Json::Value const& natspec(std::string const& _contractName, DocumentationType _type) const;
|
||||||
|
|
||||||
Json::Value functionHashes(ContractDefinition const& _contract);
|
/// @returns a JSON representing a map of method identifiers (hashes) to function names.
|
||||||
|
Json::Value methodIdentifiers(std::string const& _contractName) const;
|
||||||
|
|
||||||
std::string const& onChainMetadata(std::string const& _contractName) const;
|
std::string const& onChainMetadata(std::string const& _contractName) const;
|
||||||
void useMetadataLiteralSources(bool _metadataLiteralSources) { m_metadataLiteralSources = _metadataLiteralSources; }
|
void useMetadataLiteralSources(bool _metadataLiteralSources) { m_metadataLiteralSources = _metadataLiteralSources; }
|
||||||
|
@ -396,7 +396,7 @@ Json::Value StandardCompiler::compileInternal(Json::Value const& _input)
|
|||||||
m_compilerStack.streamAssembly(tmp, contractName, createSourceList(_input), false);
|
m_compilerStack.streamAssembly(tmp, contractName, createSourceList(_input), false);
|
||||||
evmData["assembly"] = tmp.str();
|
evmData["assembly"] = tmp.str();
|
||||||
evmData["legacyAssembly"] = m_compilerStack.streamAssembly(tmp, contractName, createSourceList(_input), true);
|
evmData["legacyAssembly"] = m_compilerStack.streamAssembly(tmp, contractName, createSourceList(_input), true);
|
||||||
evmData["methodIdentifiers"] = m_compilerStack.functionHashes(m_compilerStack.contractDefinition(contractName));
|
evmData["methodIdentifiers"] = m_compilerStack.methodIdentifiers(contractName);
|
||||||
evmData["gasEstimates"] = m_compilerStack.gasEstimates(contractName);
|
evmData["gasEstimates"] = m_compilerStack.gasEstimates(contractName);
|
||||||
|
|
||||||
evmData["bytecode"] = collectEVMObject(
|
evmData["bytecode"] = collectEVMObject(
|
||||||
|
@ -889,7 +889,7 @@ void CommandLineInterface::handleCombinedJSON()
|
|||||||
contractData[g_strSrcMapRuntime] = map ? *map : "";
|
contractData[g_strSrcMapRuntime] = map ? *map : "";
|
||||||
}
|
}
|
||||||
if (requests.count(g_strSignatureHashes))
|
if (requests.count(g_strSignatureHashes))
|
||||||
contractData[g_strSignatureHashes] = m_compiler->functionHashes(m_compiler->contractDefinition(contractName));
|
contractData[g_strSignatureHashes] = m_compiler->methodIdentifiers(contractName);
|
||||||
if (requests.count(g_strNatspecDev))
|
if (requests.count(g_strNatspecDev))
|
||||||
contractData[g_strNatspecDev] = dev::jsonCompactPrint(m_compiler->natspec(contractName, DocumentationType::NatspecDev));
|
contractData[g_strNatspecDev] = dev::jsonCompactPrint(m_compiler->natspec(contractName, DocumentationType::NatspecDev));
|
||||||
if (requests.count(g_strNatspecUser))
|
if (requests.count(g_strNatspecUser))
|
||||||
|
@ -192,7 +192,7 @@ string compile(StringMap const& _sources, bool _optimize, CStyleReadFileCallback
|
|||||||
contractData["runtimeBytecode"] = compiler.runtimeObject(contractName).toHex();
|
contractData["runtimeBytecode"] = compiler.runtimeObject(contractName).toHex();
|
||||||
contractData["opcodes"] = solidity::disassemble(compiler.object(contractName).bytecode);
|
contractData["opcodes"] = solidity::disassemble(compiler.object(contractName).bytecode);
|
||||||
contractData["metadata"] = compiler.onChainMetadata(contractName);
|
contractData["metadata"] = compiler.onChainMetadata(contractName);
|
||||||
contractData["functionHashes"] = compiler.functionHashes(compiler.contractDefinition(contractName));
|
contractData["functionHashes"] = compiler.methodIdentifiers(contractName);
|
||||||
contractData["gasEstimates"] = estimateGas(compiler, contractName);
|
contractData["gasEstimates"] = estimateGas(compiler, contractName);
|
||||||
auto sourceMap = compiler.sourceMapping(contractName);
|
auto sourceMap = compiler.sourceMapping(contractName);
|
||||||
contractData["srcmap"] = sourceMap ? *sourceMap : "";
|
contractData["srcmap"] = sourceMap ? *sourceMap : "";
|
||||||
|
Loading…
Reference in New Issue
Block a user