Bläddra i källkod

Added ui.Interface to xeth

obscuren 10 år sedan
förälder
incheckning
738d6e20f2
2 ändrade filer med 18 tillägg och 15 borttagningar
  1. 4 14
      ui/frontend.go
  2. 14 1
      xeth/xeth.go

+ 4 - 14
ui/frontend.go

@@ -1,18 +1,8 @@
 package ui
 
-// ReturnInterface is returned by the Intercom interface when a method is called
-type ReturnInterface interface {
-	Get(i int) (interface{}, error)
-	Size() int
-}
+import "github.com/ethereum/go-ethereum/core/types"
 
-// Frontend is the basic interface for calling arbitrary methods on something that
-// implements a front end (GUI, CLI, etc)
-type Frontend interface {
-	// Checks whether a specific method is implemented
-	Supports(method string) bool
-	// Call calls the given method on interface it implements. This will return
-	// an error with errNotImplemented if the method hasn't been implemented
-	// and will return a ReturnInterface if it does.
-	Call(method string) (ReturnInterface, error)
+type Interface interface {
+	UnlockAccount(address []byte) bool
+	ConfirmTransaction(tx *types.Transaction) bool
 }

+ 14 - 1
xeth/xeth.go

@@ -18,6 +18,7 @@ import (
 	"github.com/ethereum/go-ethereum/miner"
 	"github.com/ethereum/go-ethereum/p2p"
 	"github.com/ethereum/go-ethereum/state"
+	"github.com/ethereum/go-ethereum/ui"
 	"github.com/ethereum/go-ethereum/whisper"
 )
 
@@ -46,9 +47,16 @@ type XEth struct {
 	state          *State
 	whisper        *Whisper
 	miner          *miner.Miner
+
+	frontend ui.Interface
 }
 
-func New(eth Backend) *XEth {
+type TmpFrontend struct{}
+
+func (TmpFrontend) UnlockAccount([]byte) bool                  { panic("UNLOCK ACCOUNT") }
+func (TmpFrontend) ConfirmTransaction(*types.Transaction) bool { panic("CONFIRM TRANSACTION") }
+
+func New(eth Backend, frontend ui.Interface) *XEth {
 	xeth := &XEth{
 		eth:            eth,
 		blockProcessor: eth.BlockProcessor(),
@@ -56,6 +64,11 @@ func New(eth Backend) *XEth {
 		whisper:        NewWhisper(eth.Whisper()),
 		miner:          eth.Miner(),
 	}
+
+	if frontend == nil {
+		xeth.frontend = TmpFrontend{}
+	}
+
 	xeth.state = NewState(xeth, xeth.chainManager.TransState())
 
 	return xeth