diff options
author | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-20 17:31:52 +0800 |
---|---|---|
committer | Jeffrey Wilcke <jeffrey@ethereum.org> | 2015-05-20 17:31:52 +0800 |
commit | 0300eef94d7d1e58bc5cf94094a3d492c70486e1 (patch) | |
tree | d2828b978ad2a0128459c9a09096aec95b18af1c /eth | |
parent | 6b83a0a589d4615382de3d9f3ed2800064b4c1b9 (diff) | |
parent | e1d1417729b82f00bcb62dffa36358cb74ab790f (diff) | |
download | go-tangerine-0300eef94d7d1e58bc5cf94094a3d492c70486e1.tar.gz go-tangerine-0300eef94d7d1e58bc5cf94094a3d492c70486e1.tar.zst go-tangerine-0300eef94d7d1e58bc5cf94094a3d492c70486e1.zip |
Merge pull request #1048 from ethersphere/cli-fixes
CLI, JSRE admin and Solc improvements
Diffstat (limited to 'eth')
-rw-r--r-- | eth/backend.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/eth/backend.go b/eth/backend.go index 519a4c410..44ceb89e8 100644 --- a/eth/backend.go +++ b/eth/backend.go @@ -14,6 +14,7 @@ import ( "github.com/ethereum/ethash" "github.com/ethereum/go-ethereum/accounts" "github.com/ethereum/go-ethereum/common" + "github.com/ethereum/go-ethereum/common/compiler" "github.com/ethereum/go-ethereum/core" "github.com/ethereum/go-ethereum/core/types" "github.com/ethereum/go-ethereum/core/vm" @@ -79,6 +80,7 @@ type Config struct { GasPrice *big.Int MinerThreads int AccountManager *accounts.Manager + SolcPath string // NewDB is used to create databases. // If nil, the default is to create leveldb databases on disk. @@ -181,6 +183,8 @@ type Ethereum struct { pow *ethash.Ethash protocolManager *ProtocolManager downloader *downloader.Downloader + SolcPath string + solc *compiler.Solidity net *p2p.Server eventMux *event.TypeMux @@ -264,6 +268,7 @@ func New(config *Config) (*Ethereum, error) { netVersionId: config.NetworkId, NatSpec: config.NatSpec, MinerThreads: config.MinerThreads, + SolcPath: config.SolcPath, } eth.pow = ethash.New() @@ -571,3 +576,18 @@ func saveBlockchainVersion(db common.Database, bcVersion int) { db.Put([]byte("BlockchainVersion"), common.NewValue(bcVersion).Bytes()) } } + +func (self *Ethereum) Solc() (*compiler.Solidity, error) { + var err error + if self.solc == nil { + self.solc, err = compiler.New(self.SolcPath) + } + return self.solc, err +} + +// set in js console via admin interface or wrapper from cli flags +func (self *Ethereum) SetSolc(solcPath string) (*compiler.Solidity, error) { + self.SolcPath = solcPath + self.solc = nil + return self.Solc() +} |