arnaucube
arnaucube/hermez-nodePublic Self-hosted repository
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}