hermez-node/eth/main_test.go
eth/main_test.goRaw
1package eth
2
3import (
4 "io/ioutil"
5 "math/big"
6 "os"
7 "testing"
8
9 "github.com/ethereum/go-ethereum/accounts"
10 "github.com/ethereum/go-ethereum/accounts/keystore"
11 ethCommon "github.com/ethereum/go-ethereum/common"
12 "github.com/ethereum/go-ethereum/crypto"
13 "github.com/ethereum/go-ethereum/ethclient"
14)
15
16/*var donationAddressStr = os.Getenv("DONATION_ADDRESS")
17var bootCoordinatorStr = os.Getenv("BOOT_COORDINATOR_ADDRESS")
18var auctionAddressStr = os.Getenv("AUCTION_ADDRESS")
19var tokenHezStr = os.Getenv("TOKEN_ADDRESS")
20var hermezStr = os.Getenv("HERMEZ_ADDRESS")
21var governanceAddressStr = os.Getenv("GOV_ADDRESS")
22var governancePrivateKey = os.Getenv("GOV_PK")
23var ethClientDialURL = os.Getenv("ETHCLIENT_DIAL_URL")*/
24var ethClientDialURL = "http://localhost:8545"
25var password = "pass"
26var deadline, _ = new(big.Int).SetString("ffffffffffffffffffffffffffffffff", 16)
27
28// Smart Contract Addresses
29var (
30 auctionAddressStr = "0x038B86d9d8FAFdd0a02ebd1A476432877b0107C8"
31 auctionAddressConst = ethCommon.HexToAddress(auctionAddressStr)
32 auctionTestAddressStr = "0xEcc0a6dbC0bb4D51E4F84A315a9e5B0438cAD4f0"
33 auctionTestAddressConst = ethCommon.HexToAddress(auctionTestAddressStr)
34 donationAddressStr = "0x6c365935CA8710200C7595F0a72EB6023A7706Cd"
35 donationAddressConst = ethCommon.HexToAddress(donationAddressStr)
36 bootCoordinatorAddressStr = "0xc783df8a850f42e7f7e57013759c285caa701eb6"
37 bootCoordinatorAddressConst = ethCommon.HexToAddress(bootCoordinatorAddressStr)
38 tokenHEZAddressStr = "0xf4e77E5Da47AC3125140c470c71cBca77B5c638c" //nolint:gosec
39 tokenHEZAddressConst = ethCommon.HexToAddress(tokenHEZAddressStr)
40 hermezRollupAddressStr = "0xD6C850aeBFDC46D7F4c207e445cC0d6B0919BDBe"
41 hermezRollupAddressConst = ethCommon.HexToAddress(hermezRollupAddressStr)
42 wdelayerAddressStr = "0x500D1d6A4c7D8Ae28240b47c8FCde034D827fD5e"
43 wdelayerAddressConst = ethCommon.HexToAddress(wdelayerAddressStr)
44 wdelayerTestAddressStr = "0x1d80315fac6aBd3EfeEbE97dEc44461ba7556160"
45 wdelayerTestAddressConst = ethCommon.HexToAddress(wdelayerTestAddressStr)
46 safetyAddressStr = "0xE5904695748fe4A84b40b3fc79De2277660BD1D3"
47 safetyAddressConst = ethCommon.HexToAddress(safetyAddressStr)
48)
49
50// Ethereum Accounts
51var (
52 hermezGovernanceDAOAddressSK = "2a8aede924268f84156a00761de73998dac7bf703408754b776ff3f873bcec60"
53 hermezGovernanceDAOAddressStr = "0x84Fae3d3Cba24A97817b2a18c2421d462dbBCe9f"
54 hermezGovernanceDAOAddressConst = ethCommon.HexToAddress(hermezGovernanceDAOAddressStr)
55
56 whiteHackGroupAddressSK = "8b24fd94f1ce869d81a34b95351e7f97b2cd88a891d5c00abc33d0ec9501902e"
57 whiteHackGroupAddressStr = "0xfa3BdC8709226Da0dA13A4d904c8b66f16c3c8BA"
58 whiteHackGroupAddressConst = ethCommon.HexToAddress(whiteHackGroupAddressStr)
59
60 hermezKeeperAddressSK = "7f307c41137d1ed409f0a7b028f6c7596f12734b1d289b58099b99d60a96efff"
61 hermezKeeperAddressStr = "0xFbC51a9582D031f2ceaaD3959256596C5D3a5468"
62 hermezKeeperAddressConst = ethCommon.HexToAddress(hermezKeeperAddressStr)
63
64 governanceAddressSK = "d49743deccbccc5dc7baa8e69e5be03298da8688a15dd202e20f15d5e0e9a9fb"
65 governanceAddressStr = "0xead9c93b79ae7c1591b1fb5323bd777e86e150d4"
66 governanceAddressConst = ethCommon.HexToAddress(governanceAddressStr)
67
68 auxAddressSK = "28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29089"
69 auxAddressStr = "0x3d91185a02774C70287F6c74Dd26d13DFB58ff16"
70 auxAddressConst = ethCommon.HexToAddress(auxAddressStr)
71
72 aux2AddressSK = "28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29087"
73 aux2AddressStr = "0x532792b73c0c6e7565912e7039c59986f7e1dd1f"
74 aux2AddressConst = ethCommon.HexToAddress(aux2AddressStr)
75
76 hermezRollupTestSK = "28d1bfbbafe9d1d4f5a11c3c16ab6bf9084de48d99fbac4058bdfa3c80b29088"
77 hermezRollupTestAddressStr = "0xEa960515F8b4C237730F028cBAcF0a28E7F45dE0"
78 hermezRollupAddressTestConst = ethCommon.HexToAddress(hermezRollupTestAddressStr)
79)
80
81var tokenHEZ = TokenConfig{
82 Address: tokenHEZAddressConst,
83 Name: "Hermez Network Token",
84}
85
86var (
87 accountGov *accounts.Account
88 accountKep *accounts.Account
89 accountWhite *accounts.Account
90 accountGovDAO *accounts.Account
91 accountAux *accounts.Account
92 accountAux2 *accounts.Account
93 accountHermez *accounts.Account
94 ks *keystore.KeyStore
95 ethClient *ethclient.Client
96 ethereumClientWhite *EthereumClient
97 ethereumClientKep *EthereumClient
98 ethereumClientGovDAO *EthereumClient
99 ethereumClientAux *EthereumClient
100 ethereumClientAux2 *EthereumClient
101 ethereumClientHermez *EthereumClient
102)
103
104func addKey(ks *keystore.KeyStore, skHex string) *accounts.Account {
105 key, err := crypto.HexToECDSA(skHex)
106 if err != nil {
107 panic(err)
108 }
109 account, err := ks.ImportECDSA(key, password)
110 if err != nil {
111 panic(err)
112 }
113 err = ks.Unlock(account, password)
114 if err != nil {
115 panic(err)
116 }
117 return &account
118}
119
120func TestMain(m *testing.M) {
121 exitVal := 0
122
123 if os.Getenv("INTEGRATION") != "" {
124 dir, err := ioutil.TempDir("", "tmpks")
125 if err != nil {
126 panic(err)
127 }
128 defer func() {
129 if err := os.RemoveAll(dir); err != nil {
130 panic(err)
131 }
132 }()
133 ks = keystore.NewKeyStore(dir, keystore.LightScryptN, keystore.LightScryptP)
134
135 // Load ethereum accounts from private keys
136 accountGov = addKey(ks, governanceAddressSK)
137 accountKep = addKey(ks, hermezKeeperAddressSK)
138 accountWhite = addKey(ks, whiteHackGroupAddressSK)
139 accountGovDAO = addKey(ks, hermezGovernanceDAOAddressSK)
140 accountAux = addKey(ks, auxAddressSK)
141 accountAux2 = addKey(ks, aux2AddressSK)
142 accountHermez = addKey(ks, hermezRollupTestSK)
143
144 ethClient, err = ethclient.Dial(ethClientDialURL)
145 if err != nil {
146 panic(err)
147 }
148
149 // Controllable Governance Address
150
151 ethereumClientGov := NewEthereumClient(ethClient, accountGov, ks, nil)
152 auctionClient, err = NewAuctionClient(ethereumClientGov, auctionAddressConst, tokenHEZ)
153 if err != nil {
154 panic(err)
155 }
156 auctionClientTest, err = NewAuctionClient(ethereumClientGov, auctionTestAddressConst, tokenHEZ)
157 if err != nil {
158 panic(err)
159 }
160 rollupClient, err = NewRollupClient(ethereumClientGov, hermezRollupAddressConst, tokenHEZ)
161 if err != nil {
162 panic(err)
163 }
164 wdelayerClient, err = NewWDelayerClient(ethereumClientGov, wdelayerAddressConst)
165 if err != nil {
166 panic(err)
167 }
168 wdelayerClientTest, err = NewWDelayerClient(ethereumClientGov, wdelayerTestAddressConst)
169 if err != nil {
170 panic(err)
171 }
172
173 ethereumClientKep = NewEthereumClient(ethClient, accountKep, ks, nil)
174 ethereumClientWhite = NewEthereumClient(ethClient, accountWhite, ks, nil)
175 ethereumClientGovDAO = NewEthereumClient(ethClient, accountGovDAO, ks, nil)
176 ethereumClientAux = NewEthereumClient(ethClient, accountAux, ks, nil)
177 ethereumClientAux2 = NewEthereumClient(ethClient, accountAux2, ks, nil)
178 ethereumClientHermez = NewEthereumClient(ethClient, accountHermez, ks, nil)
179
180 exitVal = m.Run()
181 }
182 os.Exit(exitVal)
183}