// New creates an XEth that uses the given frontend. // If a nil Frontend is provided, a default frontend which // confirms all transactions will be used. func New(ethereum *eth.Ethereum, frontend Frontend) *XEth { xeth := &XEth{ backend: ethereum, frontend: frontend, quit: make(chan struct{}), filterManager: filter.NewFilterManager(ethereum.EventMux()), logQueue: make(map[int]*logQueue), blockQueue: make(map[int]*hashQueue), transactionQueue: make(map[int]*hashQueue), messages: make(map[int]*whisperFilter), agent: miner.NewRemoteAgent(), } if ethereum.Whisper() != nil { xeth.whisper = NewWhisper(ethereum.Whisper()) } ethereum.Miner().Register(xeth.agent) if frontend == nil { xeth.frontend = dummyFrontend{} } xeth.state = NewState(xeth, xeth.backend.ChainManager().TransState()) go xeth.start() go xeth.filterManager.Start() return xeth }
func NewUiLib(engine *qml.Engine, eth *eth.Ethereum, assetPath, libPath string) *UiLib { x := xeth.New(eth, nil) lib := &UiLib{ XEth: x, engine: engine, eth: eth, assetPath: assetPath, filterCallbacks: make(map[int][]int), } lib.filterManager = filter.NewFilterManager(eth.EventMux()) go lib.filterManager.Start() return lib }
// New creates an XEth that uses the given frontend. // If a nil Frontend is provided, a default frontend which // confirms all transactions will be used. func New(eth *eth.Ethereum, frontend Frontend) *XEth { xeth := &XEth{ backend: eth, frontend: frontend, whisper: NewWhisper(eth.Whisper()), quit: make(chan struct{}), filterManager: filter.NewFilterManager(eth.EventMux()), logs: make(map[int]*logFilter), messages: make(map[int]*whisperFilter), agent: miner.NewRemoteAgent(), } eth.Miner().Register(xeth.agent) if frontend == nil { xeth.frontend = dummyFrontend{} } xeth.state = NewState(xeth, xeth.backend.ChainManager().TransState()) go xeth.start() go xeth.filterManager.Start() return xeth }