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 ethClientDialURL = os.Getenv("ETHCLIENT_DIAL_URL")*/
23var ethClientDialURL = "http://localhost:8545"
24var password = "pass"
25
26// Smart Contract Addresses
27var (
28 auctionAddressStr = "0x500D1d6A4c7D8Ae28240b47c8FCde034D827fD5e"
29 auctionAddressConst = ethCommon.HexToAddress(auctionAddressStr)
30 auctionTestAddressStr = "0x1d80315fac6aBd3EfeEbE97dEc44461ba7556160"
31 auctionTestAddressConst = ethCommon.HexToAddress(auctionTestAddressStr)
32 donationAddressStr = "0x6c365935CA8710200C7595F0a72EB6023A7706Cd"
33 donationAddressConst = ethCommon.HexToAddress(donationAddressStr)
34 bootCoordinatorAddressStr = "0xc783df8a850f42e7f7e57013759c285caa701eb6"
35 bootCoordinatorAddressConst = ethCommon.HexToAddress(bootCoordinatorAddressStr)
36 tokenERC777AddressStr = "0xf784709d2317D872237C4bC22f867d1BAe2913AB" //nolint:gosec
37 tokenERC777AddressConst = ethCommon.HexToAddress(tokenERC777AddressStr)
38 tokenERC20AddressStr = "0x3619DbE27d7c1e7E91aA738697Ae7Bc5FC3eACA5" //nolint:gosec
39 tokenERC20AddressConst = ethCommon.HexToAddress(tokenERC20AddressStr)
40 tokenHEZAddressConst = tokenERC777AddressConst
41 hermezRollupAddressStr = "0xEcc0a6dbC0bb4D51E4F84A315a9e5B0438cAD4f0"
42 hermezRollupAddressConst = ethCommon.HexToAddress(hermezRollupAddressStr)
43 wdelayerAddressStr = "0xD6C850aeBFDC46D7F4c207e445cC0d6B0919BDBe"
44 wdelayerAddressConst = ethCommon.HexToAddress(wdelayerAddressStr)
45 wdelayerTestAddressStr = "0x52d3b94181f8654db2530b0fEe1B19173f519C52"
46 wdelayerTestAddressConst = ethCommon.HexToAddress(wdelayerTestAddressStr)
47 safetyAddressStr = "0xE5904695748fe4A84b40b3fc79De2277660BD1D3"
48 safetyAddressConst = ethCommon.HexToAddress(safetyAddressStr)
49)
50
51// Ethereum Accounts
52var (
53 hermezGovernanceDAOAddressSK = "2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60"
54 hermezGovernanceDAOAddressStr = "0x84Fae3d3Cba24A97817b2a18c2421d462dbBCe9f"
55 hermezGovernanceDAOAddressConst = ethCommon.HexToAddress(hermezGovernanceDAOAddressStr)
56
57 whiteHackGroupAddressSK = "8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e"
58 whiteHackGroupAddressStr = "0xfa3BdC8709226Da0dA13A4d904c8b66f16c3c8BA"
59 whiteHackGroupAddressConst = ethCommon.HexToAddress(whiteHackGroupAddressStr)
60
61 hermezKeeperAddressSK = "7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff"
62 hermezKeeperAddressStr = "0xFbC51a9582D031f2ceaaD3959256596C5D3a5468"
63 hermezKeeperAddressConst = ethCommon.HexToAddress(hermezKeeperAddressStr)
64
65 governanceAddressSK = "d49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb"
66 governanceAddressStr = "0xead9c93b79ae7c1591b1fb5323bd777e86e150d4"
67 governanceAddressConst = ethCommon.HexToAddress(governanceAddressStr)
68
69 auxAddressSK = "28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089"
70 auxAddressStr = "0x3d91185a02774C70287F6c74Dd26d13DFB58ff16"
71 auxAddressConst = ethCommon.HexToAddress(auxAddressStr)
72
73 hermezRollupTestSK = "28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29088"
74 hermezRollupTestAddressStr = "0xEa960515F8b4C237730F028cBAcF0a28E7F45dE0"
75 hermezRollupAddressTestConst = ethCommon.HexToAddress(hermezRollupTestAddressStr)
76)
77
78var (
79 accountGov *accounts.Account
80 accountKep *accounts.Account
81 accountWhite *accounts.Account
82 accountGovDAO *accounts.Account
83 accountAux *accounts.Account
84 accountHermez *accounts.Account
85 ks *keystore.KeyStore
86 ethClient *ethclient.Client
87 ethereumClientWhite *EthereumClient
88 ethereumClientKep *EthereumClient
89 ethereumClientGovDAO *EthereumClient
90 ethereumClientAux *EthereumClient
91 ethereumClientHermez *EthereumClient
92)
93
94func addKey(ks *keystore.KeyStore, skHex string) *accounts.Account {
95 key, err := crypto.HexToECDSA(skHex)
96 if err != nil {
97 panic(err)
98 }
99 account, err := ks.ImportECDSA(key, password)
100 if err != nil {
101 panic(err)
102 }
103 err = ks.Unlock(account, password)
104 if err != nil {
105 panic(err)
106 }
107 return &account
108}
109
110func TestMain(m *testing.M) {
111 exitVal := 0
112
113 if os.Getenv("INTEGRATION") != "" {
114 dir, err := ioutil.TempDir("", "tmpks")
115 if err != nil {
116 panic(err)
117 }
118 ks = keystore.NewKeyStore(dir, keystore.LightScryptN, keystore.LightScryptP)
119
120 // Load ethereum accounts from private keys
121 accountGov = addKey(ks, governanceAddressSK)
122 accountKep = addKey(ks, hermezKeeperAddressSK)
123 accountWhite = addKey(ks, whiteHackGroupAddressSK)
124 accountGovDAO = addKey(ks, hermezGovernanceDAOAddressSK)
125 accountAux = addKey(ks, auxAddressSK)
126 accountHermez = addKey(ks, hermezRollupTestSK)
127
128 ethClient, err = ethclient.Dial(ethClientDialURL)
129 if err != nil {
130 panic(err)
131 }
132
133 // Controllable Governance Address
134
135 ethereumClientGov := NewEthereumClient(ethClient, accountGov, ks, nil)
136 auctionClient, err = NewAuctionClient(ethereumClientGov, auctionAddressConst, tokenHEZAddressConst)
137 if err != nil {
138 panic(err)
139 }
140 auctionClientTest, err = NewAuctionClient(ethereumClientGov, auctionTestAddressConst, tokenHEZAddressConst)
141 if err != nil {
142 panic(err)
143 }
144 rollupClient, err = NewRollupClient(ethereumClientGov, hermezRollupAddressConst, tokenHEZAddressConst)
145 if err != nil {
146 panic(err)
147 }
148 wdelayerClient, err = NewWDelayerClient(ethereumClientGov, wdelayerAddressConst)
149 if err != nil {
150 panic(err)
151 }
152 wdelayerClientTest, err = NewWDelayerClient(ethereumClientGov, wdelayerTestAddressConst)
153 if err != nil {
154 panic(err)
155 }
156
157 ethereumClientKep = NewEthereumClient(ethClient, accountKep, ks, nil)
158 ethereumClientWhite = NewEthereumClient(ethClient, accountWhite, ks, nil)
159 ethereumClientGovDAO = NewEthereumClient(ethClient, accountGovDAO, ks, nil)
160 ethereumClientAux = NewEthereumClient(ethClient, accountAux, ks, nil)
161 ethereumClientHermez = NewEthereumClient(ethClient, accountHermez, ks, nil)
162
163 exitVal = m.Run()
164 }
165 os.Exit(exitVal)
166}