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	"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}