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