-
Notifications
You must be signed in to change notification settings - Fork 119
/
Copy pathutils.go
101 lines (90 loc) · 2.65 KB
/
utils.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
package local
import (
"context"
"path/filepath"
"time"
sdk "github.com/cosmos/cosmos-sdk/types"
ethcommon "github.com/ethereum/go-ethereum/common"
"github.com/spf13/cobra"
"github.com/zeta-chain/zetacore/app"
zetae2econfig "github.com/zeta-chain/zetacore/cmd/zetae2e/config"
"github.com/zeta-chain/zetacore/contrib/localnet/orchestrator/smoketest/config"
"github.com/zeta-chain/zetacore/contrib/localnet/orchestrator/smoketest/runner"
"github.com/zeta-chain/zetacore/contrib/localnet/orchestrator/smoketest/utils"
crosschaintypes "github.com/zeta-chain/zetacore/x/crosschain/types"
)
// GetConfig returns config from file from the command line flag
func GetConfig(cmd *cobra.Command) (config.Config, error) {
configFile, err := cmd.Flags().GetString(FlagConfigFile)
if err != nil {
return config.Config{}, err
}
// use default config if no config file is specified
if configFile == "" {
return config.DefaultConfig(), nil
}
configFile, err = filepath.Abs(configFile)
if err != nil {
return config.Config{}, err
}
return config.ReadConfig(configFile)
}
// setCosmosConfig set account prefix to zeta
func setCosmosConfig() {
cosmosConf := sdk.GetConfig()
cosmosConf.SetBech32PrefixForAccount(app.Bech32PrefixAccAddr, app.Bech32PrefixAccPub)
cosmosConf.Seal()
}
// initTestRunner initializes a runner form tests
// it creates a runner with an account and copy contracts from deployer runner
func initTestRunner(
name string,
conf config.Config,
deployerRunner *runner.SmokeTestRunner,
userAddress ethcommon.Address,
userPrivKey string,
logger *runner.Logger,
) (*runner.SmokeTestRunner, error) {
// initialize runner for test
testRunner, err := zetae2econfig.RunnerFromConfig(
deployerRunner.Ctx,
name,
deployerRunner.CtxCancel,
conf,
userAddress,
userPrivKey,
utils.FungibleAdminName,
FungibleAdminMnemonic,
logger,
)
if err != nil {
return nil, err
}
// copy contracts from deployer runner
if err := testRunner.CopyAddressesFrom(deployerRunner); err != nil {
return nil, err
}
return testRunner, nil
}
// waitKeygenHeight waits for keygen height
func waitKeygenHeight(
ctx context.Context,
cctxClient crosschaintypes.QueryClient,
logger *runner.Logger,
) {
// wait for keygen to be completed
keygenHeight := int64(60)
logger.Print("⏳ wait height %v for keygen to be completed", keygenHeight)
for {
time.Sleep(2 * time.Second)
response, err := cctxClient.LastZetaHeight(ctx, &crosschaintypes.QueryLastZetaHeightRequest{})
if err != nil {
logger.Error("cctxClient.LastZetaHeight error: %s", err)
continue
}
if response.Height >= keygenHeight {
break
}
logger.Info("Last ZetaHeight: %d", response.Height)
}
}