hermez-node/eth/main_test.go
eth/main_test.goRaw
1package eth
2
3import (
4 "io/ioutil"
5 "os"
6 "testing"
7
8 "github.com/ethereum/go-ethereum/accounts"
9 "github.com/ethereum/go-ethereum/accounts/keystore"
10 ethCommon "github.com/ethereum/go-ethereum/common"
11 "github.com/ethereum/go-ethereum/crypto"
12 "github.com/ethereum/go-ethereum/ethclient"
13)
14
15/*var donationAddressStr = os.Getenv("DONATION_ADDRESS")
16var bootCoordinatorStr = os.Getenv("BOOT_COORDINATOR_ADDRESS")
17var auctionAddressStr = os.Getenv("AUCTION_ADDRESS")
18var tokenHezStr = os.Getenv("TOKEN_ADDRESS")
19var hermezStr = os.Getenv("HERMEZ_ADDRESS")
20var governanceAddressStr = os.Getenv("GOV_ADDRESS")
21var governancePrivateKey = os.Getenv("GOV_PK")
22var ehtClientDialURL = os.Getenv("ETHCLIENT_DIAL_URL")*/
23var ehtClientDialURL = "http://localhost:8545"
24var password = "pass"
25
26// Smart Contract Addresses
27var (
28 auctionAddressStr = "0x3619DbE27d7c1e7E91aA738697Ae7Bc5FC3eACA5"
29 auctionAddressConst = ethCommon.HexToAddress(auctionAddressStr)
30 donationAddressStr = "0x6c365935CA8710200C7595F0a72EB6023A7706Cd"
31 donationAddressConst = ethCommon.HexToAddress(donationAddressStr)
32 bootCoordinatorAddressStr = "0xc783df8a850f42e7f7e57013759c285caa701eb6"
33 bootCoordinatorAddressConst = ethCommon.HexToAddress(bootCoordinatorAddressStr)
34 tokenHezAddressStr = "0xf4e77E5Da47AC3125140c470c71cBca77B5c638c" //nolint:gosec
35 tokenHezAddressConst = ethCommon.HexToAddress(tokenHezAddressStr)
36 hermezRollupAddressStr = "0xc4905364b78a742ccce7B890A89514061E47068D"
37 hermezRollupAddressConst = ethCommon.HexToAddress(hermezRollupAddressStr)
38 wdelayerAddressStr = "0x1A1FEe7EeD918BD762173e4dc5EfDB8a78C924A8"
39 wdelayerAddressConst = ethCommon.HexToAddress(wdelayerAddressStr)
40)
41
42// Ethereum Accounts
43var (
44 hermezGovernanceDAOAddressSK = "2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60"
45 hermezGovernanceDAOAddressStr = "0x84Fae3d3Cba24A97817b2a18c2421d462dbBCe9f"
46 hermezGovernanceDAOAddressConst = ethCommon.HexToAddress(hermezGovernanceDAOAddressStr)
47
48 whiteHackGroupAddressSK = "8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e"
49 whiteHackGroupAddressStr = "0xfa3BdC8709226Da0dA13A4d904c8b66f16c3c8BA"
50 whiteHackGroupAddressConst = ethCommon.HexToAddress(whiteHackGroupAddressStr)
51
52 hermezKeeperAddressSK = "7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff"
53 hermezKeeperAddressStr = "0xFbC51a9582D031f2ceaaD3959256596C5D3a5468"
54 hermezKeeperAddressConst = ethCommon.HexToAddress(hermezKeeperAddressStr)
55
56 governanceAddressSK = "d49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb"
57 governanceAddressStr = "0xead9c93b79ae7c1591b1fb5323bd777e86e150d4"
58 governanceAddressConst = ethCommon.HexToAddress(governanceAddressStr)
59
60 auxAddressSK = "28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089"
61 auxAddressStr = "0x3d91185a02774C70287F6c74Dd26d13DFB58ff16"
62 auxAddressConst = ethCommon.HexToAddress(auxAddressStr)
63)
64
65var (
66 accountGov *accounts.Account
67 accountKep *accounts.Account
68 accountWhite *accounts.Account
69 accountGovDAO *accounts.Account
70 accountAux *accounts.Account
71 ks *keystore.KeyStore
72 ethClient *ethclient.Client
73 ethereumClientWhite *EthereumClient
74 ethereumClientKep *EthereumClient
75 ethereumClientGovDAO *EthereumClient
76 ethereumClientAux *EthereumClient
77)
78
79func addKey(ks *keystore.KeyStore, skHex string) *accounts.Account {
80 key, err := crypto.HexToECDSA(skHex)
81 if err != nil {
82 panic(err)
83 }
84 account, err := ks.ImportECDSA(key, password)
85 if err != nil {
86 panic(err)
87 }
88 err = ks.Unlock(account, password)
89 if err != nil {
90 panic(err)
91 }
92 return &account
93}
94
95func TestMain(m *testing.M) {
96 exitVal := 0
97
98 if os.Getenv("INTEGRATION") != "" {
99 dir, err := ioutil.TempDir("", "tmpks")
100 if err != nil {
101 panic(err)
102 }
103 ks = keystore.NewKeyStore(dir, keystore.LightScryptN, keystore.LightScryptP)
104
105 // Load ethereum accounts from private keys
106 accountGov = addKey(ks, governanceAddressSK)
107 accountKep = addKey(ks, hermezKeeperAddressSK)
108 accountWhite = addKey(ks, whiteHackGroupAddressSK)
109 accountGovDAO = addKey(ks, hermezGovernanceDAOAddressSK)
110 accountAux = addKey(ks, auxAddressSK)
111
112 ethClient, err = ethclient.Dial(ehtClientDialURL)
113 if err != nil {
114 panic(err)
115 }
116
117 // Controllable Governance Address
118
119 ethereumClientGov := NewEthereumClient(ethClient, accountGov, ks, nil)
120 auctionClient = NewAuctionClient(ethereumClientGov, auctionAddressConst, tokenHezAddressConst)
121 rollupClient = NewRollupClient(ethereumClientGov, hermezRollupAddressConst)
122 wdelayerClient = NewWDelayerClient(ethereumClientGov, wdelayerAddressConst)
123
124 ethereumClientKep = NewEthereumClient(ethClient, accountKep, ks, nil)
125 ethereumClientWhite = NewEthereumClient(ethClient, accountWhite, ks, nil)
126 ethereumClientGovDAO = NewEthereumClient(ethClient, accountGovDAO, ks, nil)
127 ethereumClientAux = NewEthereumClient(ethClient, accountAux, ks, nil)
128
129 exitVal = m.Run()
130 }
131 os.Exit(exitVal)
132}