func NewJSRE(ethereum *eth.Ethereum) *JSRE { re := &JSRE{ ethereum, otto.New(), ethpub.NewPEthereum(ethereum), make(chan ethutil.React, 1), make(chan ethutil.React, 1), make(chan bool), make(map[string][]otto.Value), } // Init the JS lib re.vm.Run(jsLib) // Load extra javascript files re.LoadIntFile("string.js") re.LoadIntFile("big.js") // We have to make sure that, whoever calls this, calls "Stop" go re.mainLoop() re.Bind("eth", &JSEthereum{re.lib, re.vm}) re.initStdFuncs() jsrelogger.Infoln("started") return re }
func StartRpc(ethereum *eth.Ethereum, RpcPort int) { var err error ethereum.RpcServer, err = ethrpc.NewJsonRpcServer(ethpub.NewPEthereum(ethereum), RpcPort) if err != nil { logger.Errorf("Could not start RPC interface (port %v): %v", RpcPort, err) } else { go ethereum.RpcServer.Start() } }
// Create GUI, but doesn't start it func NewWindow(ethereum *eth.Ethereum, config *ethutil.ConfigManager, clientIdentity *ethwire.SimpleClientIdentity, session string, logLevel int) *Gui { db, err := ethdb.NewLDBDatabase("tx_database") if err != nil { panic(err) } pub := ethpub.NewPEthereum(ethereum) return &Gui{eth: ethereum, txDb: db, pub: pub, logLevel: ethlog.LogLevel(logLevel), Session: session, open: false, clientIdentity: clientIdentity, config: config} }
func NewExtApplication(container AppContainer, lib *UiLib) *ExtApplication { app := &ExtApplication{ ethpub.NewPEthereum(lib.eth), make(chan ethutil.React, 1), make(chan ethutil.React, 1), make(chan bool), make(chan bool), container, lib, nil, } return app }