From fbff9b654aca71316f5d05c6549940caac38a515 Mon Sep 17 00:00:00 2001 From: JoeGruffins <34998433+JoeGruffins@users.noreply.github.com> Date: Sun, 12 Dec 2021 07:00:59 +0900 Subject: [PATCH] client/eth: Use bytes as string in key import. This change is needed because unlocking will use the bytes as a string. Also set the simnet contract address. --- client/asset/eth/config.go | 39 --------------------- client/asset/eth/eth.go | 4 --- client/asset/eth/eth_test.go | 28 --------------- client/asset/eth/node.go | 3 +- client/asset/eth/nodeclient_harness_test.go | 3 +- client/cmd/dexcctl/simnet-setup.sh | 2 +- dex/networks/eth/params.go | 2 +- 7 files changed, 4 insertions(+), 77 deletions(-) delete mode 100644 client/asset/eth/config.go diff --git a/client/asset/eth/config.go b/client/asset/eth/config.go deleted file mode 100644 index 64b269fac4..0000000000 --- a/client/asset/eth/config.go +++ /dev/null @@ -1,39 +0,0 @@ -// This code is available on the terms of the project LICENSE.md file, -// also available online at https://blueoakcouncil.org/license/1.0.0. - -//go:build lgpl -// +build lgpl - -package eth - -import ( - "fmt" - - "decred.org/dcrdex/dex" - "decred.org/dcrdex/dex/config" -) - -// Config holds the parameters needed to initialize an ETH wallet. -type Config struct { - NodeListenAddr string `ini:"nodelistenaddr"` - GasFee float64 `ini:"gasfee"` -} - -// loadConfig loads the Config from a setting map and checks the network. -// -// TODO: Test this with windows. -func loadConfig(settings map[string]string, network dex.Network) (*Config, error) { - cfg := new(Config) - if err := config.Unmapify(settings, cfg); err != nil { - return nil, fmt.Errorf("error parsing config: %w", err) - } - switch network { - case dex.Simnet, dex.Testnet: - case dex.Mainnet: - // TODO: Allow. - return nil, fmt.Errorf("eth cannot be used on mainnet") - default: - return nil, fmt.Errorf("unknown network ID: %d", uint8(network)) - } - return cfg, nil -} diff --git a/client/asset/eth/eth.go b/client/asset/eth/eth.go index 5b9aebea2d..40d09c725d 100644 --- a/client/asset/eth/eth.go +++ b/client/asset/eth/eth.go @@ -91,10 +91,6 @@ var ( minGasTipCap = dexeth.GweiToWei(2) ) -// Check that Driver implements asset.Driver. -var _ asset.Driver = (*Driver)(nil) -var _ asset.Creator = (*Driver)(nil) - // Driver implements asset.Driver. type Driver struct{} diff --git a/client/asset/eth/eth_test.go b/client/asset/eth/eth_test.go index ed89cd5611..e718db4ddc 100644 --- a/client/asset/eth/eth_test.go +++ b/client/asset/eth/eth_test.go @@ -185,34 +185,6 @@ func (n *testNode) transactionConfirmations(context.Context, common.Hash) (uint3 return 0, nil } -func TestLoadConfig(t *testing.T) { - tests := []struct { - name string - network dex.Network - wantErr bool - }{{ - name: "ok", - network: dex.Simnet, - }, { - name: "mainnet not allowed", - network: dex.Mainnet, - wantErr: true, - }} - - for _, test := range tests { - _, err := loadConfig(nil, test.network) - if test.wantErr { - if err == nil { - t.Fatalf("expected error for test %v", test.name) - } - continue - } - if err != nil { - t.Fatalf("unexpected error for test %v: %v", test.name, err) - } - } -} - func TestCheckForNewBlocks(t *testing.T) { header0 := &types.Header{Number: new(big.Int)} block0 := types.NewBlockWithHeader(header0) diff --git a/client/asset/eth/node.go b/client/asset/eth/node.go index 585f383fbc..eadb0d88a1 100644 --- a/client/asset/eth/node.go +++ b/client/asset/eth/node.go @@ -9,7 +9,6 @@ package eth import ( "bytes" "crypto/ecdsa" - "encoding/hex" "encoding/json" "fmt" "os" @@ -271,7 +270,7 @@ func importKeyToNode(node *node.Node, privateKey, password []byte) error { ks := backends[0].(*keystore.KeyStore) accounts := ks.Accounts() if len(accounts) == 0 { - _, err = ks.ImportECDSA(ecdsaPrivateKey, hex.EncodeToString(password)) + _, err = ks.ImportECDSA(ecdsaPrivateKey, string(password)) return err } else if len(accounts) == 1 { address := crypto.PubkeyToAddress(ecdsaPrivateKey.PublicKey) diff --git a/client/asset/eth/nodeclient_harness_test.go b/client/asset/eth/nodeclient_harness_test.go index 8b201a89ab..150973fb71 100644 --- a/client/asset/eth/nodeclient_harness_test.go +++ b/client/asset/eth/nodeclient_harness_test.go @@ -221,11 +221,10 @@ func setupWallet(walletDir, seed, listenAddress string) error { "nodelistenaddr": listenAddress, } seedB, _ := hex.DecodeString(seed) - walletPass, _ := hex.DecodeString(pw) createWalletParams := asset.CreateWalletParams{ Type: walletTypeGeth, Seed: seedB, - Pass: walletPass, + Pass: []byte(pw), Settings: settings, DataDir: walletDir, Net: dex.Simnet, diff --git a/client/cmd/dexcctl/simnet-setup.sh b/client/cmd/dexcctl/simnet-setup.sh index 99883001f1..e4b06b3828 100755 --- a/client/cmd/dexcctl/simnet-setup.sh +++ b/client/cmd/dexcctl/simnet-setup.sh @@ -37,7 +37,7 @@ fi if [ $ETH_ON -eq 0 ]; then echo configuring Eth wallet - ./dexcctl -p abc -p "" --simnet newwallet 60 geth "" '{"appDir":"~/dextest/eth/testnode"}' + ./dexcctl -p abc -p "" --simnet newwallet 60 geth fi echo registering with DEX diff --git a/dex/networks/eth/params.go b/dex/networks/eth/params.go index 7a59e88b4a..196ddfa3ad 100644 --- a/dex/networks/eth/params.go +++ b/dex/networks/eth/params.go @@ -44,7 +44,7 @@ var ( ContractAddresses = map[uint32]map[dex.Network]common.Address{ 0: { dex.Mainnet: common.Address{}, - dex.Simnet: common.Address{}, + dex.Simnet: common.HexToAddress("0x2f68e723b8989ba1c6a9f03e42f33cb7dc9d606f"), dex.Testnet: common.Address{}, }, }