signer: fix tests to pass + formatting

This commit is contained in:
Martin Holst Swende 2019-02-08 11:06:43 +01:00
parent a93ba823a3
commit 178204f065
No known key found for this signature in database
GPG key ID: 683B438C05A5DDF0
6 changed files with 51 additions and 52 deletions

View file

@ -341,37 +341,6 @@ func initialize(c *cli.Context) error {
return nil return nil
} }
func startAccountManager(ksLocation string, nousb, lightKDF bool) *accounts.Manager {
var (
backends []accounts.Backend
n, p = keystore.StandardScryptN, keystore.StandardScryptP
)
if lightKDF {
n, p = keystore.LightScryptN, keystore.LightScryptP
}
// support password based accounts
if len(ksLocation) > 0 {
backends = append(backends, keystore.NewKeyStore(ksLocation, n, p))
}
if !nousb {
// Start a USB hub for Ledger hardware wallets
if ledgerhub, err := usbwallet.NewLedgerHub(); err != nil {
log.Warn(fmt.Sprintf("Failed to start Ledger hub, disabling: %v", err))
} else {
backends = append(backends, ledgerhub)
log.Debug("Ledger support enabled")
}
// Start a USB hub for Trezor hardware wallets
if trezorhub, err := usbwallet.NewTrezorHub(); err != nil {
log.Warn(fmt.Sprintf("Failed to start Trezor hub, disabling: %v", err))
} else {
backends = append(backends, trezorhub)
log.Debug("Trezor support enabled")
}
}
return accounts.NewManager(backends...)
}
func signer(c *cli.Context) error { func signer(c *cli.Context) error {
if err := initialize(c); err != nil { if err := initialize(c); err != nil {
return err return err
@ -450,7 +419,7 @@ func signer(c *cli.Context) error {
) )
log.Info("Starting signer", "chainid", chainId, "keystore", ksLoc, log.Info("Starting signer", "chainid", chainId, "keystore", ksLoc,
"light-kdf", lightKdf, "advanced", advanced) "light-kdf", lightKdf, "advanced", advanced)
am := startAccountManager(ksLoc, nousb, lightKdf) am := core.StartClefAccountManager(ksLoc, nousb, lightKdf)
apiImpl := core.NewSignerAPI(am, chainId, nousb, ui, db, advanced) apiImpl := core.NewSignerAPI(am, chainId, nousb, ui, db, advanced)
// Establish the bidirectional communication, by creating a new UI backend and registering // Establish the bidirectional communication, by creating a new UI backend and registering

View file

@ -112,6 +112,37 @@ type Metadata struct {
Origin string `json:"Origin"` Origin string `json:"Origin"`
} }
func StartClefAccountManager(ksLocation string, nousb, lightKDF bool) *accounts.Manager {
var (
backends []accounts.Backend
n, p = keystore.StandardScryptN, keystore.StandardScryptP
)
if lightKDF {
n, p = keystore.LightScryptN, keystore.LightScryptP
}
// support password based accounts
if len(ksLocation) > 0 {
backends = append(backends, keystore.NewKeyStore(ksLocation, n, p))
}
if !nousb {
// Start a USB hub for Ledger hardware wallets
if ledgerhub, err := usbwallet.NewLedgerHub(); err != nil {
log.Warn(fmt.Sprintf("Failed to start Ledger hub, disabling: %v", err))
} else {
backends = append(backends, ledgerhub)
log.Debug("Ledger support enabled")
}
// Start a USB hub for Trezor hardware wallets
if trezorhub, err := usbwallet.NewTrezorHub(); err != nil {
log.Warn(fmt.Sprintf("Failed to start Trezor hub, disabling: %v", err))
} else {
backends = append(backends, trezorhub)
log.Debug("Trezor support enabled")
}
}
return accounts.NewManager(backends...)
}
// MetadataFromContext extracts Metadata from a given context.Context // MetadataFromContext extracts Metadata from a given context.Context
func MetadataFromContext(ctx context.Context) Metadata { func MetadataFromContext(ctx context.Context) Metadata {
m := Metadata{"NA", "NA", "NA", "", ""} // batman m := Metadata{"NA", "NA", "NA", "", ""} // batman

View file

@ -28,6 +28,7 @@ import (
"testing" "testing"
"time" "time"
"github.com/ethereum/go-ethereum/accounts"
"github.com/ethereum/go-ethereum/accounts/keystore" "github.com/ethereum/go-ethereum/accounts/keystore"
"github.com/ethereum/go-ethereum/common" "github.com/ethereum/go-ethereum/common"
"github.com/ethereum/go-ethereum/common/hexutil" "github.com/ethereum/go-ethereum/common/hexutil"
@ -50,7 +51,6 @@ func (ui *HeadlessUI) OnSignerStartup(info StartupInfo) {
func (ui *HeadlessUI) RegisterUIServer(api *UIServerAPI) { func (ui *HeadlessUI) RegisterUIServer(api *UIServerAPI) {
} }
func (ui *HeadlessUI) OnApprovedTx(tx ethapi.SignTransactionResult) { func (ui *HeadlessUI) OnApprovedTx(tx ethapi.SignTransactionResult) {
fmt.Printf("OnApproved()\n") fmt.Printf("OnApproved()\n")
} }
@ -94,7 +94,7 @@ func (ui *HeadlessUI) ApproveListing(request *ListRequest) (ListResponse, error)
case "A": case "A":
return ListResponse{request.Accounts}, nil return ListResponse{request.Accounts}, nil
case "1": case "1":
l := make([]Account, 1) l := make([]accounts.Account, 1)
l[0] = request.Accounts[1] l[0] = request.Accounts[1]
return ListResponse{l}, nil return ListResponse{l}, nil
default: default:
@ -141,13 +141,8 @@ func setup(t *testing.T) (*SignerAPI, chan string) {
} }
var ( var (
ui = &HeadlessUI{controller} ui = &HeadlessUI{controller}
api = NewSignerAPI( am = StartClefAccountManager(tmpDirName(t), true, true)
1, api = NewSignerAPI(am, 1337, true, ui, db, true)
tmpDirName(t),
true,
ui,
db,
true, true)
) )
return api, controller return api, controller
} }
@ -172,22 +167,22 @@ func failCreateAccountWithPassword(control chan string, api *SignerAPI, password
control <- "Y" control <- "Y"
control <- password control <- password
acc, err := api.New(context.Background()) addr, err := api.New(context.Background())
if err == nil { if err == nil {
t.Fatal("Should have returned an error") t.Fatal("Should have returned an error")
} }
if acc.Address != (common.Address{}) { if addr != (common.Address{}) {
t.Fatal("Empty address should be returned") t.Fatal("Empty address should be returned")
} }
} }
func failCreateAccount(control chan string, api *SignerAPI, t *testing.T) { func failCreateAccount(control chan string, api *SignerAPI, t *testing.T) {
control <- "N" control <- "N"
acc, err := api.New(context.Background()) addr, err := api.New(context.Background())
if err != ErrRequestDenied { if err != ErrRequestDenied {
t.Fatal(err) t.Fatal(err)
} }
if acc.Address != (common.Address{}) { if addr != (common.Address{}) {
t.Fatal("Empty address should be returned") t.Fatal("Empty address should be returned")
} }
} }

View file

@ -77,7 +77,7 @@ type alwaysDenyUI struct{}
func (alwaysDenyUI) OnInputRequired(info core.UserInputRequest) (core.UserInputResponse, error) { func (alwaysDenyUI) OnInputRequired(info core.UserInputRequest) (core.UserInputResponse, error) {
return core.UserInputResponse{}, nil return core.UserInputResponse{}, nil
} }
func (alwaysDenyUI) RegisterUIServer(api *UIServerAPI) { func (alwaysDenyUI) RegisterUIServer(api *core.UIServerAPI) {
} }
func (alwaysDenyUI) OnSignerStartup(info core.StartupInfo) { func (alwaysDenyUI) OnSignerStartup(info core.StartupInfo) {
@ -135,11 +135,11 @@ func initRuleEngine(js string) (*rulesetUI, error) {
} }
func TestListRequest(t *testing.T) { func TestListRequest(t *testing.T) {
accs := make([]core.Account, 5) accs := make([]accounts.Account, 5)
for i := range accs { for i := range accs {
addr := fmt.Sprintf("000000000000000000000000000000000000000%x", i) addr := fmt.Sprintf("000000000000000000000000000000000000000%x", i)
acc := core.Account{ acc := accounts.Account{
Address: common.BytesToAddress(common.Hex2Bytes(addr)), Address: common.BytesToAddress(common.Hex2Bytes(addr)),
URL: accounts.URL{Scheme: "test", Path: fmt.Sprintf("acc-%d", i)}, URL: accounts.URL{Scheme: "test", Path: fmt.Sprintf("acc-%d", i)},
} }
@ -210,6 +210,10 @@ type dummyUI struct {
calls []string calls []string
} }
func (d *dummyUI) RegisterUIServer(api *core.UIServerAPI) {
panic("implement me")
}
func (d *dummyUI) OnInputRequired(info core.UserInputRequest) (core.UserInputResponse, error) { func (d *dummyUI) OnInputRequired(info core.UserInputRequest) (core.UserInputResponse, error) {
d.calls = append(d.calls, "OnInputRequired") d.calls = append(d.calls, "OnInputRequired")
return core.UserInputResponse{}, nil return core.UserInputResponse{}, nil
@ -533,7 +537,7 @@ func (d *dontCallMe) OnInputRequired(info core.UserInputRequest) (core.UserInput
d.t.Fatalf("Did not expect next-handler to be called") d.t.Fatalf("Did not expect next-handler to be called")
return core.UserInputResponse{}, nil return core.UserInputResponse{}, nil
} }
func (d *dontCallMe) RegisterUIServer(api *UIServerAPI) { func (d *dontCallMe) RegisterUIServer(api *core.UIServerAPI) {
} }
func (d *dontCallMe) OnSignerStartup(info core.StartupInfo) { func (d *dontCallMe) OnSignerStartup(info core.StartupInfo) {