aboutsummaryrefslogtreecommitdiffstats
path: root/libsolidity
diff options
context:
space:
mode:
authorchriseth <chris@ethereum.org>2016-08-27 01:32:18 +0800
committerGitHub <noreply@github.com>2016-08-27 01:32:18 +0800
commitfb7836d87bba0eacb2454d6c50b1209365a89b6d (patch)
tree81810b473d4ae5f76e2cb97a959ff234382966ac /libsolidity
parent69acd25888007c536bef22e350725cf444db58ad (diff)
parent56558c0db2ad1e64aa81aaa05820388c2ba65a45 (diff)
downloaddexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.tar
dexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.tar.gz
dexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.tar.bz2
dexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.tar.lz
dexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.tar.xz
dexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.tar.zst
dexon-solidity-fb7836d87bba0eacb2454d6c50b1209365a89b6d.zip
Merge pull request #897 from Denton-L/remove-standard
BREAKING: Remove standard contracts
Diffstat (limited to 'libsolidity')
-rw-r--r--libsolidity/interface/CompilerStack.cpp33
-rw-r--r--libsolidity/interface/CompilerStack.h5
2 files changed, 8 insertions, 30 deletions
diff --git a/libsolidity/interface/CompilerStack.cpp b/libsolidity/interface/CompilerStack.cpp
index 0e5ead2b..bd79bb73 100644
--- a/libsolidity/interface/CompilerStack.cpp
+++ b/libsolidity/interface/CompilerStack.cpp
@@ -42,26 +42,8 @@ using namespace std;
using namespace dev;
using namespace dev::solidity;
-const map<string, string> StandardSources = map<string, string>{
- {"coin", R"(import "CoinReg";import "Config";import "configUser";contract coin is configUser{function coin(bytes3 name, uint denom) {CoinReg(Config(configAddr()).lookup(3)).register(name, denom);}})"},
- {"Coin", R"(contract Coin{function isApprovedFor(address _target,address _proxy)constant returns(bool _r){}function isApproved(address _proxy)constant returns(bool _r){}function sendCoinFrom(address _from,uint256 _val,address _to){}function coinBalanceOf(address _a)constant returns(uint256 _r){}function sendCoin(uint256 _val,address _to){}function coinBalance()constant returns(uint256 _r){}function approve(address _a){}})"},
- {"CoinReg", R"(contract CoinReg{function count()constant returns(uint256 r){}function info(uint256 i)constant returns(address addr,bytes3 name,uint256 denom){}function register(bytes3 name,uint256 denom){}function unregister(){}})"},
- {"configUser", R"(contract configUser{function configAddr()constant returns(address a){ return 0xc6d9d2cd449a754c494264e1809c50e34d64562b;}})"},
- {"Config", R"(contract Config{function lookup(uint256 service)constant returns(address a){}function kill(){}function unregister(uint256 id){}function register(uint256 id,address service){}})"},
- {"mortal", R"(import "owned";contract mortal is owned {function kill() { if (msg.sender == owner) suicide(owner); }})"},
- {"named", R"(import "Config";import "NameReg";import "configUser";contract named is configUser {function named(bytes32 name) {NameReg(Config(configAddr()).lookup(1)).register(name);}})"},
- {"NameReg", R"(contract NameReg{function register(bytes32 name){}function addressOf(bytes32 name)constant returns(address addr){}function unregister(){}function nameOf(address addr)constant returns(bytes32 name){}})"},
- {"owned", R"(contract owned{function owned(){owner = msg.sender;}modifier onlyowner(){if(msg.sender==owner)_}address owner;})"},
- {"service", R"(import "Config";import "configUser";contract service is configUser{function service(uint _n){Config(configAddr()).register(_n, this);}})"},
- {"std", R"(import "owned";import "mortal";import "Config";import "configUser";import "NameReg";import "named";)"}
-};
-
-CompilerStack::CompilerStack(bool _addStandardSources, ReadFileCallback const& _readFile):
- m_readFile(_readFile), m_parseSuccessful(false)
-{
- if (_addStandardSources)
- addSources(StandardSources, true); // add them as libraries
-}
+CompilerStack::CompilerStack(ReadFileCallback const& _readFile):
+ m_readFile(_readFile), m_parseSuccessful(false) {}
void CompilerStack::setRemappings(vector<string> const& _remappings)
{
@@ -81,7 +63,7 @@ void CompilerStack::setRemappings(vector<string> const& _remappings)
swap(m_remappings, remappings);
}
-void CompilerStack::reset(bool _keepSources, bool _addStandardSources)
+void CompilerStack::reset(bool _keepSources)
{
m_parseSuccessful = false;
if (_keepSources)
@@ -90,8 +72,6 @@ void CompilerStack::reset(bool _keepSources, bool _addStandardSources)
else
{
m_sources.clear();
- if (_addStandardSources)
- addSources(StandardSources, true);
}
m_globalContext.reset();
m_sourceOrder.clear();
@@ -616,10 +596,9 @@ CompilerStack::Contract const& CompilerStack::contract(string const& _contractNa
if (_contractName.empty())
// try to find some user-supplied contract
for (auto const& it: m_sources)
- if (!StandardSources.count(it.first))
- for (ASTPointer<ASTNode> const& node: it.second.ast->nodes())
- if (auto contract = dynamic_cast<ContractDefinition const*>(node.get()))
- contractName = contract->name();
+ for (ASTPointer<ASTNode> const& node: it.second.ast->nodes())
+ if (auto contract = dynamic_cast<ContractDefinition const*>(node.get()))
+ contractName = contract->name();
auto it = m_contracts.find(contractName);
if (it == m_contracts.end())
BOOST_THROW_EXCEPTION(CompilerError() << errinfo_comment("Contract " + _contractName + " not found."));
diff --git a/libsolidity/interface/CompilerStack.h b/libsolidity/interface/CompilerStack.h
index b3c4450c..da479638 100644
--- a/libsolidity/interface/CompilerStack.h
+++ b/libsolidity/interface/CompilerStack.h
@@ -85,14 +85,13 @@ public:
/// Creates a new compiler stack.
/// @param _readFile callback to used to read files for import statements. Should return
- /// @param _addStandardSources Adds standard sources if @a _addStandardSources.
- explicit CompilerStack(bool _addStandardSources = true, ReadFileCallback const& _readFile = ReadFileCallback());
+ explicit CompilerStack(ReadFileCallback const& _readFile = ReadFileCallback());
/// Sets path remappings in the format "context:prefix=target"
void setRemappings(std::vector<std::string> const& _remappings);
/// Resets the compiler to a state where the sources are not parsed or even removed.
- void reset(bool _keepSources = false, bool _addStandardSources = true);
+ void reset(bool _keepSources = false);
/// Adds a source object (e.g. file) to the parser. After this, parse has to be called again.
/// @returns true if a source object by the name already existed and was replaced.