diff options
author | zelig <viktor.tron@gmail.com> | 2015-05-20 09:04:52 +0800 |
---|---|---|
committer | zelig <viktor.tron@gmail.com> | 2015-05-20 09:47:13 +0800 |
commit | 22b694ee1e1044e68c906fbd864797ac2f8a4ab0 (patch) | |
tree | 498477c69b6715c41a0c5e8c6ddfe20f06ca5e93 /eth/backend.go | |
parent | f9abcee0f9185d41c71cc24af1303133497ebeb0 (diff) | |
download | go-tangerine-22b694ee1e1044e68c906fbd864797ac2f8a4ab0.tar.gz go-tangerine-22b694ee1e1044e68c906fbd864797ac2f8a4ab0.tar.zst go-tangerine-22b694ee1e1044e68c906fbd864797ac2f8a4ab0.zip |
solc now in ethereum, fixes solc path setting; setSolc() didnt work
Diffstat (limited to 'eth/backend.go')
-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() +} |