aboutsummaryrefslogtreecommitdiffstats
path: root/eth
diff options
context:
space:
mode:
authorJeffrey Wilcke <jeffrey@ethereum.org>2015-05-20 17:31:52 +0800
committerJeffrey Wilcke <jeffrey@ethereum.org>2015-05-20 17:31:52 +0800
commit0300eef94d7d1e58bc5cf94094a3d492c70486e1 (patch)
treed2828b978ad2a0128459c9a09096aec95b18af1c /eth
parent6b83a0a589d4615382de3d9f3ed2800064b4c1b9 (diff)
parente1d1417729b82f00bcb62dffa36358cb74ab790f (diff)
downloaddexon-0300eef94d7d1e58bc5cf94094a3d492c70486e1.tar.gz
dexon-0300eef94d7d1e58bc5cf94094a3d492c70486e1.tar.zst
dexon-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.go20
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()
+}