diff --git a/cli/Makefile b/cli/Makefile deleted file mode 100644 index 118a16290..000000000 --- a/cli/Makefile +++ /dev/null @@ -1,37 +0,0 @@ -APP_NAME := lido-aragon -SUPPORTED_PLATFORMS := linux darwin -SUPPORTED_ARCHS := amd64 arm64 -VERSION := $(shell git describe --tags --abbrev=0) -REVISION := $(shell git rev-parse --short HEAD) - -UNAME_M := $(shell uname -m) -ARCH := $(UNAME_M) -ifeq ($(UNAME_M),x86_64) - ARCH=amd64 -endif -ifneq ($(filter %86,$(UNAME_M)),) - ARCH=386 -endif -ifneq ($(filter arm%,$(UNAME_M)),) - ARCH=arm -endif -ifneq ($(filter $(UNAME_M),arm64 aarch64 armv8b armv8l),) - ARCH=arm64 -endif - -compile-releases: clean vendor## Compile vsh binaries for multiple platforms and architectures strictly using vendor directory - mkdir -p ./build/ - for GOOS in $(SUPPORTED_PLATFORMS); do \ - for GOARCH in $(SUPPORTED_ARCHS); do \ - GOOS=$$GOOS GOARCH=$$GOARCH \ - go build -mod vendor -ldflags "-X lido-aragon/cmd.version=$(VERSION) -X lido-aragon/cmd.revision=$(REVISION)" -o build/${APP_NAME}_$${GOOS}_$${GOARCH}; \ - done \ - done - cd build/ && sha256sum * > SHA256SUM - -clean: ## Remove builds and vsh related docker containers - rm ./build/* || true - -vendor: ## synch dependencies in vendor/ directory - go mod tidy - go mod vendor \ No newline at end of file diff --git a/cli/build/SHA256SUM b/cli/build/SHA256SUM deleted file mode 100644 index 67dfb3287..000000000 --- a/cli/build/SHA256SUM +++ /dev/null @@ -1,4 +0,0 @@ -55e09746b1a90e033f643a0447be47a0c73f9b4ec2384b0e4d1225b4dc72f110 lido-aragon_darwin_amd64 -572a43662b74bdf5c8e0e0cfc8ab6dd9b117307e9e06985867392048f9705855 lido-aragon_darwin_arm64 -e3cb48e0bef318eb51dc2e5e43895437792d5a9a72cffa11e6c6abb8cb585682 lido-aragon_linux_amd64 -5be4c46a259e7d053cc73614c9d838a1b83419a13c0b97b7542947292da8aefb lido-aragon_linux_arm64 diff --git a/cli/build/lido-aragon_darwin_amd64 b/cli/build/lido-aragon_darwin_amd64 deleted file mode 100755 index af60a5ba5..000000000 Binary files a/cli/build/lido-aragon_darwin_amd64 and /dev/null differ diff --git a/cli/build/lido-aragon_darwin_arm64 b/cli/build/lido-aragon_darwin_arm64 deleted file mode 100755 index 3d4149941..000000000 Binary files a/cli/build/lido-aragon_darwin_arm64 and /dev/null differ diff --git a/cli/build/lido-aragon_linux_amd64 b/cli/build/lido-aragon_linux_amd64 deleted file mode 100755 index ae6733619..000000000 Binary files a/cli/build/lido-aragon_linux_amd64 and /dev/null differ diff --git a/cli/build/lido-aragon_linux_arm64 b/cli/build/lido-aragon_linux_arm64 deleted file mode 100755 index 6822a4333..000000000 Binary files a/cli/build/lido-aragon_linux_arm64 and /dev/null differ diff --git a/cli/cmd/node.go b/cli/cmd/node.go deleted file mode 100644 index a409f893e..000000000 --- a/cli/cmd/node.go +++ /dev/null @@ -1,30 +0,0 @@ -package cmd - -import ( - "lido-aragon/pkg/daemon" - "os" - - "github.com/pterm/pterm" - "github.com/spf13/cobra" -) - -var startNode = &cobra.Command{ - Use: "node", - Short: "Start hardhat node only", - Run: func(cmd *cobra.Command, args []string) { - os.Setenv("NETWORK_NAME", Lido.NetworkName) - pterm.Info.Printf("Network: %s\n", Lido.NetworkName) - - fork, err := cmd.Flags().GetString("fork") - if err != nil { - return - } - - if fork == "" { - pterm.Println("\nYou can set --fork url") - } - - Lido.HardhatNode.Start(fork) - daemon.WaitCtrlC() - }, -} diff --git a/cli/cmd/root.go b/cli/cmd/root.go deleted file mode 100644 index 3a66976cd..000000000 --- a/cli/cmd/root.go +++ /dev/null @@ -1,71 +0,0 @@ -package cmd - -import ( - "fmt" - "lido-aragon/pkg/apps" - "lido-aragon/pkg/aragon" - "lido-aragon/pkg/contracts" - "lido-aragon/pkg/deploy" - "lido-aragon/pkg/hardhat" - "lido-aragon/pkg/ipfs" - "lido-aragon/pkg/logs" - - "github.com/spf13/cobra" -) - -var ( - version string - revision string -) - -type LidoExecutor struct { - HardhatNode *hardhat.HardhatNode - IPFS *ipfs.IPFS - Contracts *contracts.Contracts - Deploy *deploy.Deploy - AragonClient *aragon.AragonClient - LidoApps *apps.LidoAppsClient - - NetworkName string -} - -var ( - Lido = &LidoExecutor{ - HardhatNode: &hardhat.HardhatNode{}, - IPFS: &ipfs.IPFS{}, - Contracts: &contracts.Contracts{}, - Deploy: &deploy.Deploy{}, - AragonClient: &aragon.AragonClient{}, - LidoApps: &apps.LidoAppsClient{}, - } -) - -func (ld *LidoExecutor) Shutdown() { - ld.HardhatNode.Stop() - ld.IPFS.Stop() - ld.AragonClient.Stop() - ld.LidoApps.Stop() -} - -var ( - rootCmd = &cobra.Command{ - Use: "lido-aragon", - Short: "lido-aragon: lido tool to start aragon env", - } -) - -// Execute executes the root command. -func Execute() error { - rootCmd.CompletionOptions.DisableDefaultCmd = true - rootCmd.Version = fmt.Sprintf("%s (rev-%s)\n", version, revision) - rootCmd.SetHelpCommand(&cobra.Command{Hidden: true}) - - rootCmd.PersistentFlags().StringVar(&Lido.NetworkName, "network", "localhost", "Set deploy network name") - rootCmd.PersistentFlags().BoolVarP(&logs.Verbose, "verbose", "v", false, "Verbose output all of services") - rootCmd.PersistentFlags().StringVar(&Lido.LidoApps.AppsLocator, "apps", "", "Which source to load app frontend assets from") - rootCmd.PersistentFlags().StringVar(&Lido.LidoApps.Path, "apps-path", "", "Lido apps path") - rootCmd.PersistentFlags().StringVar(&Lido.HardhatNode.Fork, "fork", "", "Fork endpoint https://mainnet.infura.io/v3/{WEB3_INFURA_PROJECT_ID}") - rootCmd.PersistentFlags().IntVar(&Lido.IPFS.Timeout, "ipfs-timeout", 30, "IPFS daemon timeout") - - return rootCmd.Execute() -} diff --git a/cli/cmd/start.go b/cli/cmd/start.go deleted file mode 100644 index 420d1ed53..000000000 --- a/cli/cmd/start.go +++ /dev/null @@ -1,174 +0,0 @@ -package cmd - -import ( - "encoding/json" - "fmt" - "io/ioutil" - "lido-aragon/pkg/aragon" - "lido-aragon/pkg/daemon" - "lido-aragon/pkg/deploy" - "log" - "os" - - "github.com/pterm/pterm" - "github.com/spf13/cobra" - "github.com/ttacon/chalk" -) - -func init() { - rootCmd.AddCommand(startCmd) - rootCmd.AddCommand(startAragon) - rootCmd.AddCommand(startNode) - - startCmd.AddCommand(startAllCmd) - startCmd.AddCommand(startForkCmd) -} - -var startAragon = &cobra.Command{ - Use: "aragon", - Short: "Start aragon client only", - Run: func(cmd *cobra.Command, args []string) { - os.Setenv("NETWORK_NAME", Lido.NetworkName) - - var aragonCmd aragon.AragonNetwork - - if Lido.NetworkName == "mainnet" { - aragonCmd = aragon.CMD_MAINNET - } - - pterm.Info.Printf("Network: %s\n", Lido.NetworkName) - - Lido.Deploy.DeployedFile, _, _ = getDeployedFile(Lido.NetworkName) - - err := Lido.AragonClient.Start(aragonCmd, Lido.LidoApps.AppsLocator, Lido.Deploy.DeployedFile) - if err != nil { - return - } - - pterm.Println() - pterm.FgWhite.Println("ARAGON_ENS_REGISTRY_ADDRESS = " + Lido.AragonClient.EnsRegistry) - pterm.FgWhite.Println("Start aragon at: ", chalk.Yellow, Lido.AragonClient.RunningUrl+"/#/"+Lido.Deploy.DeployedFile.DaoAddress) - - daemon.WaitCtrlC() - }, -} - -var startCmd = &cobra.Command{ - Use: "start", - Short: "Start local or form env", -} - -func removeDeployedFile(deployedPath string) { - if deployedPath == "" { - return - } - - if Lido.NetworkName == "mainnet" || Lido.NetworkName == "goerli" || Lido.NetworkName == "rinkeby" || Lido.NetworkName == "mainnet-test" { - fmt.Printf("Can't remove deployed file on network %s\n", Lido.NetworkName) - } - - e := os.Remove(deployedPath) - if e != nil { - log.Panic(e) - } - - fmt.Printf("removed %s\n", deployedPath) -} - -var startAllCmd = &cobra.Command{ - Use: "all", - Short: "Start hardhat node, start ipfs, deploy contracts, start lido apps, start aragon", - Run: func(cmd *cobra.Command, args []string) { - - os.Setenv("NETWORK_NAME", Lido.NetworkName) - - var deployedPath string - Lido.Deploy.DeployedFile, deployedPath, _ = getDeployedFile(Lido.NetworkName) - - removeDeployedFile(deployedPath) - - Lido.Contracts.Start() - Lido.HardhatNode.Start("") - Lido.IPFS.Start() - if err := Lido.Deploy.Start(); err != nil { - log.Println(err) - return - } - if err := Lido.LidoApps.Start(); err != nil { - log.Println(err) - return - } - if err := Lido.AragonClient.Start("", Lido.LidoApps.AppsLocator, nil); err != nil { - log.Println(err) - return - } - - if Lido.AragonClient.RunningUrl != "" && Lido.Deploy.DeployedFile.DaoAddress != "" { - pterm.Println() - pterm.FgYellow.Println("Start aragon at: " + Lido.AragonClient.RunningUrl + "/#/" + Lido.Deploy.DeployedFile.DaoAddress) - } - - daemon.WaitCtrlC() - }, -} - -var startForkCmd = &cobra.Command{ - Use: "fork", - Short: "Deploy API artifacts", - Run: func(cmd *cobra.Command, args []string) { - - os.Setenv("NETWORK_NAME", Lido.NetworkName) - - fork, err := cmd.Flags().GetString("fork") - if err != nil { - return - } - - if fork == "" { - pterm.Error.Println("Please set --fork url") - return - } - - Lido.HardhatNode.Start(fork) - - Lido.Deploy.DeployedFile, _, _ = getDeployedFile(Lido.NetworkName) - - err = Lido.AragonClient.Start(aragon.CMD_MAINNET, Lido.LidoApps.AppsLocator, Lido.Deploy.DeployedFile) - if err != nil { - return - } - - pterm.Println() - pterm.FgWhite.Println("Start aragon at: " + Lido.AragonClient.RunningUrl + "/#/" + Lido.Deploy.DeployedFile.DaoAddress) - - daemon.WaitCtrlC() - }, -} - -func getDeployedFile(networkName string) (*deploy.DeployedFile, string, error) { - - paths := []string{"./", "../"} - for _, path := range paths { - deployedPath := path + fmt.Sprintf("deployed-%s.json", networkName) - - _, err := os.Stat(deployedPath) - if err != nil { - continue - } - - jsonFile, err := os.Open(deployedPath) - if err != nil { - return nil, "", err - } - jsonResult, _ := ioutil.ReadAll(jsonFile) - - defer jsonFile.Close() - - var deployedFile deploy.DeployedFile - json.Unmarshal(jsonResult, &deployedFile) - - return &deployedFile, deployedPath, nil - } - - return nil, "", nil -} diff --git a/cli/go.mod b/cli/go.mod deleted file mode 100644 index 161072e71..000000000 --- a/cli/go.mod +++ /dev/null @@ -1,11 +0,0 @@ -module lido-aragon - -go 1.16 - -require ( - github.com/gookit/color v1.5.0 // indirect - github.com/pterm/pterm v0.12.33 - github.com/spf13/cobra v1.2.1 - github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31 - golang.org/x/sys v0.1.0 // indirect -) diff --git a/cli/go.sum b/cli/go.sum deleted file mode 100644 index e5eaa66c0..000000000 --- a/cli/go.sum +++ /dev/null @@ -1,602 +0,0 @@ -cloud.google.com/go v0.26.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= -cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= -cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= -cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= -cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= -cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= -cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= -cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= -cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= -cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= -cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= -cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= -cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= -cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= -cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= -cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= -cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= -cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= -cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= -cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= -cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= -cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= -cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= -cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= -cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= -cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= -cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= -cloud.google.com/go/firestore v1.1.0/go.mod h1:ulACoGHTpvq5r8rxGJ4ddJZBZqakUQqClKRT5SZwBmk= -cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= -cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= -cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= -cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= -cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= -cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= -cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= -cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= -cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= -dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= -github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= -github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= -github.com/MarvinJWendt/testza v0.1.0/go.mod h1:7AxNvlfeHP7Z/hDQ5JtE3OKYT3XFUeLCDE2DQninSqs= -github.com/MarvinJWendt/testza v0.2.1/go.mod h1:God7bhG8n6uQxwdScay+gjm9/LnO4D3kkcZX4hv9Rp8= -github.com/MarvinJWendt/testza v0.2.8/go.mod h1:nwIcjmr0Zz+Rcwfh3/4UhBp7ePKVhuBExvZqnKYWlII= -github.com/MarvinJWendt/testza v0.2.10 h1:cX4zE9TofXxe72a6EPIYAxC+8cVWTsmmgsXTZIT+5bQ= -github.com/MarvinJWendt/testza v0.2.10/go.mod h1:pd+VWsoGUiFtq+hRKSU1Bktnn+DMCSrDrXDpX2bG66k= -github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= -github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= -github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= -github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= -github.com/atomicgo/cursor v0.0.1 h1:xdogsqa6YYlLfM+GyClC/Lchf7aiMerFiZQn7soTOoU= -github.com/atomicgo/cursor v0.0.1/go.mod h1:cBON2QmmrysudxNBFthvMtN32r3jxVRIvzkUiF/RuIk= -github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kBD4zp0CCIs= -github.com/bketelsen/crypt v0.0.4/go.mod h1:aI6NrJ0pMGgvZKL1iVgXLnfIFJtfV+bKCoqOes/6LfM= -github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= -github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= -github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= -github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= -github.com/client9/misspell v0.3.4/go.mod h1:qj6jICC3Q7zFZvVWo7KLAzC3yx5G7kyvSDkc90ppPyw= -github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= -github.com/cncf/udpa/go v0.0.0-20200629203442-efcf912fb354/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/cncf/udpa/go v0.0.0-20201120205902-5459f2c99403/go.mod h1:WmhPx2Nbnhtbo57+VJT5O0JRkEi1Wbu0z5j0R8u5Hbk= -github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= -github.com/cpuguy83/go-md2man/v2 v2.0.0/go.mod h1:maD7wRr/U5Z6m/iR4s+kqSMx2CaBsrgA7czyZG/E6dU= -github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c= -github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= -github.com/envoyproxy/go-control-plane v0.9.0/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.1-0.20191026205805-5f8ba28d4473/go.mod h1:YTl/9mNaCwkRvm6d1a2C3ymFceY/DCBVvsKhRF0iEA4= -github.com/envoyproxy/go-control-plane v0.9.4/go.mod h1:6rpuAdCZL397s3pYoYcLgu1mIlRU8Am5FuJP05cCM98= -github.com/envoyproxy/go-control-plane v0.9.7/go.mod h1:cwu0lG7PUMfa9snN8LXBig5ynNVH9qI8YYLbd1fK2po= -github.com/envoyproxy/go-control-plane v0.9.9-0.20201210154907-fd9021fe5dad/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/go-control-plane v0.9.9-0.20210217033140-668b12f5399d/go.mod h1:cXg6YxExXjJnVBQHBLXeUAgxn2UodCpnH306RInaBQk= -github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7+kN2VEUnK/pcBlmesArF7c= -github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= -github.com/fsnotify/fsnotify v1.4.9/go.mod h1:znqG4EE+3YCdAaPaxE2ZRY/06pZUdp0tY4IgpuI1SZQ= -github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= -github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= -github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= -github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= -github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= -github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= -github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= -github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= -github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= -github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= -github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= -github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= -github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= -github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= -github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= -github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= -github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= -github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= -github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= -github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= -github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= -github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= -github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= -github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= -github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= -github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= -github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= -github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= -github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= -github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= -github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= -github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= -github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= -github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.1.2/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= -github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= -github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= -github.com/gookit/color v1.4.2/go.mod h1:fqRyamkC1W8uxl+lxCQxOT09l/vYfZ+QeiX3rKQHCoQ= -github.com/gookit/color v1.5.0 h1:1Opow3+BWDwqor78DcJkJCIwnkviFi+rrOANki9BUFw= -github.com/gookit/color v1.5.0/go.mod h1:43aQb+Zerm/BWh2GnrgOQm7ffz7tvQXEKV6BFMl7wAo= -github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= -github.com/hashicorp/consul/api v1.1.0/go.mod h1:VmuI/Lkw1nC05EYQWNKwWGbkg+FbDBtguAZLlVdkD9Q= -github.com/hashicorp/consul/sdk v0.1.1/go.mod h1:VKf9jXwCTEY1QZP2MOLRhb5i/I/ssyNV1vwHyQBF0x8= -github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= -github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= -github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= -github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= -github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= -github.com/hashicorp/go-rootcerts v1.0.0/go.mod h1:K6zTfqpRlCUIjkwsN4Z+hiSfzSTQa6eBIzfwKfwNnHU= -github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= -github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= -github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= -github.com/hashicorp/go.net v0.0.1/go.mod h1:hjKkEWcCURg++eb33jQU7oqQcI9XDCnUzHA0oac0k90= -github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= -github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= -github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= -github.com/hashicorp/mdns v1.0.0/go.mod h1:tL+uN++7HEJ6SQLQ2/p+z2pH24WQKWjBPkE0mNTz8vQ= -github.com/hashicorp/memberlist v0.1.3/go.mod h1:ajVTdAv/9Im8oMAAj5G31PhhMCZJV2pPBoIllUwCN7I= -github.com/hashicorp/serf v0.8.2/go.mod h1:6hOLApaqBFA1NXqRQAsxw9QxuDEvNxSQRwA/JwenrHc= -github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= -github.com/inconshreveable/mousetrap v1.0.0 h1:Z8tu5sraLXCXIcARxBp/8cbvlwVa7Z1NHg9XEKhtSvM= -github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= -github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= -github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= -github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= -github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= -github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= -github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= -github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= -github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= -github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= -github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= -github.com/mattn/go-runewidth v0.0.13 h1:lTGmDsbAYt5DmK6OnoV7EuIF1wEIFAcxld6ypU4OSgU= -github.com/mattn/go-runewidth v0.0.13/go.mod h1:Jdepj2loyihRzMpdS35Xk/zdY8IAYHsh153qUoGf23w= -github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= -github.com/mitchellh/cli v1.0.0/go.mod h1:hNIlj7HEI86fIcpObd7a0FcrxTWetlwJDGcceTlRvqc= -github.com/mitchellh/go-homedir v1.0.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= -github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= -github.com/mitchellh/gox v0.4.0/go.mod h1:Sd9lOJ0+aimLBi73mGofS1ycjY8lL3uZM3JPS42BGNg= -github.com/mitchellh/iochan v1.0.0/go.mod h1:JwYml1nuB7xOzsp52dPpHFffvOCDupsG0QubkSMEySY= -github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= -github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= -github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= -github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= -github.com/pelletier/go-toml v1.9.3/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= -github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= -github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= -github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= -github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= -github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= -github.com/prometheus/client_model v0.0.0-20190812154241-14fe0d1b01d4/go.mod h1:xMI15A0UPsDsEKsMN9yxemIoYk6Tm2C1GtYGdfGttqA= -github.com/pterm/pterm v0.12.27/go.mod h1:PhQ89w4i95rhgE+xedAoqous6K9X+r6aSOI2eFF7DZI= -github.com/pterm/pterm v0.12.29/go.mod h1:WI3qxgvoQFFGKGjGnJR849gU0TsEOvKn5Q8LlY1U7lg= -github.com/pterm/pterm v0.12.30/go.mod h1:MOqLIyMOgmTDz9yorcYbcw+HsgoZo3BQfg2wtl3HEFE= -github.com/pterm/pterm v0.12.31/go.mod h1:32ZAWZVXD7ZfG0s8qqHXePte42kdz8ECtRyEejaWgXU= -github.com/pterm/pterm v0.12.33 h1:XiT50Pvdqn5O8FAiIqZMpXP6NkVEcmlUa+mkA1yWVCg= -github.com/pterm/pterm v0.12.33/go.mod h1:x+h2uL+n7CP/rel9+bImHD5lF3nM9vJj80k9ybiiTTE= -github.com/rivo/uniseg v0.2.0 h1:S1pD9weZBuJdFmowNwbpi7BJ8TNftyUImj/0WQi72jY= -github.com/rivo/uniseg v0.2.0/go.mod h1:J6wj4VEh+S6ZtnVlnTBMWIodfgj8LQOQFoIToxlJtxc= -github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= -github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= -github.com/russross/blackfriday/v2 v2.0.1/go.mod h1:+Rmxgy9KzJVeS9/2gXHxylqXiyQDYRxCVz55jmeOWTM= -github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= -github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= -github.com/shurcooL/sanitized_anchor_name v1.0.0/go.mod h1:1NzhyTcUVG4SuEtjjoZeVRXNmyL/1OwPU0+IJeTBvfc= -github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= -github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= -github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= -github.com/spf13/cast v1.3.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= -github.com/spf13/cobra v1.2.1 h1:+KmjbUw1hriSNMF55oPrkZcb27aECyrj8V2ytv7kWDw= -github.com/spf13/cobra v1.2.1/go.mod h1:ExllRjgxM/piMAM+3tAZvg8fsklGAf3tPfi+i8t68Nk= -github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= -github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= -github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= -github.com/spf13/viper v1.8.1/go.mod h1:o0Pch8wJ9BVSWGQMbra6iw0oQ5oktSIBaujf1rJH9Ns= -github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= -github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= -github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= -github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= -github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= -github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= -github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= -github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= -github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31 h1:OXcKh35JaYsGMRzpvFkLv/MEyPuL49CThT1pZ8aSml4= -github.com/ttacon/chalk v0.0.0-20160626202418-22c06c80ed31/go.mod h1:onvgF043R+lC5RZ8IT9rBXDaEDnpnw/Cl+HFiw+v/7Q= -github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778 h1:QldyIu/L63oPpyvQmHgvgickp1Yw510KJOqX7H24mg8= -github.com/xo/terminfo v0.0.0-20210125001918-ca9a967f8778/go.mod h1:2MuV+tbUrU1zIOPMxZ5EncGwgmMJsa+9ucAQZXxsObs= -github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= -github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= -go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= -go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= -go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= -go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= -go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= -go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= -go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= -go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= -go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= -go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= -golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= -golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= -golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= -golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= -golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= -golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= -golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= -golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= -golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= -golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= -golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= -golang.org/x/lint v0.0.0-20181026193005-c67002cb31c3/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= -golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= -golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= -golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= -golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= -golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= -golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= -golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= -golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= -golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20180826012351-8a410e7b638d/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20181201002055-351d144fa1fc/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= -golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= -golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= -golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= -golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= -golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= -golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= -golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= -golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= -golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= -golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= -golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= -golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/oauth2 v0.0.0-20210402161424-2e8d93401602/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= -golang.org/x/sync v0.0.0-20180314180146-1d60e4601c6f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= -golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20180830151530-49385e6e1522/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= -golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191005200804-aed5e4c7ecf9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.0.0-20211013075003-97ac67df715c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/sys v0.1.0 h1:kunALQeHf1/185U1i0GOB/fy1IPRDDpuoOOqRReG57U= -golang.org/x/sys v0.1.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= -golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210220032956-6a3ed077a48d/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= -golang.org/x/term v0.0.0-20210615171337-6886f2dfbf5b/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211 h1:JGgROgKl9N8DuW20oFS5gxc+lE67/N3FcwmBPMe7ArY= -golang.org/x/term v0.0.0-20210927222741-03fcf44c2211/go.mod h1:jbD1KX2456YbFQfuXm/mYQcufACuNUgVhRMnK/tPxf8= -golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= -golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= -golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= -golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190114222345-bf090417da8b/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= -golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= -golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= -golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= -golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= -golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191112195655-aa38f8e97acc/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= -golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= -golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= -golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= -golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= -golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= -golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= -golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= -golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= -golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= -google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= -google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= -google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= -google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= -google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= -google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= -google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= -google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= -google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= -google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= -google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= -google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= -google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= -google.golang.org/api v0.44.0/go.mod h1:EBOGZqzyhtvMDoxwS97ctnh0zUmYY6CxqXsc1AvkYD8= -google.golang.org/appengine v1.1.0/go.mod h1:EbEs0AVv82hx2wNQdGPgUI5lhzA/G0D9YwlJXL52JkM= -google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= -google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= -google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= -google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= -google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= -google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= -google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= -google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= -google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= -google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= -google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= -google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= -google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= -google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= -google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= -google.golang.org/grpc v1.19.0/go.mod h1:mqu4LbDTu4XGKhr4mRzUsmM4RtVoemTSY81AxZiDr8c= -google.golang.org/grpc v1.20.1/go.mod h1:10oTOabMzJvdu6/UiuZezV6QK5dSlG84ov/aaiqXj38= -google.golang.org/grpc v1.21.1/go.mod h1:oYelfM1adQP15Ek0mdvEgi9Df8B9CZIaU1084ijfRaM= -google.golang.org/grpc v1.23.0/go.mod h1:Y5yQAOtifL1yxbo5wqy6BxZv8vAUGQwXBOALyacEbxg= -google.golang.org/grpc v1.25.1/go.mod h1:c3i+UQWmh7LiEpx4sFZnkU36qjEYZ0imhYfXVyQciAY= -google.golang.org/grpc v1.26.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.0/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.27.1/go.mod h1:qbnxyOmOxrQa7FizSgH+ReBfzJrCY1pSN7KXBS8abTk= -google.golang.org/grpc v1.28.0/go.mod h1:rpkK4SK4GF4Ach/+MFLZUBavHOvF2JJB5uozKKal+60= -google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= -google.golang.org/grpc v1.30.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.0/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.31.1/go.mod h1:N36X2cJ7JwdamYAgDz+s+rVMFjt3numwzf/HckM8pak= -google.golang.org/grpc v1.33.1/go.mod h1:fr5YgcSWrqhRRxogOsw7RzIpsmvOZ6IcH4kBYTpR3n0= -google.golang.org/grpc v1.33.2/go.mod h1:JMHMWHQWaTccqQQlmk3MJZS+GWXOdAesneDmEnv2fbc= -google.golang.org/grpc v1.34.0/go.mod h1:WotjhfgOW/POjDeRt8vscBtXq+2VjORFy659qA51WJ8= -google.golang.org/grpc v1.35.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.0/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.36.1/go.mod h1:qjiiYl8FncCW8feJPdyg3v6XW24KsRHe+dy9BAGRRjU= -google.golang.org/grpc v1.38.0/go.mod h1:NREThFqKR1f3iQ6oBuvc5LadQuXVGo9rkm5ZGrQdJfM= -google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= -google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= -google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= -google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= -google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= -google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= -google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= -google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= -google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= -gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= -gopkg.in/ini.v1 v1.62.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= -gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= -gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= -honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= -rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= -rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= -rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= diff --git a/cli/main.go b/cli/main.go deleted file mode 100644 index 66f56704f..000000000 --- a/cli/main.go +++ /dev/null @@ -1,11 +0,0 @@ -package main - -import ( - "lido-aragon/cmd" -) - -func main() { - defer cmd.Lido.Shutdown() - - cmd.Execute() -} diff --git a/cli/pkg/apps/lido_apps.go b/cli/pkg/apps/lido_apps.go deleted file mode 100644 index b8e3090d9..000000000 --- a/cli/pkg/apps/lido_apps.go +++ /dev/null @@ -1,202 +0,0 @@ -package apps - -import ( - "bytes" - "encoding/json" - "errors" - "fmt" - "io/ioutil" - "lido-aragon/pkg/logs" - "log" - "os" - "os/exec" - "regexp" - "strings" - "sync" - "syscall" - "time" - - "github.com/pterm/pterm" -) - -type LidoAppsClient struct { - Apps []*LidoApp - Path string - - AppsLocator string -} - -type LidoApp struct { - Name string - Command string - Cmd *exec.Cmd - Outb bytes.Buffer - Errb bytes.Buffer - RunningUrl string -} - -type Manifest struct { - Name string `json:"name"` -} - -func (node *LidoAppsClient) getAppPath() (string, error) { - if node.Path != "" { - return node.Path, nil - } - - paths := []string{"apps/", "../apps/"} - - fmt.Println(paths) - for _, path := range paths { - _, err := ioutil.ReadDir(path) - if err == nil { - return path, nil - } - } - - return "", nil -} - -func (node *LidoAppsClient) Start() error { - pterm.Info.Println("Lido apps: checking apps...") - - apps := make([]*LidoApp, 0) - - appPath, err := node.getAppPath() - if err != nil { - return err - } - - files, err := ioutil.ReadDir(appPath) - if err != nil { - return err - } - - for _, f := range files { - - path := appPath + "/" + f.Name() - appPath := path + "/app/" - maninfestPath := path + "/manifest.json" - - _, err := os.Stat(maninfestPath) - if err != nil { - pterm.Info.Printfln("Manifest %s doesn't exists, continue", maninfestPath) - continue - } - - jsonFile, err := os.Open(maninfestPath) - if err != nil { - return err - } - jsonResult, _ := ioutil.ReadAll(jsonFile) - - defer jsonFile.Close() - - var manifest Manifest - json.Unmarshal(jsonResult, &manifest) - - apps = append(apps, &LidoApp{ - Name: manifest.Name, - Command: fmt.Sprintf("yarn --cwd %s run dev-fallback", appPath), - }) - - pterm.Info.Printfln("Found app: %s", manifest.Name) - } - - if len(apps) == 0 { - log.Println("No apps") - return nil - } - - pterm.Info.Println("Try to start apps") - - var wg sync.WaitGroup - - node.Apps = apps - - for _, app := range node.Apps { - - app.RunningUrl = "" - app.Outb.Reset() - app.Errb.Reset() - - app.Cmd = exec.Command("/bin/sh", "-c", app.Command) - // app.Cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} - - app.Cmd.Stdout = &app.Outb - app.Cmd.Stderr = &app.Errb - - err := app.Cmd.Start() - if err != nil { - return err - } - - wg.Add(1) - go node.CheckRunningUrl(&wg, app) - } - - wg.Wait() - - return nil -} - -func (node *LidoAppsClient) CheckRunningUrl(wg *sync.WaitGroup, app *LidoApp) error { - defer wg.Done() - - pterm.Info.Println(app.Name + " starting...") - - re, _ := regexp.Compile(`Server running at (.*?)\s`) - - for { - if logs.Verbose && app.Outb.String() != "" { - log.Println(app.Outb.String()) - } - - if strings.Contains(app.Outb.String(), "Built in") { - - res := re.FindAllStringSubmatch(app.Outb.String(), -1) - - app.RunningUrl = string(res[0][1]) - - pterm.Success.Printf(app.Name+": running at %v\n", app.RunningUrl) - - return nil - } - - if strings.Contains(app.Errb.String(), "Error:") { - pterm.Error.Println(app.Errb.String()) - return errors.New(app.Errb.String()) - } - app.Outb.Reset() - time.Sleep(1 * time.Second) - } - - return nil -} - -func (node *LidoAppsClient) Stop() { - - if len(node.Apps) == 0 { - return - } - - s, _ := pterm.DefaultSpinner.Start("Lido apps: Stopping...") - for _, app := range node.Apps { - app.Stop() - } - - node.Apps = nil - - s.Success("Lido apps: Stopped") -} - -func (app *LidoApp) Stop() { - if app.Cmd == nil || app.Cmd.Process == nil { - return - } - pterm.Info.Println(app.Name + ": Stopping...") - syscall.Kill(-app.Cmd.Process.Pid, syscall.SIGKILL) - app.Cmd.Process.Kill() - app.Cmd = nil - pterm.Info.Println(app.Name + ": Stopped") -} diff --git a/cli/pkg/aragon/aragon_client.go b/cli/pkg/aragon/aragon_client.go deleted file mode 100644 index 52376a1f5..000000000 --- a/cli/pkg/aragon/aragon_client.go +++ /dev/null @@ -1,158 +0,0 @@ -package aragon - -import ( - "bytes" - "errors" - "fmt" - "lido-aragon/pkg/deploy" - "lido-aragon/pkg/logs" - "os" - "os/exec" - "regexp" - "strings" - "syscall" - "time" - - "github.com/pterm/pterm" -) - -var ( - CMD_LOCAL AragonNetwork = "local" - CMD_MAINNET AragonNetwork = "mainnet" - CMD_RINKEBY AragonNetwork = "rinkeby" - CMD_STAGING AragonNetwork = "staging" - CMD_ROPSTEN AragonNetwork = "ropsten" - CMD_XDAI AragonNetwork = "xdai" -) - -type AragonNetwork string - -type AragonClient struct { - Cmd *exec.Cmd - Outb bytes.Buffer - Errb bytes.Buffer - - RunningUrl string - EnsRegistry string -} - -func checkApp(name string, address string, appInfo deploy.AppInfo, appLocatorArr *[]string) { - if name == "" || address == "" { - return - } - - var appId string - var appAddress string - - //check name - if strings.HasPrefix(name, "0x") && name == appInfo.ID { - appId = name - } else if appInfo.ID != "" && name == appInfo.Name { - appId = appInfo.ID - } else { - return - } - - //check address - if strings.Contains(address, "http://") || strings.Contains(address, "https://") { - appAddress = address + "/" - - //check fo IPFS CID v0 - https://docs.ipfs.io/concepts/content-addressing/#identifier-formats - } else if strings.HasPrefix(address, "Qm") && len(address) == 46 { - //@todo load from flags - appAddress = fmt.Sprintf("https://mainnet.lido.fi/ipfs/%s/", address) - } - - *appLocatorArr = append(*appLocatorArr, fmt.Sprintf("%s:%s", appId, appAddress)) -} - -func getAppsLocator(lidoApps string, deployedFile *deploy.DeployedFile) []string { - if lidoApps == "" { - return nil - } - var appLocatorArr []string - - lidoAppsArray := strings.Split(lidoApps, ",") - - for _, app := range lidoAppsArray { - tmp := strings.SplitN(app, ":", 2) - - checkApp(tmp[0], tmp[1], deployedFile.AppLido, &appLocatorArr) - checkApp(tmp[0], tmp[1], deployedFile.AppOracle, &appLocatorArr) - checkApp(tmp[0], tmp[1], deployedFile.AppNodeOperatorsRegistry, &appLocatorArr) - } - - return appLocatorArr -} - -func (node *AragonClient) Start(network AragonNetwork, lidoApps string, deployedFile *deploy.DeployedFile) error { - s, _ := pterm.DefaultSpinner.Start("Aragon client: starting...") - defer s.Stop() - - if network == CMD_MAINNET { - os.Setenv("RUN_CMD", "mainnet") - } - - appLocatorArr := getAppsLocator(lidoApps, deployedFile) - - if len(appLocatorArr) != 0 { - os.Setenv("ARAGON_APP_LOCATOR", strings.Join(appLocatorArr, ",")) - } - - node.RunningUrl = "" - node.Outb.Reset() - node.Errb.Reset() - - node.Cmd = exec.Command("yarn", "aragon:start") - // node.Cmd.SysProcAttr = &syscall.SysProcAttr{Setpgid: true} - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - err := node.Cmd.Start() - if err != nil { - return err - } - - re, _ := regexp.Compile(`Server running at (.*?)\s`) - reEns, _ := regexp.Compile(`ARAGON_ENS_REGISTRY_ADDRESS=(.*?)`) - - for { - if logs.Verbose { - fmt.Print(node.Outb.String()) - } - - if strings.Contains(node.Outb.String(), "Built in") { - s.Success() - - res := re.FindAllStringSubmatch(node.Outb.String(), -1) - node.RunningUrl = string(res[0][1]) - - res2 := reEns.FindAllStringSubmatch(node.Outb.String(), -1) - node.EnsRegistry = string(res2[0][1]) - - return nil - } - - if strings.Contains(node.Errb.String(), "Error:") { - s.Fail() - pterm.Error.Println(node.Errb.String()) - return errors.New(node.Errb.String()) - } - node.Outb.Reset() - time.Sleep(1 * time.Second) - } - - return nil -} - -func (node *AragonClient) Stop() { - if node.Cmd == nil { - return - } - - s, _ := pterm.DefaultSpinner.Start("Aragon client: Stopping...") - syscall.Kill(-node.Cmd.Process.Pid, syscall.SIGKILL) - node.Cmd.Process.Kill() - node.Cmd = nil - - s.Success("Aragon client: Stopped") -} diff --git a/cli/pkg/contracts/compile.go b/cli/pkg/contracts/compile.go deleted file mode 100644 index 076bb35b2..000000000 --- a/cli/pkg/contracts/compile.go +++ /dev/null @@ -1,39 +0,0 @@ -package contracts - -import ( - "bytes" - "fmt" - "lido-aragon/pkg/logs" - "os/exec" - - "github.com/pterm/pterm" -) - -type Contracts struct { - Cmd *exec.Cmd - Outb bytes.Buffer - Errb bytes.Buffer -} - -func (node *Contracts) Start() error { - s, _ := pterm.DefaultSpinner.Start("Contracts: compile...") - - node.Cmd = exec.Command("yarn", "compile") - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - err := node.Cmd.Run() - if err != nil { - pterm.Error.Println(node.Errb.String()) - s.Fail() - return err - } - - //need to use different buffers - if logs.Verbose { - fmt.Print(node.Outb.String()) - node.Outb.Reset() - } - - s.Success("Contracts: compile...done") - return nil -} diff --git a/cli/pkg/daemon/signal.go b/cli/pkg/daemon/signal.go deleted file mode 100644 index 35df889af..000000000 --- a/cli/pkg/daemon/signal.go +++ /dev/null @@ -1,50 +0,0 @@ -package daemon - -import ( - "fmt" - "os" - "os/signal" - "syscall" -) - -func WaitCtrlC() { - fmt.Println("Please use `Ctrl-C` to exit this program.") - - //waiting for signal - sigChan := make(chan os.Signal, 1) - signal.Notify(sigChan, syscall.SIGINT, syscall.SIGTERM) - - exitChan := make(chan int) - - go checkSignal(sigChan, exitChan) - - <-exitChan -} - -func checkSignal(sigChan chan os.Signal, exitChan chan int) { - sig := <-sigChan - - switch sig { - // kill -SIGHUP XXXX [XXXX - PID for your program] - case syscall.SIGHUP: - exitChan <- 0 - - // kill -SIGINT XXXX or Ctrl+c [XXXX - PID for your program] - case syscall.SIGINT: - exitChan <- 0 - - // kill -SIGTERM XXXX [XXXX - PID for your program] - case syscall.SIGTERM: - fmt.Println("Signal terminte triggered.") - exitChan <- 0 - - // kill -SIGQUIT XXXX [XXXX - PID for your program] - case syscall.SIGQUIT: - fmt.Println("Signal quit triggered.") - exitChan <- 0 - - default: - fmt.Println("Unknown signal.") - exitChan <- 0 - } -} diff --git a/cli/pkg/deploy/deploy.go b/cli/pkg/deploy/deploy.go deleted file mode 100644 index 08a6640ab..000000000 --- a/cli/pkg/deploy/deploy.go +++ /dev/null @@ -1,189 +0,0 @@ -package deploy - -import ( - "bytes" - "fmt" - "lido-aragon/pkg/logs" - "os" - "os/exec" - "strings" - - "github.com/pterm/pterm" -) - -type Deploy struct { - Cmd *exec.Cmd - Outb bytes.Buffer - Errb bytes.Buffer - - DeployedFile *DeployedFile -} - -type AppInfo struct { - BaseAddress string `json:"baseAddress"` - FullName string `json:"fullName"` - Name string `json:"name"` - ID string `json:"id"` - IpfsCid string `json:"ipfsCid"` - ContentURI string `json:"contentURI"` - ProxyAddress string `json:"proxyAddress"` -} - -type DeployedFile struct { - DaoAddress string `json:"daoAddress"` - AppLido AppInfo `json:"app:lido"` - AppOracle AppInfo `json:"app:oracle"` - AppNodeOperatorsRegistry AppInfo `json:"app:node-operators-registry"` -} - -func (node *Deploy) Start() error { - - if err := node.AragonEnv(); err != nil { - return err - } - node.AragonStdApps() - node.ApmAndTemplates() - node.DeployApps() - node.DeployDAO() - - return nil -} - -func (node *Deploy) AragonEnv() error { - s, _ := pterm.DefaultSpinner.Start("Deploy: Aragon env...") - - node.Cmd = exec.Command("yarn", "deploy:aragon-env") - - if logs.Verbose { - node.Cmd.Stdout = os.Stdout - node.Cmd.Stderr = os.Stderr - } else { - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - } - - err := node.Cmd.Run() - if err != nil { - if strings.Contains(node.Errb.String(), "Error: Cannot create instance of ENS") { - s.UpdateText("Error: Cannot create instance of ENS, remove deployed-localhost.json file and try again") - } - pterm.Error.Print(node.Errb.String()) - s.Fail() - return err - } - - s.Success("Deploy: Aragon env... done") - - return nil -} - -func (node *Deploy) AragonStdApps() error { - s, _ := pterm.DefaultSpinner.Start("Deploy: Aragon standart apps...") - - node.Cmd = exec.Command("yarn", "deploy:aragon-std-apps") - if logs.Verbose { - node.Cmd.Stdout = os.Stdout - node.Cmd.Stderr = os.Stderr - } else { - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - } - err := node.Cmd.Run() - if err != nil { - return err - } - - //need to use different buffers - if logs.Verbose { - fmt.Print(node.Outb.String()) - node.Outb.Reset() - } - - s.Success("Deploy: Aragon standart apps... done") - - return nil -} - -func (node *Deploy) ApmAndTemplates() error { - s, _ := pterm.DefaultSpinner.Start("Deploy: apm and template...") - - node.Cmd = exec.Command("yarn", "deploy:apm-and-template") - if logs.Verbose { - node.Cmd.Stdout = os.Stdout - node.Cmd.Stderr = os.Stderr - } else { - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - } - err := node.Cmd.Run() - if err != nil { - pterm.Error.Println(err) - return err - } - - //need to use different buffers - if logs.Verbose { - fmt.Print(node.Outb.String()) - node.Outb.Reset() - } - - s.Success("Deploy: apm and template... done") - - return nil -} - -func (node *Deploy) DeployApps() error { - s, _ := pterm.DefaultSpinner.Start("Deploy: lido apps...") - - node.Cmd = exec.Command("yarn", "deploy:apps") - if logs.Verbose { - node.Cmd.Stdout = os.Stdout - node.Cmd.Stderr = os.Stderr - } else { - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - } - err := node.Cmd.Run() - if err != nil { - pterm.Error.Println(err) - return err - } - - //need to use different buffers - if logs.Verbose { - fmt.Print(node.Outb.String()) - node.Outb.Reset() - } - - s.Success("Deploy: lido apps... done") - - return nil -} - -func (node *Deploy) DeployDAO() error { - s, _ := pterm.DefaultSpinner.Start("Deploy: DAO...") - - node.Cmd = exec.Command("yarn", "deploy:dao") - if logs.Verbose { - node.Cmd.Stdout = os.Stdout - node.Cmd.Stderr = os.Stderr - } else { - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - } - err := node.Cmd.Run() - if err != nil { - pterm.Error.Println(err) - return err - } - - //need to use different buffers - if logs.Verbose { - fmt.Print(node.Outb.String()) - node.Outb.Reset() - } - - s.Success("Deploy: DAO... done") - - return nil -} diff --git a/cli/pkg/hardhat/hardhat.go b/cli/pkg/hardhat/hardhat.go deleted file mode 100644 index 65129881e..000000000 --- a/cli/pkg/hardhat/hardhat.go +++ /dev/null @@ -1,74 +0,0 @@ -package hardhat - -import ( - "bytes" - "fmt" - "lido-aragon/pkg/logs" - "log" - "os/exec" - "strings" - "time" - - "github.com/pterm/pterm" -) - -type HardhatNode struct { - Fork string - Cmd *exec.Cmd -} - -func (node *HardhatNode) Start(infuraProjectUrl string) { - if node.Cmd != nil && node.Cmd.Process != nil && node.Cmd.Process.Pid != 0 { - fmt.Println("Hardhat already started") - return - } - - s, _ := pterm.DefaultSpinner.Start("Hardhat node: Starting...") - - var outb, errb bytes.Buffer - - if infuraProjectUrl == "" { - node.Cmd = exec.Command("npx", "hardhat", "node") - } else { - //node.Cmd = exec.Command("/bin/sh", "-c", "cmd1; cmd2") - node.Cmd = exec.Command("npx", "hardhat", "node", "--fork", infuraProjectUrl) - } - - node.Cmd.Stdout = &outb //os.Stdout - node.Cmd.Stderr = &errb //os.Stderr - err := node.Cmd.Start() - if err != nil { - log.Panic(err) - } - - for { - if logs.Verbose { - fmt.Print(outb.String()) - } - - if strings.Contains(outb.String(), "Accounts") { - s.Success("Hardhat node: Started") - break - } - - if strings.Contains(errb.String(), "Error:") { - s.Fail() - pterm.Error.Println(errb.String()) - break - } - outb.Reset() - time.Sleep(100 * time.Millisecond) - } -} - -func (node *HardhatNode) Stop() { - if node.Cmd == nil { - return - } - - s, _ := pterm.DefaultSpinner.Start("Hardhat node: Stopping...") - node.Cmd.Process.Kill() - node.Cmd = nil - - s.Success("Hardhat node: Stopped") -} diff --git a/cli/pkg/ipfs/ipfs.go b/cli/pkg/ipfs/ipfs.go deleted file mode 100644 index c738c74f9..000000000 --- a/cli/pkg/ipfs/ipfs.go +++ /dev/null @@ -1,72 +0,0 @@ -package ipfs - -import ( - "bytes" - "fmt" - "lido-aragon/pkg/logs" - "log" - "os/exec" - "strings" - "time" - - "github.com/pterm/pterm" -) - -type IPFS struct { - Cmd *exec.Cmd - Outb bytes.Buffer - Errb bytes.Buffer - Timeout int -} - -func (node *IPFS) Start() { - s, _ := pterm.DefaultSpinner.Start("IPFS: Starting...") - - node.Cmd = exec.Command("ipfs", "daemon") - node.Cmd.Stdout = &node.Outb - node.Cmd.Stderr = &node.Errb - err := node.Cmd.Start() - if err != nil { - log.Panic(err) - } - - timeout := node.Timeout - for { - if logs.Verbose && node.Outb.String() != "" { - fmt.Print(node.Outb.String()) - } - - if strings.Contains(node.Outb.String(), "Daemon is ready") { - s.Success("IPFS: Started") - break - } - - if strings.Contains(node.Errb.String(), "Error:") { - s.Fail() - pterm.Error.Println(node.Errb.String()) - break - } - - node.Outb.Reset() - node.Errb.Reset() - - time.Sleep(1 * time.Second) - timeout-- - - if timeout < 0 { - s.UpdateText("Timeout error") - s.Fail() - panic("Timeout error") - } - } -} - -func (node *IPFS) Stop() { - if node.Cmd == nil || node.Cmd.Process == nil || node.Cmd.Process.Pid == 0 { - return - } - s, _ := pterm.DefaultSpinner.Start("IPFS: Stopping...") - node.Cmd.Process.Kill() - node.Cmd = nil - s.Success("IPFS: Stopped") -} diff --git a/cli/pkg/logs/verbose.go b/cli/pkg/logs/verbose.go deleted file mode 100644 index ebcafc376..000000000 --- a/cli/pkg/logs/verbose.go +++ /dev/null @@ -1,3 +0,0 @@ -package logs - -var Verbose bool diff --git a/contracts/0.4.24/template/LidoTemplate.sol b/contracts/0.4.24/template/LidoTemplate.sol index 08ac14b06..01b4cb4fd 100644 --- a/contracts/0.4.24/template/LidoTemplate.sol +++ b/contracts/0.4.24/template/LidoTemplate.sol @@ -214,12 +214,9 @@ contract LidoTemplate is IsContract { address _tokenManagerImpl, address _votingImpl ) external onlyOwner { - // uint16[3] memory initialSemanticVersion = [1, 0, 0]; - uint16[3] memory initialSemanticVersion = [uint16(1), uint16(0), uint16(0)]; bytes memory dummyContentURI = new bytes(0); - // new bytes(0x697066733a516d516b4a4d7476753474794a76577250584a666a4c667954576e393539696179794e6a703759714e7a58377053); APMRegistry lidoRegistry = deployState.lidoRegistry; diff --git a/deployed-goerli.json b/deployed-goerli.json index 1d73e2d2a..16fe5e921 100644 --- a/deployed-goerli.json +++ b/deployed-goerli.json @@ -1,106 +1,20 @@ { - "deployCommit": "990dda79d8b19358b6b7ab4a38d0be4af6e732ea", - "networkId": 5, - "daoAragonId": "lido-testnet-prater", - "ensAddress": "0x043e6DBC5CAd60874727d21ecC2aAeBf50A0de80", - "daoFactoryAddress": "0x0B6769F500b293e3adacD97c3961189565069902", - "apmRegistryFactoryAddress": "0x70B3284fD016a570146cE48fC54D7A81bCd94BBa", - "miniMeTokenFactoryAddress": "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", - "aragonIDAddress": "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", - "deployer": "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", - "lidoTemplate": { - "address": "0x9A4a36B5fe517f98BD6529d4317B0b723F600AaD", - "deployTx": "0xda8746bca23c7a4f7c58e1a3370cb1ffa1e250ace90fd4684dbb1842ee6ac921", + "accountingOracle": { + "deployParameters": { + "consensusVersion": 1 + }, + "contract": "AccountingOracle", + "implementation": "0xC94ad2eb129146235f71cc35f7FbFec7fe404DF9", + "address": "0x76f358A842defa0E179a8970767CFf668Fc134d6", "constructorArgs": [ - "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", - "0x0B6769F500b293e3adacD97c3961189565069902", - "0x043e6DBC5CAd60874727d21ecC2aAeBf50A0de80", - "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", - "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", - "0x70B3284fD016a570146cE48fC54D7A81bCd94BBa" + "0x1eDf09b5023DC86737b59dE68a8130De878984f5", + "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", + "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB", + 12, + 1616508000 ] }, - "app:lido": { - "implementation": { - "contract": "contracts/0.4.24/Lido.sol", - "address": "0x26c41Ef17780cAdde73A2d00902e5e18856201b4", - "constructorArgs": [] - }, - "aragonApp": { - "name": "lido", - "fullName": "lido.lidopm-testnet-prater.eth", - "id": "0x79ac01111b462384f1b7fba84a17b9ec1f5d2fddcfcb99487d71b443832556ea", - "ipfsCid": "QmbmPW5r9HMdyUARNJjjE7MNqBUGrXashwoWvqRZhc1t5b", - "contentURI": "0x697066733a516d626d5057357239484d64795541524e4a6a6a45374d4e714255477258617368776f577671525a686331743562" - }, - "proxy": { - "address": "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" - } - }, - "app:oracle": { - "proxy": { - "address": "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB" - }, - "implementation": { - "address": "0xcF9d64942DC9096520a8962a2d4496e680c6403b", - "contract": "contracts/0.4.24/oracle/LegacyOracle.sol" - }, - "aragonApp": { - "ipfsCid": "QmfACH9oSHFWgV81Dh8RSVcgaVBdhkZuHhZY2iZv5syBJK", - "contentURI": "0x697066733a516d66414348396f5348465767563831446838525356636761564264686b5a7548685a5932695a76357379424a4b", - "name": "oracle", - "fullName": "oracle.lidopm-testnet-prater.eth", - "id": "0xb2977cfc13b000b6807b9ae3cf4d938f4cc8ba98e1d68ad911c58924d6aa4f11", - } - }, - "app:node-operators-registry": { - "proxy": { - "address": "0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320" - }, - "implementation": { - "address": "0x4672275F75e8756a53cD87F08F67f51309675D57", - "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", - "constructorArgs": [] - }, - "aragonApp": { - "ipfsCid": "QmQExJkoyg7xWXJjLaYC75UAmsGY1STY41YTG3wEK7q8dd", - "contentURI": "0x697066733a516d5145784a6b6f7967377857584a6a4c615943373555416d7347593153545934315954473377454b3771386464", - "name": "node-operators-registry", - "fullName": "node-operators-registry.lidopm-testnet-prater.eth", - "id": "0x57384c8fcaf2c1c2144974769a6ea4e5cf69090d47f5327f8fc93827f8c0001a" - } - }, - "lidoApmEnsName": "lidopm-testnet-prater.eth", - "lidoApmDeployTx": "0x5177a441fbf121e4064979f53756cc2ee807c68684edae33f50868a40ebae013", - "lidoApmAddress": "0x64361389f8Bb7A1ff64e0Ad97FfAa432399D45E7", - "chainSpec": { - "depositContractAddress": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", - "slotsPerEpoch": 32, - "secondsPerSlot": 12, - "genesisTime": 1616508000 - }, - "daoInitialSettings": { - "token": { - "name": "Test Lido DAO Token", - "symbol": "TESTLDO" - }, - "voting": { - "minSupportRequired": "500000000000000000", - "minAcceptanceQuorum": "50000000000000000", - "voteDuration": 14400 - }, - "fee": { - "totalPercent": 10, - "treasuryPercent": 0, - "insurancePercent": 50, - "nodeOperatorsPercent": 50 - } - }, - "createAppReposTx": "0x76225ccd0d6f03c1e6707125fae7a04096f24a37e3e5c59a3847323dca343f62", - "newDaoTx": "0xcc5a0e1b690bac8edb5638f79fcf765f703e218147fbb1d767e502560d4a7c89", - "daoAddress": "0x1dD91b354Ebd706aB3Ac7c727455C7BAA164945A", - "daoTokenAddress": "0x56340274fB5a72af1A3C6609061c451De7961Bd4", + "apmRegistryFactoryAddress": "0x70B3284fD016a570146cE48fC54D7A81bCd94BBa", "app:aragon-agent": { "implementation": { "contract": "@aragon/apps-agent/contracts/Agent.sol", @@ -166,49 +80,84 @@ "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" } }, - "vestingParams": { - "unvestedTokensAmount": "230000000000000000000000", - "holders": { - "0xa5F1d7D49F581136Cf6e58B32cBE9a2039C48bA1": "530000000000000000000000", - "0x00444797Ba158A7BdB8302e72da98dCbCCef0Fbc": "15000000000000000000000", - "0x9F188809b2ba2e29653693C4069c212a95C1B8c4": "15000000000000000000000", - "0xeC2d2E81721A477798e938924266f92c4E5Fc54e": "15000000000000000000000", - "0x401FD888B5E41113B7c0C47725A742bbc3A083EF": "15000000000000000000000", - "0x36c648351274bb4455ba6aAabF3F976824a93aF4": "15000000000000000000000", - "0xB6d0A3120c0e13749c211F48fccD9458Dfc99BD0": "15000000000000000000000", - "0x75936b355942D89d9B59798dacD70d70Ded93B78": "15000000000000000000000", - "0x39ceC2b3ba293CC15f15a3876dB8D356a1670789": "15000000000000000000000", - "0xC37F899BB002D93fdcbD9D91d42889AC0e29B704": "15000000000000000000000", - "0xc69f1606e0615F788Cb99982848528f39f188486": "15000000000000000000000", - "0xd355521db7f30F74059dFa7aE0A5C6543dFA8215": "15000000000000000000000", - "0xAA566f0eB53F26db5E15aC5B42685361B4e0d9F4": "15000000000000000000000", - "0xCd3975FC68Aa71eDebfef7442cF8e91ce407DEEE": "15000000000000000000000", - "0xfd0dd5c3b72528e8f581a8544309706d1c2d9206": "15000000000000000000000", - "0x161EE6a03D52ee176a514C88Cf07dcAcF248155f": "15000000000000000000000", - "0x11D7D72876cfC3d7CFC3d1a2C9c35EA4591694a7": "15000000000000000000000" + "app:lido": { + "implementation": { + "contract": "contracts/0.4.24/Lido.sol", + "address": "0x26c41Ef17780cAdde73A2d00902e5e18856201b4", + "constructorArgs": [] }, - "start": 1617139000, - "cliff": 1617139500, - "end": 1617139900, - "revokable": false + "aragonApp": { + "name": "lido", + "fullName": "lido.lidopm-testnet-prater.eth", + "id": "0x79ac01111b462384f1b7fba84a17b9ec1f5d2fddcfcb99487d71b443832556ea", + "ipfsCid": "QmbmPW5r9HMdyUARNJjjE7MNqBUGrXashwoWvqRZhc1t5b", + "contentURI": "0x697066733a516d626d5057357239484d64795541524e4a6a6a45374d4e714255477258617368776f577671525a686331743562" + }, + "proxy": { + "address": "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + } }, - "wstETH": { - "address": "0x6320cD32aA674d2898A68ec82e869385Fc5f7E2f", - "constructorArgs": [ - "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F" - ], - "contract": "WstETH" + "app:node-operators-registry": { + "proxy": { + "address": "0x9D4AF1Ee19Dad8857db3a45B0374c81c8A1C6320" + }, + "implementation": { + "address": "0x4672275F75e8756a53cD87F08F67f51309675D57", + "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", + "constructorArgs": [] + }, + "aragonApp": { + "ipfsCid": "QmQExJkoyg7xWXJjLaYC75UAmsGY1STY41YTG3wEK7q8dd", + "contentURI": "0x697066733a516d5145784a6b6f7967377857584a6a4c615943373555416d7347593153545934315954473377454b3771386464", + "name": "node-operators-registry", + "fullName": "node-operators-registry.lidopm-testnet-prater.eth", + "id": "0x57384c8fcaf2c1c2144974769a6ea4e5cf69090d47f5327f8fc93827f8c0001a" + } }, - "executionLayerRewardsVault": { - "address": "0x94750381bE1AbA0504C666ee1DB118F68f0780D4", - "deployTx": "0x3bce97664f6003ddf4e3cf7178527dbff6098b1a6fc9ba7c337cb6aca4ea91fb", - "contract": "LidoExecutionLayerRewardsVault" + "app:oracle": { + "proxy": { + "address": "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB" + }, + "implementation": { + "address": "0xcF9d64942DC9096520a8962a2d4496e680c6403b", + "contract": "contracts/0.4.24/oracle/LegacyOracle.sol" + }, + "aragonApp": { + "ipfsCid": "QmfACH9oSHFWgV81Dh8RSVcgaVBdhkZuHhZY2iZv5syBJK", + "contentURI": "0x697066733a516d66414348396f5348465767563831446838525356636761564264686b5a7548685a5932695a76357379424a4b", + "name": "oracle", + "fullName": "oracle.lidopm-testnet-prater.eth", + "id": "0xb2977cfc13b000b6807b9ae3cf4d938f4cc8ba98e1d68ad911c58924d6aa4f11" + } }, - "dummyEmptyContract": { - "address": "0x6A03b1BbB79460169a205eFBCBc77ebE1011bCf8", - "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", - "constructorArgs": [] + "app:simple-dvt": { + "stakingRouterModuleParams": { + "moduleName": "SimpleDVT", + "moduleType": "curated-onchain-v1", + "targetShare": 50, + "moduleFee": 800, + "treasuryFee": 200, + "penaltyDelay": 86400, + "easyTrackAddress": "0xAf072C8D368E4DD4A9d4fF6A76693887d6ae92Af", + "easyTrackFactories": {} + }, + "aragonApp": { + "name": "simple-dvt", + "fullName": "simple-dvt.lidopm-testnet-prater.eth", + "id": "0x532a9a50bd35712df1229f81b7f2617f4d9f4f2f83b64aa83a3f4047010e246a" + }, + "proxy": { + "address": "0x3f03E034D4fa3ab722A43b6064645Fe508e7140B", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "constructorArgs": [ + "0x1dD91b354Ebd706aB3Ac7c727455C7BAA164945A", + "0x532a9a50bd35712df1229f81b7f2617f4d9f4f2f83b64aa83a3f4047010e246a", + "0x" + ] + } }, + "aragonIDAddress": "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", "burner": { "deployParameters": { "totalCoverSharesBurnt": "0", @@ -224,6 +173,71 @@ ], "contract": "Burner" }, + "chainSpec": { + "depositContractAddress": "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", + "slotsPerEpoch": 32, + "secondsPerSlot": 12, + "genesisTime": 1616508000 + }, + "createAppReposTx": "0x76225ccd0d6f03c1e6707125fae7a04096f24a37e3e5c59a3847323dca343f62", + "daoAddress": "0x1dD91b354Ebd706aB3Ac7c727455C7BAA164945A", + "daoAragonId": "lido-testnet-prater", + "daoFactoryAddress": "0x0B6769F500b293e3adacD97c3961189565069902", + "daoInitialSettings": { + "token": { + "name": "Test Lido DAO Token", + "symbol": "TESTLDO" + }, + "voting": { + "minSupportRequired": "500000000000000000", + "minAcceptanceQuorum": "50000000000000000", + "voteDuration": 14400 + }, + "fee": { + "totalPercent": 10, + "treasuryPercent": 0, + "insurancePercent": 50, + "nodeOperatorsPercent": 50 + } + }, + "daoTokenAddress": "0x56340274fB5a72af1A3C6609061c451De7961Bd4", + "deployCommit": "990dda79d8b19358b6b7ab4a38d0be4af6e732ea", + "deployer": "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", + "depositSecurityModule": { + "deployParameters": { + "maxDepositsPerBlock": 0, + "minDepositBlockDistance": 1200, + "pauseIntentValidityPeriodBlocks": 10 + }, + "contract": "DepositSecurityModule", + "address": "0xe57025E250275cA56f92d76660DEcfc490C7E79A", + "constructorArgs": [ + "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", + "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", + "0xa3Dbd317E53D363176359E10948BA0b1c0A4c820", + "0", + "4b0", + "a" + ] + }, + "dummyEmptyContract": { + "address": "0x6A03b1BbB79460169a205eFBCBc77ebE1011bCf8", + "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", + "constructorArgs": [] + }, + "eip712StETH": { + "contract": "EIP712StETH", + "address": "0xB4300103FfD326f77FfB3CA54248099Fb29C3b9e", + "constructorArgs": [ + "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F" + ] + }, + "ensAddress": "0x043e6DBC5CAd60874727d21ecC2aAeBf50A0de80", + "executionLayerRewardsVault": { + "address": "0x94750381bE1AbA0504C666ee1DB118F68f0780D4", + "deployTx": "0x3bce97664f6003ddf4e3cf7178527dbff6098b1a6fc9ba7c337cb6aca4ea91fb", + "contract": "LidoExecutionLayerRewardsVault" + }, "hashConsensusForAccountingOracle": { "deployParameters": { "fastLaneLengthSlots": 10, @@ -241,21 +255,6 @@ "0x76f358A842defa0E179a8970767CFf668Fc134d6" ] }, - "accountingOracle": { - "deployParameters": { - "consensusVersion": 1 - }, - "contract": "AccountingOracle", - "implementation": "0xC94ad2eb129146235f71cc35f7FbFec7fe404DF9", - "address": "0x76f358A842defa0E179a8970767CFf668Fc134d6", - "constructorArgs": [ - "0x1eDf09b5023DC86737b59dE68a8130De878984f5", - "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", - "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB", - 12, - 1616508000 - ] - }, "hashConsensusForValidatorsExitBusOracle": { "deployParameters": { "fastLaneLengthSlots": 10, @@ -273,34 +272,64 @@ "0xb75A55EFab5A8f5224Ae93B34B25741EDd3da98b" ] }, - "validatorsExitBusOracle": { - "deployParameters": { - "consensusVersion": 1 - }, - "contract": "ValidatorsExitBusOracle", - "implementation": "0xe9754585e100085d20d39298aCA713d43f2ec5aF", - "address": "0xb75A55EFab5A8f5224Ae93B34B25741EDd3da98b", + "lidoApmAddress": "0x64361389f8Bb7A1ff64e0Ad97FfAa432399D45E7", + "lidoApmDeployTx": "0x5177a441fbf121e4064979f53756cc2ee807c68684edae33f50868a40ebae013", + "lidoApmEnsName": "lidopm-testnet-prater.eth", + "lidoLocator": { + "contract": "LidoLocator", + "implementation": "0xBA413498500a21bC07E74605CC45932c2d45aCb8", + "address": "0x1eDf09b5023DC86737b59dE68a8130De878984f5", "constructorArgs": [ - 12, - 1616508000, - "0x1eDf09b5023DC86737b59dE68a8130De878984f5" + [ + "0x76f358A842defa0E179a8970767CFf668Fc134d6", + "0xe57025E250275cA56f92d76660DEcfc490C7E79A", + "0x94750381bE1AbA0504C666ee1DB118F68f0780D4", + "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB", + "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", + "0xbf74600040F91D3560d5757280727FB00c64Fd2E", + "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB", + "0xC1Bc16782BE0ce7A81421874A4d3E9B2B32391f2", + "0xa3Dbd317E53D363176359E10948BA0b1c0A4c820", + "0x4333218072D5d7008546737786663c38B4D561A4", + "0xb75A55EFab5A8f5224Ae93B34B25741EDd3da98b", + "0xCF117961421cA9e546cD7f50bC73abCdB3039533", + "0xdc62f9e8C34be08501Cdef4EBDE0a280f576D762", + "0xE9CC5bD91543cdc9788454EE5063E2CD76B5206d" + ] ] }, - "depositSecurityModule": { + "lidoTemplate": { + "address": "0x9A4a36B5fe517f98BD6529d4317B0b723F600AaD", + "deployTx": "0xda8746bca23c7a4f7c58e1a3370cb1ffa1e250ace90fd4684dbb1842ee6ac921", + "constructorArgs": [ + "0x8303B3A462F4Cb4d2468DDcBD4c9f212914A3a7F", + "0x0B6769F500b293e3adacD97c3961189565069902", + "0x043e6DBC5CAd60874727d21ecC2aAeBf50A0de80", + "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", + "0x673cB86B60B9768Eebb05517fbF5a7F9f1Ab62C4", + "0x70B3284fD016a570146cE48fC54D7A81bCd94BBa" + ] + }, + "miniMeTokenFactoryAddress": "0x92E2750729e04c9a5CF21A830Bd00cbd5139D992", + "networkId": 5, + "newDaoTx": "0xcc5a0e1b690bac8edb5638f79fcf765f703e218147fbb1d767e502560d4a7c89", + "oracleDaemonConfig": { "deployParameters": { - "maxDepositsPerBlock": 0, - "minDepositBlockDistance": 1200, - "pauseIntentValidityPeriodBlocks": 10 + "NORMALIZED_CL_REWARD_PER_EPOCH": 64, + "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, + "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 4, + "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 10, + "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, + "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 21600, + "PREDICTION_DURATION_IN_SLOTS": 50400, + "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350, + "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100 }, - "contract": "DepositSecurityModule", - "address": "0xe57025E250275cA56f92d76660DEcfc490C7E79A", + "contract": "OracleDaemonConfig", + "address": "0xE9CC5bD91543cdc9788454EE5063E2CD76B5206d", "constructorArgs": [ - "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", - "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b", - "0xa3Dbd317E53D363176359E10948BA0b1c0A4c820", - "0", - "4b0", - "a" + "0xa5F1d7D49F581136Cf6e58B32cBE9a2039C48bA1", + [] ] }, "oracleReportSanityChecker": { @@ -346,6 +375,53 @@ ] ] }, + "stakingRouter": { + "contract": "StakingRouter", + "implementation": "0x200c147cd3F344Ad09bAeCadA0a945106df337B4", + "address": "0xa3Dbd317E53D363176359E10948BA0b1c0A4c820", + "constructorArgs": [ + "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b" + ] + }, + "validatorsExitBusOracle": { + "deployParameters": { + "consensusVersion": 1 + }, + "contract": "ValidatorsExitBusOracle", + "implementation": "0xe9754585e100085d20d39298aCA713d43f2ec5aF", + "address": "0xb75A55EFab5A8f5224Ae93B34B25741EDd3da98b", + "constructorArgs": [ + 12, + 1616508000, + "0x1eDf09b5023DC86737b59dE68a8130De878984f5" + ] + }, + "vestingParams": { + "unvestedTokensAmount": "230000000000000000000000", + "holders": { + "0xa5F1d7D49F581136Cf6e58B32cBE9a2039C48bA1": "530000000000000000000000", + "0x00444797Ba158A7BdB8302e72da98dCbCCef0Fbc": "15000000000000000000000", + "0x9F188809b2ba2e29653693C4069c212a95C1B8c4": "15000000000000000000000", + "0xeC2d2E81721A477798e938924266f92c4E5Fc54e": "15000000000000000000000", + "0x401FD888B5E41113B7c0C47725A742bbc3A083EF": "15000000000000000000000", + "0x36c648351274bb4455ba6aAabF3F976824a93aF4": "15000000000000000000000", + "0xB6d0A3120c0e13749c211F48fccD9458Dfc99BD0": "15000000000000000000000", + "0x75936b355942D89d9B59798dacD70d70Ded93B78": "15000000000000000000000", + "0x39ceC2b3ba293CC15f15a3876dB8D356a1670789": "15000000000000000000000", + "0xC37F899BB002D93fdcbD9D91d42889AC0e29B704": "15000000000000000000000", + "0xc69f1606e0615F788Cb99982848528f39f188486": "15000000000000000000000", + "0xd355521db7f30F74059dFa7aE0A5C6543dFA8215": "15000000000000000000000", + "0xAA566f0eB53F26db5E15aC5B42685361B4e0d9F4": "15000000000000000000000", + "0xCd3975FC68Aa71eDebfef7442cF8e91ce407DEEE": "15000000000000000000000", + "0xfd0dd5c3b72528e8f581a8544309706d1c2d9206": "15000000000000000000000", + "0x161EE6a03D52ee176a514C88Cf07dcAcF248155f": "15000000000000000000000", + "0x11D7D72876cfC3d7CFC3d1a2C9c35EA4591694a7": "15000000000000000000000" + }, + "start": 1617139000, + "cliff": 1617139500, + "end": 1617139900, + "revokable": false + }, "withdrawalQueueERC721": { "implementationDeployCommit": "85a41c45d5d45b1a35118ad6023e6c7ead1072d2", "deployParameters": { @@ -361,55 +437,6 @@ "unstETH" ] }, - "oracleDaemonConfig": { - "deployParameters": { - "NORMALIZED_CL_REWARD_PER_EPOCH": 64, - "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, - "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 4, - "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 10, - "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, - "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 21600, - "PREDICTION_DURATION_IN_SLOTS": 50400, - "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350, - "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100 - }, - "contract": "OracleDaemonConfig", - "address": "0xE9CC5bD91543cdc9788454EE5063E2CD76B5206d", - "constructorArgs": [ - "0xa5F1d7D49F581136Cf6e58B32cBE9a2039C48bA1", - [] - ] - }, - "lidoLocator": { - "contract": "LidoLocator", - "implementation": "0xBA413498500a21bC07E74605CC45932c2d45aCb8", - "address": "0x1eDf09b5023DC86737b59dE68a8130De878984f5", - "constructorArgs": [ - [ - "0x76f358A842defa0E179a8970767CFf668Fc134d6", - "0xe57025E250275cA56f92d76660DEcfc490C7E79A", - "0x94750381bE1AbA0504C666ee1DB118F68f0780D4", - "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB", - "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F", - "0xbf74600040F91D3560d5757280727FB00c64Fd2E", - "0x24d8451BC07e7aF4Ba94F69aCDD9ad3c6579D9FB", - "0xC1Bc16782BE0ce7A81421874A4d3E9B2B32391f2", - "0xa3Dbd317E53D363176359E10948BA0b1c0A4c820", - "0x4333218072D5d7008546737786663c38B4D561A4", - "0xb75A55EFab5A8f5224Ae93B34B25741EDd3da98b", - "0xCF117961421cA9e546cD7f50bC73abCdB3039533", - "0xdc62f9e8C34be08501Cdef4EBDE0a280f576D762", - "0xE9CC5bD91543cdc9788454EE5063E2CD76B5206d" - ] - ] - }, - "eip712StETH": { - "contract": "EIP712StETH", - "address": "0xB4300103FfD326f77FfB3CA54248099Fb29C3b9e", - "constructorArgs": [ - "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F" - ] - }, "withdrawalVault": { "address": "0xdc62f9e8C34be08501Cdef4EBDE0a280f576D762", "contract": "WithdrawalVault", @@ -419,38 +446,11 @@ "0x4333218072D5d7008546737786663c38B4D561A4" ] }, - "stakingRouter": { - "contract": "StakingRouter", - "implementation": "0x200c147cd3F344Ad09bAeCadA0a945106df337B4", - "address": "0xa3Dbd317E53D363176359E10948BA0b1c0A4c820", + "wstETH": { + "address": "0x6320cD32aA674d2898A68ec82e869385Fc5f7E2f", "constructorArgs": [ - "0xff50ed3d0ec03aC01D4C79aAd74928BFF48a7b2b" - ] - }, - "app:simple-dvt": { - "stakingRouterModuleParams": { - "moduleName": "SimpleDVT", - "moduleType": "curated-onchain-v1", - "targetShare": 1000, - "moduleFee": 500, - "treasuryFee": 500, - "penaltyDelay": 86400, - "easyTrackAddress": "0xAf072C8D368E4DD4A9d4fF6A76693887d6ae92Af", - "easyTrackFactories": {} - }, - "aragonApp": { - "name": "simple-dvt", - "fullName": "simple-dvt.lidopm-testnet-prater.eth", - "id": "0x532a9a50bd35712df1229f81b7f2617f4d9f4f2f83b64aa83a3f4047010e246a" - }, - "proxy": { - "address": "0x3f03E034D4fa3ab722A43b6064645Fe508e7140B", - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [ - "0x1dD91b354Ebd706aB3Ac7c727455C7BAA164945A", - "0x532a9a50bd35712df1229f81b7f2617f4d9f4f2f83b64aa83a3f4047010e246a", - "0x" - ] - } + "0x1643E812aE58766192Cf7D2Cf9567dF2C37e9B7F" + ], + "contract": "WstETH" } } diff --git a/deployed-holesky.json b/deployed-holesky.json index 66812acaa..47a21110e 100644 --- a/deployed-holesky.json +++ b/deployed-holesky.json @@ -1,88 +1,4 @@ { - "deployCommit": "eda16728a7c80f1bb55c3b91c668aae190a1efb0", - "deployer": "0x22896Bfc68814BFD855b1a167255eE497006e730", - "gateSeal": { - "factoryAddress": "0x1134F7077055b0B3559BE52AfeF9aA22A0E1eEC2", - "sealDuration": 518400, - "expiryTimestamp": 1714521600, - "sealingCommittee": "0xCD1f9954330AF39a74Fd6e7B25781B4c24ee373f", - "address": "0x7f6FA688d4C12a2d51936680b241f3B0F0F9ca60" - }, - "lidoApmEnsName": "lidopm.eth", - "lidoApmEnsRegDurationSec": 94608000, - "daoAragonId": "lido-dao", - "chainSpec": { - "slotsPerEpoch": 32, - "secondsPerSlot": 12, - "genesisTime": 1695902400, - "depositContract": "0x4242424242424242424242424242424242424242" - }, - "daoInitialSettings": { - "voting": { - "minSupportRequired": "500000000000000000", - "minAcceptanceQuorum": "50000000000000000", - "voteDuration": 900, - "objectionPhaseDuration": 300 - }, - "fee": { - "totalPercent": 10, - "treasuryPercent": 50, - "nodeOperatorsPercent": 50 - }, - "token": { - "name": "TEST Lido DAO Token", - "symbol": "TLDO" - } - }, - "vestingParams": { - "unvestedTokensAmount": "0", - "holders": { - "0xCD1f9954330AF39a74Fd6e7B25781B4c24ee373f": "880000000000000000000000", - "0xaa6bfBCD634EE744CB8FE522b29ADD23124593D3": "60000000000000000000000", - "0xBA59A84C6440E8cccfdb5448877E26F1A431Fc8B": "60000000000000000000000" - }, - "start": 0, - "cliff": 0, - "end": 0, - "revokable": false - }, - "burner": { - "deployParameters": { - "totalCoverSharesBurnt": "0", - "totalNonCoverSharesBurnt": "0" - }, - "contract": "contracts/0.8.9/Burner.sol", - "address": "0x4E46BD7147ccf666E1d73A3A456fC7a68de82eCA", - "constructorArgs": [ - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d", - "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", - "0", - "0" - ] - }, - "legacyOracle": { - "deployParameters": { - "lastCompletedEpochId": 0 - } - }, - "hashConsensusForAccountingOracle": { - "deployParameters": { - "fastLaneLengthSlots": 10, - "epochsPerFrame": 12 - }, - "contract": "contracts/0.8.9/oracle/HashConsensus.sol", - "address": "0xa067FC95c22D51c3bC35fd4BE37414Ee8cc890d2", - "constructorArgs": [ - 32, - 12, - 1695902400, - 12, - 10, - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0x4E97A3972ce8511D87F334dA17a2C332542a5246" - ] - }, "accountingOracle": { "deployParameters": { "consensusVersion": 1 @@ -108,392 +24,265 @@ ] } }, - "hashConsensusForValidatorsExitBusOracle": { - "deployParameters": { - "fastLaneLengthSlots": 10, - "epochsPerFrame": 4 - }, - "contract": "contracts/0.8.9/oracle/HashConsensus.sol", - "address": "0xe77Cf1A027d7C10Ee6bb7Ede5E922a181FF40E8f", - "constructorArgs": [ - 32, - 12, - 1695902400, - 4, - 10, - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0xffDDF7025410412deaa05E3E1cE68FE53208afcb" - ] - }, - "validatorsExitBusOracle": { - "deployParameters": { - "consensusVersion": 1 - }, - "proxy": { - "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", - "address": "0xffDDF7025410412deaa05E3E1cE68FE53208afcb", - "constructorArgs": [ - "0x210f60EC8A4D020b3e22f15fee2d2364e9b22357", - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0x" - ] - }, + "apmRepoBaseAddress": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", + "app:aragon-agent": { "implementation": { - "contract": "contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol", - "address": "0x210f60EC8A4D020b3e22f15fee2d2364e9b22357", - "constructorArgs": [ - 12, - 1695902400, - "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" - ] - } - }, - "depositSecurityModule": { - "deployParameters": { - "maxDepositsPerBlock": 150, - "minDepositBlockDistance": 5, - "pauseIntentValidityPeriodBlocks": 6646 - }, - "contract": "contracts/0.8.9/DepositSecurityModule.sol", - "address": "0x045dd46212A178428c088573A7d102B9d89a022A", - "constructorArgs": [ - "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", - "0x4242424242424242424242424242424242424242", - "0xd6EbF043D30A7fe46D1Db32BA90a0A51207FE229", - 150, - 5, - 6646 - ] - }, - "oracleReportSanityChecker": { - "deployParameters": { - "churnValidatorsPerDayLimit": 1500, - "oneOffCLBalanceDecreaseBPLimit": 500, - "annualBalanceIncreaseBPLimit": 1000, - "simulatedShareRateDeviationBPLimit": 250, - "maxValidatorExitRequestsPerReport": 2000, - "maxAccountingExtraDataListItemsCount": 100, - "maxNodeOperatorsPerExtraDataItemCount": 100, - "requestTimestampMargin": 128, - "maxPositiveTokenRebase": 5000000 + "contract": "@aragon/apps-agent/contracts/Agent.sol", + "address": "0xF4aDA7Ff34c508B9Af2dE4160B6078D2b58FD46B", + "constructorArgs": [] }, - "contract": "contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol", - "address": "0xF0d576c7d934bBeCc68FE15F1c5DAF98ea2B78bb", - "constructorArgs": [ - "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8", - "0x22896Bfc68814BFD855b1a167255eE497006e730", - [ - 1500, - 500, - 1000, - 250, - 2000, - 100, - 100, - 128, - 5000000 - ], - [ - [], - [], - [], - [], - [], - [], - [], - [], - [], - [] - ] - ] - }, - "nodeOperatorsRegistry": { - "deployParameters": { - "stakingModuleTypeId": "curated-onchain-v1", - "stuckPenaltyDelay": 172800 - } - }, - "withdrawalQueueERC721": { - "deployParameters": { - "name": "stETH Withdrawal NFT", - "symbol": "unstETH" + "aragonApp": { + "name": "aragon-agent", + "fullName": "aragon-agent.lidopm.eth", + "id": "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9" }, "proxy": { - "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", - "address": "0xc7cc160b58F8Bb0baC94b80847E2CF2800565C50", - "constructorArgs": [ - "0xFF72B5cdc701E9eE677966B2702c766c38F412a4", - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0x" - ] - }, - "implementation": { - "contract": "contracts/0.8.9/WithdrawalQueueERC721.sol", - "address": "0xFF72B5cdc701E9eE677966B2702c766c38F412a4", + "address": "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [ - "0x8d09a4502Cc8Cf1547aD300E066060D043f6982D", - "stETH Withdrawal NFT", - "unstETH" + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9", + "0x8129fc1c" ] } }, - "networkId": 17000, - "chainId": 17000, - "aragonEnsLabelName": "aragonpm", - "ensAddress": "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", - "ensFactoryAddress": "0xADba3e3122F2Da8F7B07723a3e1F1cEDe3fe8d7d", - "ensFactoryConstructorArgs": [], - "aragon-kernel": { + "app:aragon-finance": { "implementation": { - "contract": "@aragon/os/contracts/kernel/Kernel.sol", - "address": "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F", - "constructorArgs": [ - true - ] + "contract": "@aragon/apps-finance/contracts/Finance.sol", + "address": "0x1a76ED38B14C768e02b96A879d89Db18AC83EC53", + "constructorArgs": [] + }, + "aragonApp": { + "name": "aragon-finance", + "fullName": "aragon-finance.lidopm.eth", + "id": "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1" }, "proxy": { - "address": "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "contract": "@aragon/os/contracts/kernel/KernelProxy.sol", + "address": "0xf0F281E5d7FBc54EAFcE0dA225CDbde04173AB16", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [ - "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F" + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1", + "0x1798de81000000000000000000000000e92329ec7ddb11d25e25b3c21eebf11f15eb325d0000000000000000000000000000000000000000000000000000000000278d00" ] } }, - "aragon-acl": { + "app:aragon-token-manager": { "implementation": { - "contract": "@aragon/os/contracts/acl/ACL.sol", - "address": "0xF1A087E055EA1C11ec3B540795Bd1A544e6dcbe9", + "contract": "@aragon/apps-lido/apps/token-manager/contracts/TokenManager.sol", + "address": "0x6f0b994E6827faC1fDb58AF66f365676247bAD71", "constructorArgs": [] }, - "proxy": { - "address": "0xfd1E42595CeC3E83239bf8dFc535250e7F48E0bC", - "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a", - "0x00" - ], - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" - }, "aragonApp": { - "name": "aragon-acl", - "id": "0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a" - } - }, - "kernelBaseAddress": "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F", - "aclBaseAddress": "0xF1A087E055EA1C11ec3B540795Bd1A544e6dcbe9", - "evmScriptRegistryFactoryAddress": "0x11E7591F83360d0Bc238c8AB9e50B6D2B7566aDc", - "evmScriptRegistryFactoryConstructorArgs": [], - "daoFactoryAddress": "0xB33f9AE6C34D8cC59A48fd9973C64488f00fa64F", - "daoFactoryConstructorArgs": [ - "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F", - "0xF1A087E055EA1C11ec3B540795Bd1A544e6dcbe9", - "0x11E7591F83360d0Bc238c8AB9e50B6D2B7566aDc" - ], - "aragon-apm-registry": { - "implementation": { - "contract": "@aragon/os/contracts/apm/APMRegistry.sol", - "address": "0x3EcF7190312F50043DB0494bA0389135Fc3833F3", - "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x9089af016eb74d66811e1c39c1eef86fdcdb84b5665a4884ebf62339c2613991", - "0x00" - ] + "name": "aragon-token-manager", + "fullName": "aragon-token-manager.lidopm.eth", + "id": "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b" }, "proxy": { - "address": "0xB576A85c310CC7Af5C106ab26d2942fA3a5ea94A", - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" - }, - "factory": { - "address": "0x54eF0022cc769344D0cBCeF12e051281cCBb9fad", - "contract": "@aragon/os/contracts/factory/APMRegistryFactory.sol", + "address": "0xFaa1692c6eea8eeF534e7819749aD93a1420379A", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [ - "0xB33f9AE6C34D8cC59A48fd9973C64488f00fa64F", - "0x3EcF7190312F50043DB0494bA0389135Fc3833F3", - "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", - "0x7B133ACab5Cec7B90FB13CCf68d6568f8A051EcE", - "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", - "0x0000000000000000000000000000000000000000" + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b", + "0x" ] } }, - "apmRepoBaseAddress": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", - "ensSubdomainRegistrarBaseAddress": "0x7B133ACab5Cec7B90FB13CCf68d6568f8A051EcE", - "aragonEnsNodeName": "aragonpm.eth", - "aragonEnsNode": "0x9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba", - "miniMeTokenFactoryAddress": "0x15ef666c9620C0f606Ba35De2aF668fe987E26ae", - "miniMeTokenFactoryConstructorArgs": [], - "aragonIDAddress": "0xCA01225e211AB0c6EFCD3aCc64D85465e4D8ab53", - "aragonIDConstructorArgs": [ - "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", - "0x2B725cBA5F75c3B61bb5E37454a7090fb11c757E", - "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86" - ], - "aragonIDEnsNodeName": "aragonid.eth", - "aragonIDEnsNode": "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86", - "app:aragon-agent": { + "app:aragon-voting": { "implementation": { - "contract": "@aragon/apps-agent/contracts/Agent.sol", - "address": "0xF4aDA7Ff34c508B9Af2dE4160B6078D2b58FD46B", + "contract": "@aragon/apps-lido/apps/voting/contracts/Voting.sol", + "address": "0x994c92228803e8b2D0fb8a610AbCB47412EeF8eF", "constructorArgs": [] }, "aragonApp": { - "name": "aragon-agent", - "fullName": "aragon-agent.lidopm.eth", - "id": "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9" + "name": "aragon-voting", + "fullName": "aragon-voting.lidopm.eth", + "id": "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e" }, "proxy": { - "address": "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d", + "address": "0xdA7d2573Df555002503F29aA4003e398d28cc00f", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [ "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x701a4fd1f5174d12a0f1d9ad2c88d0ad11ab6aad0ac72b7d9ce621815f8016a9", - "0x8129fc1c" + "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e", + "0x13e0945300000000000000000000000014ae7daeecdf57034f3e9db8564e46dba8d9734400000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000000000000000384000000000000000000000000000000000000000000000000000000000000012c" ] } }, - "aragon-app-repo-agent": { + "app:lido": { "implementation": { - "contract": "@aragon/os/contracts/apm/Repo.sol", - "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", + "contract": "contracts/0.4.24/Lido.sol", + "address": "0x59034815464d18134A55EED3702b535D8A32c52b", "constructorArgs": [] }, + "aragonApp": { + "name": "lido", + "fullName": "lido.lidopm.eth", + "id": "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320" + }, "proxy": { - "address": "0xe7b4567913AaF2bD54A26E742cec22727D8109eA", + "address": "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [] + "constructorArgs": [ + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320", + "0x" + ] } }, - "app:aragon-finance": { + "app:node-operators-registry": { "implementation": { - "contract": "@aragon/apps-finance/contracts/Finance.sol", - "address": "0x1a76ED38B14C768e02b96A879d89Db18AC83EC53", + "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", + "address": "0xE0270CF2564d81E02284e16539F59C1B5a4718fE", "constructorArgs": [] }, "aragonApp": { - "name": "aragon-finance", - "fullName": "aragon-finance.lidopm.eth", - "id": "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1" + "name": "node-operators-registry", + "fullName": "node-operators-registry.lidopm.eth", + "id": "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d" }, "proxy": { - "address": "0xf0F281E5d7FBc54EAFcE0dA225CDbde04173AB16", + "address": "0x595F64Ddc3856a3b5Ff4f4CC1d1fb4B46cFd2bAC", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [ "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x5c9918c99c4081ca9459c178381be71d9da40e49e151687da55099c49a4237f1", - "0x1798de81000000000000000000000000e92329ec7ddb11d25e25b3c21eebf11f15eb325d0000000000000000000000000000000000000000000000000000000000278d00" + "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d", + "0x" ] } }, - "aragon-app-repo-finance": { + "app:oracle": { "implementation": { - "contract": "@aragon/os/contracts/apm/Repo.sol", - "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", + "contract": "contracts/0.4.24/oracle/LegacyOracle.sol", + "address": "0xcE4B3D5bd6259F5dD73253c51b17e5a87bb9Ee64", "constructorArgs": [] }, + "aragonApp": { + "name": "oracle", + "fullName": "oracle.lidopm.eth", + "id": "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93" + }, "proxy": { - "address": "0x0df65b7c78Dc42a872010d031D3601C284D8fE71", + "address": "0x072f72BE3AcFE2c52715829F2CD9061A6C8fF019", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [] + "constructorArgs": [ + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93", + "0x" + ] } }, - "app:aragon-token-manager": { - "implementation": { - "contract": "@aragon/apps-lido/apps/token-manager/contracts/TokenManager.sol", - "address": "0x6f0b994E6827faC1fDb58AF66f365676247bAD71", - "constructorArgs": [] + "app:simple-dvt": { + "stakingRouterModuleParams": { + "moduleName": "SimpleDVT", + "moduleType": "curated-onchain-v1", + "targetShare": 50, + "moduleFee": 800, + "treasuryFee": 200, + "penaltyDelay": 86400, + "easyTrackAddress": "0x1763b9ED3586B08AE796c7787811a2E1bc16163a", + "easyTrackFactories": { + "AddNodeOperators": "0xeF5233A5bbF243149E35B353A73FFa8931FDA02b", + "ActivateNodeOperators": "0x5b4A9048176D5bA182ceec8e673D8aA6927A40D6", + "DeactivateNodeOperators": "0x88d247cdf4ff4A4AAA8B3DD9dd22D1b89219FB3B", + "SetVettedValidatorsLimits": "0x30Cb36DBb0596aD9Cf5159BD2c4B1456c18e47E8", + "SetNodeOperatorNames": "0x4792BaC0a262200fA7d3b68e7622bFc1c2c3a72d", + "SetNodeOperatorRewardAddresses": "0x6Bfc576018C7f3D2a9180974E5c8e6CFa021f617", + "UpdateTargetValidatorLimits": "0xC91a676A69Eb49be9ECa1954fE6fc861AE07A9A2", + "ChangeNodeOperatorManager": "0xb8C4728bc0826bA5864D02FA53148de7A44C2f7E" + } }, "aragonApp": { - "name": "aragon-token-manager", - "fullName": "aragon-token-manager.lidopm.eth", - "id": "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b" + "name": "simple-dvt", + "fullName": "simple-dvt.lidopm.eth", + "id": "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4" }, "proxy": { - "address": "0xFaa1692c6eea8eeF534e7819749aD93a1420379A", + "address": "0x11a93807078f8BB880c1BD0ee4C387537de4b4b6", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [ "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0xcd567bdf93dd0f6acc3bc7f2155f83244d56a65abbfbefb763e015420102c67b", + "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4", "0x" ] - } + }, + "fullName": "simple-dvt.lidopm.eth", + "name": "simple-dvt", + "id": "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4", + "ipfsCid": "QmaSSujHCGcnFuetAPGwVW5BegaMBvn5SCsgi3LSfvraSo", + "contentURI": "0x697066733a516d615353756a484347636e4675657441504777565735426567614d42766e355343736769334c5366767261536f", + "implementation": "0xE0270CF2564d81E02284e16539F59C1B5a4718fE", + "contract": "NodeOperatorsRegistry" }, - "aragon-app-repo-token-manager": { + "aragon-acl": { "implementation": { - "contract": "@aragon/os/contracts/apm/Repo.sol", - "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", + "contract": "@aragon/os/contracts/acl/ACL.sol", + "address": "0xF1A087E055EA1C11ec3B540795Bd1A544e6dcbe9", "constructorArgs": [] }, "proxy": { - "address": "0xD327b4Fb87fa01599DaD491Aa63B333c44C74472", - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [] + "address": "0xfd1E42595CeC3E83239bf8dFc535250e7F48E0bC", + "constructorArgs": [ + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a", + "0x00" + ], + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + }, + "aragonApp": { + "name": "aragon-acl", + "id": "0xe3262375f45a6e2026b7e7b18c2b807434f2508fe1a2a3dfb493c7df8f4aad6a" } }, - "app:aragon-voting": { + "aragon-apm-registry": { "implementation": { - "contract": "@aragon/apps-lido/apps/voting/contracts/Voting.sol", - "address": "0x994c92228803e8b2D0fb8a610AbCB47412EeF8eF", - "constructorArgs": [] - }, - "aragonApp": { - "name": "aragon-voting", - "fullName": "aragon-voting.lidopm.eth", - "id": "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e" + "contract": "@aragon/os/contracts/apm/APMRegistry.sol", + "address": "0x3EcF7190312F50043DB0494bA0389135Fc3833F3", + "constructorArgs": [ + "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "0x9089af016eb74d66811e1c39c1eef86fdcdb84b5665a4884ebf62339c2613991", + "0x00" + ] }, "proxy": { - "address": "0xdA7d2573Df555002503F29aA4003e398d28cc00f", - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "address": "0xB576A85c310CC7Af5C106ab26d2942fA3a5ea94A", + "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" + }, + "factory": { + "address": "0x54eF0022cc769344D0cBCeF12e051281cCBb9fad", + "contract": "@aragon/os/contracts/factory/APMRegistryFactory.sol", "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x0abcd104777321a82b010357f20887d61247493d89d2e987ff57bcecbde00e1e", - "0x13e0945300000000000000000000000014ae7daeecdf57034f3e9db8564e46dba8d9734400000000000000000000000000000000000000000000000006f05b59d3b2000000000000000000000000000000000000000000000000000000b1a2bc2ec500000000000000000000000000000000000000000000000000000000000000000384000000000000000000000000000000000000000000000000000000000000012c" + "0xB33f9AE6C34D8cC59A48fd9973C64488f00fa64F", + "0x3EcF7190312F50043DB0494bA0389135Fc3833F3", + "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", + "0x7B133ACab5Cec7B90FB13CCf68d6568f8A051EcE", + "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", + "0x0000000000000000000000000000000000000000" ] } }, - "aragon-app-repo-voting": { + "aragon-app-repo-agent": { "implementation": { "contract": "@aragon/os/contracts/apm/Repo.sol", "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", "constructorArgs": [] }, "proxy": { - "address": "0x2997EA0D07D79038D83Cb04b3BB9A2Bc512E3fDA", + "address": "0xe7b4567913AaF2bD54A26E742cec22727D8109eA", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [] } }, - "lidoTemplate": { - "contract": "contracts/0.4.24/template/LidoTemplate.sol", - "address": "0x0e065Dd0Bc85Ca53cfDAf8D9ed905e692260De2E", - "constructorArgs": [ - "0x22896Bfc68814BFD855b1a167255eE497006e730", - "0xB33f9AE6C34D8cC59A48fd9973C64488f00fa64F", - "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", - "0x15ef666c9620C0f606Ba35De2aF668fe987E26ae", - "0xCA01225e211AB0c6EFCD3aCc64D85465e4D8ab53", - "0x54eF0022cc769344D0cBCeF12e051281cCBb9fad" - ], - "deployBlock": 30581 - }, - "app:lido": { + "aragon-app-repo-finance": { "implementation": { - "contract": "contracts/0.4.24/Lido.sol", - "address": "0x59034815464d18134A55EED3702b535D8A32c52b", + "contract": "@aragon/os/contracts/apm/Repo.sol", + "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", "constructorArgs": [] }, - "aragonApp": { - "name": "lido", - "fullName": "lido.lidopm.eth", - "id": "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320" - }, "proxy": { - "address": "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", + "address": "0x0df65b7c78Dc42a872010d031D3601C284D8fE71", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320", - "0x" - ] + "constructorArgs": [] } }, "aragon-app-repo-lido": { @@ -508,25 +297,16 @@ "constructorArgs": [] } }, - "app:oracle": { + "aragon-app-repo-node-operators-registry": { "implementation": { - "contract": "contracts/0.4.24/oracle/LegacyOracle.sol", - "address": "0xcE4B3D5bd6259F5dD73253c51b17e5a87bb9Ee64", + "contract": "@aragon/os/contracts/apm/Repo.sol", + "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", "constructorArgs": [] }, - "aragonApp": { - "name": "oracle", - "fullName": "oracle.lidopm.eth", - "id": "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93" - }, "proxy": { - "address": "0x072f72BE3AcFE2c52715829F2CD9061A6C8fF019", + "address": "0x4E8970d148CB38460bE9b6ddaab20aE2A74879AF", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93", - "0x" - ] + "constructorArgs": [] } }, "aragon-app-repo-oracle": { @@ -541,67 +321,30 @@ "constructorArgs": [] } }, - "app:node-operators-registry": { + "aragon-app-repo-token-manager": { "implementation": { - "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", - "address": "0xE0270CF2564d81E02284e16539F59C1B5a4718fE", + "contract": "@aragon/os/contracts/apm/Repo.sol", + "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", "constructorArgs": [] }, - "aragonApp": { - "name": "node-operators-registry", - "fullName": "node-operators-registry.lidopm.eth", - "id": "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d" - }, "proxy": { - "address": "0x595F64Ddc3856a3b5Ff4f4CC1d1fb4B46cFd2bAC", + "address": "0xD327b4Fb87fa01599DaD491Aa63B333c44C74472", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", - "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d", - "0x" - ] + "constructorArgs": [] } }, - "aragon-app-repo-node-operators-registry": { + "aragon-app-repo-voting": { "implementation": { "contract": "@aragon/os/contracts/apm/Repo.sol", "address": "0x8959360c48D601a6817BAf2449E5D00cC543FA3A", "constructorArgs": [] }, "proxy": { - "address": "0x4E8970d148CB38460bE9b6ddaab20aE2A74879AF", + "address": "0x2997EA0D07D79038D83Cb04b3BB9A2Bc512E3fDA", "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", "constructorArgs": [] } }, - "lidoApmDeployArguments": [ - "0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae", - "0x90a9580abeb24937fc658e497221c81ce8553b560304f9525821f32b17dbdaec" - ], - "lidoApmDeployTx": "0x2fac1c172a250736c34d16d3a721d2916abac0de0dea67d79955346a1f4345a2", - "lidoApmAddress": "0x4605Dc9dC4BD0442F850eB8226B94Dd0e27C3Ce7", - "createAppReposTx": "0xd8a9b10e16b5e75b984c90154a9cb51fbb06bf560a3c424e2e7ad81951008502", - "lidoTemplateNewDaoTx": "0x3346246f09f91ffbc260b6c300b11ababce9f5ca54d7880a277860961f343112", - "lidoTemplateCreateStdAppReposTx": "0x3f5b8918667bd3e971606a54a907798720158587df355a54ce07c0d0f9750d3c", - "newDaoTx": "0x3346246f09f91ffbc260b6c300b11ababce9f5ca54d7880a277860961f343112", - "ldo": { - "address": "0x14ae7daeecdf57034f3E9db8564e46Dba8D97344", - "contract": "@aragon/minime/contracts/MiniMeToken.sol", - "constructorArgs": [ - "0x15ef666c9620C0f606Ba35De2aF668fe987E26ae", - "0x0000000000000000000000000000000000000000", - 0, - "TEST Lido DAO Token", - 18, - "TLDO", - true - ] - }, - "callsScript": { - "address": "0xAa8B4F258a4817bfb0058b861447878168ddf7B0", - "contract": "@aragon/os/contracts/evmscript/executors/CallsScript.sol", - "constructorArgs": [] - }, "aragon-evm-script-registry": { "proxy": { "address": "0xE1200ae048163B67D69Bc0492bF5FddC3a2899C0", @@ -622,30 +365,197 @@ "constructorArgs": [] } }, - "oracleDaemonConfig": { - "contract": "contracts/0.8.9/OracleDaemonConfig.sol", - "address": "0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7", + "aragon-kernel": { + "implementation": { + "contract": "@aragon/os/contracts/kernel/Kernel.sol", + "address": "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F", + "constructorArgs": [ + true + ] + }, + "proxy": { + "address": "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", + "contract": "@aragon/os/contracts/kernel/KernelProxy.sol", + "constructorArgs": [ + "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F" + ] + } + }, + "aragonEnsLabelName": "aragonpm", + "aragonEnsNode": "0x9065c3e7f7b7ef1ef4e53d2d0b8e0cef02874ab020c1ece79d5f0d3d0111c0ba", + "aragonEnsNodeName": "aragonpm.eth", + "aragonIDAddress": "0xCA01225e211AB0c6EFCD3aCc64D85465e4D8ab53", + "aragonIDConstructorArgs": [ + "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", + "0x2B725cBA5F75c3B61bb5E37454a7090fb11c757E", + "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86" + ], + "aragonIDEnsNode": "0x7e74a86b6e146964fb965db04dc2590516da77f720bb6759337bf5632415fd86", + "aragonIDEnsNodeName": "aragonid.eth", + "burner": { + "deployParameters": { + "totalCoverSharesBurnt": "0", + "totalNonCoverSharesBurnt": "0" + }, + "contract": "contracts/0.8.9/Burner.sol", + "address": "0x4E46BD7147ccf666E1d73A3A456fC7a68de82eCA", + "constructorArgs": [ + "0x22896Bfc68814BFD855b1a167255eE497006e730", + "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d", + "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", + "0", + "0" + ] + }, + "callsScript": { + "address": "0xAa8B4F258a4817bfb0058b861447878168ddf7B0", + "contract": "@aragon/os/contracts/evmscript/executors/CallsScript.sol", + "constructorArgs": [] + }, + "chainId": 17000, + "chainSpec": { + "slotsPerEpoch": 32, + "secondsPerSlot": 12, + "genesisTime": 1695902400, + "depositContract": "0x4242424242424242424242424242424242424242" + }, + "createAppReposTx": "0xd8a9b10e16b5e75b984c90154a9cb51fbb06bf560a3c424e2e7ad81951008502", + "daoAragonId": "lido-dao", + "daoFactoryAddress": "0xB33f9AE6C34D8cC59A48fd9973C64488f00fa64F", + "daoFactoryConstructorArgs": [ + "0x34c0cbf9836FD945423bD3d2d72880da9d068E5F", + "0xF1A087E055EA1C11ec3B540795Bd1A544e6dcbe9", + "0x11E7591F83360d0Bc238c8AB9e50B6D2B7566aDc" + ], + "daoInitialSettings": { + "voting": { + "minSupportRequired": "500000000000000000", + "minAcceptanceQuorum": "50000000000000000", + "voteDuration": 900, + "objectionPhaseDuration": 300 + }, + "fee": { + "totalPercent": 10, + "treasuryPercent": 50, + "nodeOperatorsPercent": 50 + }, + "token": { + "name": "TEST Lido DAO Token", + "symbol": "TLDO" + } + }, + "deployCommit": "eda16728a7c80f1bb55c3b91c668aae190a1efb0", + "deployer": "0x22896Bfc68814BFD855b1a167255eE497006e730", + "depositSecurityModule": { + "deployParameters": { + "maxDepositsPerBlock": 150, + "minDepositBlockDistance": 5, + "pauseIntentValidityPeriodBlocks": 6646 + }, + "contract": "contracts/0.8.9/DepositSecurityModule.sol", + "address": "0x045dd46212A178428c088573A7d102B9d89a022A", + "constructorArgs": [ + "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", + "0x4242424242424242424242424242424242424242", + "0xd6EbF043D30A7fe46D1Db32BA90a0A51207FE229", + 150, + 5, + 6646 + ] + }, + "dummyEmptyContract": { + "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", + "address": "0x5F4FEf09Cbd5ad743632Fb869E80294933473f0B", + "constructorArgs": [] + }, + "eip712StETH": { + "contract": "contracts/0.8.9/EIP712StETH.sol", + "address": "0xE154732c5Eab277fd88a9fF6Bdff7805eD97BCB1", + "constructorArgs": [ + "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034" + ] + }, + "ensAddress": "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", + "ensFactoryAddress": "0xADba3e3122F2Da8F7B07723a3e1F1cEDe3fe8d7d", + "ensFactoryConstructorArgs": [], + "ensSubdomainRegistrarBaseAddress": "0x7B133ACab5Cec7B90FB13CCf68d6568f8A051EcE", + "evmScriptRegistryFactoryAddress": "0x11E7591F83360d0Bc238c8AB9e50B6D2B7566aDc", + "evmScriptRegistryFactoryConstructorArgs": [], + "executionLayerRewardsVault": { + "contract": "contracts/0.8.9/LidoExecutionLayerRewardsVault.sol", + "address": "0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8", + "constructorArgs": [ + "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", + "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d" + ] + }, + "gateSeal": { + "factoryAddress": "0x1134F7077055b0B3559BE52AfeF9aA22A0E1eEC2", + "sealDuration": 518400, + "expiryTimestamp": 1714521600, + "sealingCommittee": "0xCD1f9954330AF39a74Fd6e7B25781B4c24ee373f", + "address": "0x7f6FA688d4C12a2d51936680b241f3B0F0F9ca60" + }, + "hashConsensusForAccountingOracle": { + "deployParameters": { + "fastLaneLengthSlots": 10, + "epochsPerFrame": 12 + }, + "contract": "contracts/0.8.9/oracle/HashConsensus.sol", + "address": "0xa067FC95c22D51c3bC35fd4BE37414Ee8cc890d2", + "constructorArgs": [ + 32, + 12, + 1695902400, + 12, + 10, + "0x22896Bfc68814BFD855b1a167255eE497006e730", + "0x4E97A3972ce8511D87F334dA17a2C332542a5246" + ] + }, + "hashConsensusForValidatorsExitBusOracle": { + "deployParameters": { + "fastLaneLengthSlots": 10, + "epochsPerFrame": 4 + }, + "contract": "contracts/0.8.9/oracle/HashConsensus.sol", + "address": "0xe77Cf1A027d7C10Ee6bb7Ede5E922a181FF40E8f", + "constructorArgs": [ + 32, + 12, + 1695902400, + 4, + 10, + "0x22896Bfc68814BFD855b1a167255eE497006e730", + "0xffDDF7025410412deaa05E3E1cE68FE53208afcb" + ] + }, + "ldo": { + "address": "0x14ae7daeecdf57034f3E9db8564e46Dba8D97344", + "contract": "@aragon/minime/contracts/MiniMeToken.sol", "constructorArgs": [ - "0x22896Bfc68814BFD855b1a167255eE497006e730", - [] - ], + "0x15ef666c9620C0f606Ba35De2aF668fe987E26ae", + "0x0000000000000000000000000000000000000000", + 0, + "TEST Lido DAO Token", + 18, + "TLDO", + true + ] + }, + "legacyOracle": { "deployParameters": { - "NORMALIZED_CL_REWARD_PER_EPOCH": 64, - "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, - "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, - "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 23, - "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, - "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 28800, - "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100, - "PREDICTION_DURATION_IN_SLOTS": 50400, - "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350 + "lastCompletedEpochId": 0 } }, - "dummyEmptyContract": { - "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", - "address": "0x5F4FEf09Cbd5ad743632Fb869E80294933473f0B", - "constructorArgs": [] - }, + "lidoApmAddress": "0x4605Dc9dC4BD0442F850eB8226B94Dd0e27C3Ce7", + "lidoApmDeployArguments": [ + "0x93cdeb708b7545dc668eb9280176169d1c33cfd8ed6f04690a0bcc88a93fc4ae", + "0x90a9580abeb24937fc658e497221c81ce8553b560304f9525821f32b17dbdaec" + ], + "lidoApmDeployTx": "0x2fac1c172a250736c34d16d3a721d2916abac0de0dea67d79955346a1f4345a2", + "lidoApmEnsName": "lidopm.eth", + "lidoApmEnsRegDurationSec": 94608000, "lidoLocator": { "proxy": { "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", @@ -679,44 +589,90 @@ ] } }, - "eip712StETH": { - "contract": "contracts/0.8.9/EIP712StETH.sol", - "address": "0xE154732c5Eab277fd88a9fF6Bdff7805eD97BCB1", + "lidoTemplate": { + "contract": "contracts/0.4.24/template/LidoTemplate.sol", + "address": "0x0e065Dd0Bc85Ca53cfDAf8D9ed905e692260De2E", "constructorArgs": [ - "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034" - ] + "0x22896Bfc68814BFD855b1a167255eE497006e730", + "0xB33f9AE6C34D8cC59A48fd9973C64488f00fa64F", + "0x4327d1Fc6E5fa0326CCAE737F67C066c50BcC258", + "0x15ef666c9620C0f606Ba35De2aF668fe987E26ae", + "0xCA01225e211AB0c6EFCD3aCc64D85465e4D8ab53", + "0x54eF0022cc769344D0cBCeF12e051281cCBb9fad" + ], + "deployBlock": 30581 }, - "wstETH": { - "contract": "contracts/0.6.12/WstETH.sol", - "address": "0x8d09a4502Cc8Cf1547aD300E066060D043f6982D", - "constructorArgs": [ - "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034" - ] + "lidoTemplateCreateStdAppReposTx": "0x3f5b8918667bd3e971606a54a907798720158587df355a54ce07c0d0f9750d3c", + "lidoTemplateNewDaoTx": "0x3346246f09f91ffbc260b6c300b11ababce9f5ca54d7880a277860961f343112", + "miniMeTokenFactoryAddress": "0x15ef666c9620C0f606Ba35De2aF668fe987E26ae", + "miniMeTokenFactoryConstructorArgs": [], + "networkId": 17000, + "newDaoTx": "0x3346246f09f91ffbc260b6c300b11ababce9f5ca54d7880a277860961f343112", + "nodeOperatorsRegistry": { + "deployParameters": { + "stakingModuleTypeId": "curated-onchain-v1", + "stuckPenaltyDelay": 172800 + } }, - "withdrawalVault": { - "implementation": { - "contract": "contracts/0.8.9/WithdrawalVault.sol", - "address": "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A", - "constructorArgs": [ - "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", - "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d" - ] - }, - "proxy": { - "contract": "contracts/0.8.4/WithdrawalsManagerProxy.sol", - "address": "0xF0179dEC45a37423EAD4FaD5fCb136197872EAd9", - "constructorArgs": [ - "0xdA7d2573Df555002503F29aA4003e398d28cc00f", - "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A" - ] + "oracleDaemonConfig": { + "contract": "contracts/0.8.9/OracleDaemonConfig.sol", + "address": "0xC01fC1F2787687Bc656EAc0356ba9Db6e6b7afb7", + "constructorArgs": [ + "0x22896Bfc68814BFD855b1a167255eE497006e730", + [] + ], + "deployParameters": { + "NORMALIZED_CL_REWARD_PER_EPOCH": 64, + "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, + "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, + "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 23, + "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, + "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 28800, + "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100, + "PREDICTION_DURATION_IN_SLOTS": 50400, + "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350 } }, - "executionLayerRewardsVault": { - "contract": "contracts/0.8.9/LidoExecutionLayerRewardsVault.sol", - "address": "0xE73a3602b99f1f913e72F8bdcBC235e206794Ac8", + "oracleReportSanityChecker": { + "deployParameters": { + "churnValidatorsPerDayLimit": 1500, + "oneOffCLBalanceDecreaseBPLimit": 500, + "annualBalanceIncreaseBPLimit": 1000, + "simulatedShareRateDeviationBPLimit": 250, + "maxValidatorExitRequestsPerReport": 2000, + "maxAccountingExtraDataListItemsCount": 100, + "maxNodeOperatorsPerExtraDataItemCount": 100, + "requestTimestampMargin": 128, + "maxPositiveTokenRebase": 5000000 + }, + "contract": "contracts/0.8.9/sanity_checks/OracleReportSanityChecker.sol", + "address": "0xF0d576c7d934bBeCc68FE15F1c5DAF98ea2B78bb", "constructorArgs": [ - "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", - "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d" + "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8", + "0x22896Bfc68814BFD855b1a167255eE497006e730", + [ + 1500, + 500, + 1000, + 250, + 2000, + 100, + 100, + 128, + 5000000 + ], + [ + [], + [], + [], + [], + [], + [], + [], + [], + [], + [] + ] ] }, "stakingRouter": { @@ -737,46 +693,88 @@ ] } }, - "app:simple-dvt": { - "stakingRouterModuleParams": { - "moduleName": "SimpleDVT", - "moduleType": "curated-onchain-v1", - "targetShare": 50, - "moduleFee": 800, - "treasuryFee": 200, - "penaltyDelay": 86400, - "easyTrackAddress": "0x1763b9ED3586B08AE796c7787811a2E1bc16163a", - "easyTrackFactories": { - "AddNodeOperators": "0xeF5233A5bbF243149E35B353A73FFa8931FDA02b", - "ActivateNodeOperators": "0x5b4A9048176D5bA182ceec8e673D8aA6927A40D6", - "DeactivateNodeOperators": "0x88d247cdf4ff4A4AAA8B3DD9dd22D1b89219FB3B", - "SetVettedValidatorsLimits": "0x30Cb36DBb0596aD9Cf5159BD2c4B1456c18e47E8", - "SetNodeOperatorNames": "0x4792BaC0a262200fA7d3b68e7622bFc1c2c3a72d", - "SetNodeOperatorRewardAddresses": "0x6Bfc576018C7f3D2a9180974E5c8e6CFa021f617", - "UpdateTargetValidatorLimits": "0xC91a676A69Eb49be9ECa1954fE6fc861AE07A9A2", - "ChangeNodeOperatorManager": "0xb8C4728bc0826bA5864D02FA53148de7A44C2f7E" - } + "validatorsExitBusOracle": { + "deployParameters": { + "consensusVersion": 1 }, - "aragonApp": { - "name": "simple-dvt", - "fullName": "simple-dvt.lidopm.eth", - "id": "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4" + "proxy": { + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0xffDDF7025410412deaa05E3E1cE68FE53208afcb", + "constructorArgs": [ + "0x210f60EC8A4D020b3e22f15fee2d2364e9b22357", + "0x22896Bfc68814BFD855b1a167255eE497006e730", + "0x" + ] + }, + "implementation": { + "contract": "contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol", + "address": "0x210f60EC8A4D020b3e22f15fee2d2364e9b22357", + "constructorArgs": [ + 12, + 1695902400, + "0x28FAB2059C713A7F9D8c86Db49f9bb0e96Af1ef8" + ] + } + }, + "vestingParams": { + "unvestedTokensAmount": "0", + "holders": { + "0xCD1f9954330AF39a74Fd6e7B25781B4c24ee373f": "880000000000000000000000", + "0xaa6bfBCD634EE744CB8FE522b29ADD23124593D3": "60000000000000000000000", + "0xBA59A84C6440E8cccfdb5448877E26F1A431Fc8B": "60000000000000000000000" + }, + "start": 0, + "cliff": 0, + "end": 0, + "revokable": false + }, + "withdrawalQueueERC721": { + "deployParameters": { + "name": "stETH Withdrawal NFT", + "symbol": "unstETH" }, "proxy": { - "address": "0x11a93807078f8BB880c1BD0ee4C387537de4b4b6", - "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol", + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "address": "0xc7cc160b58F8Bb0baC94b80847E2CF2800565C50", "constructorArgs": [ - "0x3b03f75Ec541Ca11a223bB58621A3146246E1644", - "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4", + "0xFF72B5cdc701E9eE677966B2702c766c38F412a4", + "0x22896Bfc68814BFD855b1a167255eE497006e730", "0x" ] }, - "fullName": "simple-dvt.lidopm.eth", - "name": "simple-dvt", - "id": "0xe1635b63b5f7b5e545f2a637558a4029dea7905361a2f0fc28c66e9136cf86a4", - "ipfsCid": "QmaSSujHCGcnFuetAPGwVW5BegaMBvn5SCsgi3LSfvraSo", - "contentURI": "0x697066733a516d615353756a484347636e4675657441504777565735426567614d42766e355343736769334c5366767261536f", - "implementation": "0xE0270CF2564d81E02284e16539F59C1B5a4718fE", - "contract": "NodeOperatorsRegistry" + "implementation": { + "contract": "contracts/0.8.9/WithdrawalQueueERC721.sol", + "address": "0xFF72B5cdc701E9eE677966B2702c766c38F412a4", + "constructorArgs": [ + "0x8d09a4502Cc8Cf1547aD300E066060D043f6982D", + "stETH Withdrawal NFT", + "unstETH" + ] + } + }, + "withdrawalVault": { + "implementation": { + "contract": "contracts/0.8.9/WithdrawalVault.sol", + "address": "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A", + "constructorArgs": [ + "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034", + "0xE92329EC7ddB11D25e25b3c21eeBf11f15eB325d" + ] + }, + "proxy": { + "contract": "contracts/0.8.4/WithdrawalsManagerProxy.sol", + "address": "0xF0179dEC45a37423EAD4FaD5fCb136197872EAd9", + "constructorArgs": [ + "0xdA7d2573Df555002503F29aA4003e398d28cc00f", + "0xd517d9d04DA9B47dA23df91261bd3bF435BE964A" + ] + } + }, + "wstETH": { + "contract": "contracts/0.6.12/WstETH.sol", + "address": "0x8d09a4502Cc8Cf1547aD300E066060D043f6982D", + "constructorArgs": [ + "0x3F1c547b21f65e10480dE3ad8E19fAAC46C95034" + ] } } diff --git a/deployed-mainnet.json b/deployed-mainnet.json index b39f322c8..742616866 100644 --- a/deployed-mainnet.json +++ b/deployed-mainnet.json @@ -1,197 +1,32 @@ { - "deployCommit": "e45c4d6fb8120fd29426b8d969c19d8a798ca974", - "networkId": 1, - "ipfsAPI": "https://ipfs.infura.io:5001/api/v0", - "lidoApmEnsName": "lidopm.eth", - "lidoApmEnsRegDurationSec": 94608000, - "deployer": "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA", - "daoAragonId": "lido-dao", - "ensAddress": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - "daoFactoryAddress": "0x7378ad1ba8f3c8e64bbb2a04473edd35846360f1", - "apmRegistryFactoryAddress": "0xa0BC4B67F5FacDE4E50EAFF48691Cfc43F4E280A", - "miniMeTokenFactoryAddress": "0x909d05f384d0663ed4be59863815ab43b4f347ec", - "aragonIDAddress": "0x546aa2eae2514494eeadb7bbb35243348983c59d", - "chainSpec": { - "depositContractAddress": "0x00000000219ab540356cBB839Cbe05303d7705Fa", - "slotsPerEpoch": 32, - "secondsPerSlot": 12, - "genesisTime": 1606824023 - }, - "daoInitialSettings": { - "token": { - "name": "Lido DAO Token", - "symbol": "LDO" - }, - "voting": { - "minSupportRequired": "500000000000000000", - "minAcceptanceQuorum": "50000000000000000", - "voteDuration": 86400 - }, - "fee": { - "totalPercent": 10, - "treasuryPercent": 0, - "insurancePercent": 50, - "nodeOperatorsPercent": 50 - } - }, - "vestingParams": { - "unvestedTokensAmount": "363197500000000000000000000", - "holders": { - "0x9Bb75183646e2A0DC855498bacD72b769AE6ceD3": "20000000000000000000000000", - "0x0f89D54B02ca570dE82F770D33c7B7Cf7b3C3394": "25000000000000000000000000", - "0xe49f68B9A01d437B0b7ea416376a7AB21532624e": "2282000000000000000000000", - "0xb842aFD82d940fF5D8F6EF3399572592EBF182B0": "17718000000000000000000000", - "0x9849c2C1B73B41AEE843A002C332a2d16aaaB611": "10000000000000000000000000", - "0x96481cb0fcd7673254ebccc42dce9b92da10ea04": "5000000000000000000000000", - "0xB3DFe140A77eC43006499CB8c2E5e31975caD909": "7500000000000000000000000", - "0x61C808D82A3Ac53231750daDc13c777b59310bD9": "20000000000000000000000000", - "0x447f95026107aaed7472A0470931e689f51e0e42": "20000000000000000000000000", - "0x6ae83EAB68b7112BaD5AfD72d6B24546AbFF137D": "2222222220000000000000000", - "0xC24da173A250e9Ca5c54870639EbE5f88be5102d": "17777777780000000000000000", - "0x1f3813fE7ace2a33585F1438215C7F42832FB7B3": "20000000000000000000000000", - "0x82a8439BA037f88bC73c4CCF55292e158A67f125": "7000000000000000000000000", - "0x91715128a71c9C734CDC20E5EdEEeA02E72e428E": "15000000000000000000000000", - "0xB5587A54fF7022AC218438720BDCD840a32f0481": "5000000000000000000000000", - "0xf5fb27b912d987b5b6e02a1b1be0c1f0740e2c6f": "2000000000000000000000000", - "0x8b1674a617F103897Fb82eC6b8EB749BA0b9765B": "15000000000000000000000000", - "0x48Acf41D10a063f9A6B718B9AAd2e2fF5B319Ca2": "5000000000000000000000000", - "0x7eE09c11D6Dc9684D6D5a4C6d333e5b9e336bb6C": "10000000000000000000000000", - "0x11099aC9Cc097d0C9759635b8e16c6a91ECC43dA": "2000000000000000000000000", - "0x3d4AD2333629eE478E4f522d60A56Ae1Db5D3Cdb": "5000000000000000000000000", - "0xd5eCB56c6ca8f8f52D2DB4dC1257d6161cf3Da29": "100000000000000000000000", - "0x7F5e13a815EC9b4466d283CD521eE9829e7F6f0e": "200000000000000000000000", - "0x2057cbf2332ab2697a52B8DbC85756535d577e32": "500000000000000000000000", - "0x537dfB5f599A3d15C50E2d9270e46b808A52559D": "1000000000000000000000000", - "0x33c4c38e96337172d3de39df82060de26b638c4b": "550000000000000000000000", - "0x6094E1Dd925caCe56Fa501dAEc02b01a49E55770": "300000000000000000000000", - "0x977911f476B28f9F5332fA500387deE81e480a44": "40000000000000000000000", - "0x66d3FdA643320c6DddFBba39e635288A5dF75FB9": "200000000000000000000000", - "0xDFC0ae54af992217100845597982274A26d8CB28": "12500000000000000000000", - "0x32254b28F793CC18B3575C86c61fE3D7421cbbef": "500000000000000000000000", - "0x0Bf5566fB5F1f9934a3944AEF128a1b1a8cF3f17": "50000000000000000000000", - "0x1d3Fa8bf35870271115B997b8eCFe18529422a16": "50000000000000000000000", - "0x366B9729C5A89EC4618A0AB95F832E411eaE8237": "200000000000000000000000", - "0x20921142A35c89bE5D002973d2D6B72d9a625FB0": "200000000000000000000000", - "0x663b91628674846e8D1CBB779EFc8202d86284E2": "7500000000000000000000000", - "0xa6829908f728C6bC5627E2aFe93a0B71E978892D": "300000000000000000000000", - "0x9575B7859DF77F2A0EF034339b80e24dE44AB3F6": "200000000000000000000000", - "0xEe217c23131C6F055F7943Ef1f80Bec99dF35244": "400000000000000000000000", - "0xadde043f556d1083f060A7298E79eaBa08A3a077": "400000000000000000000000", - "0xaFBEfC8401c885A0bb6Ea6Af43f592A015433C65": "200000000000000000000000", - "0x8a62A63b877877bd5B1209B9b67F3d2685284268": "200000000000000000000000", - "0x62Ac238Ac055017DEcAb645E7E56176749f316d0": "200000000000000000000000", - "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA": "5000000000000000000000000", - "0x8D689476EB446a1FB0065bFFAc32398Ed7F89165": "10000000000000000000000000", - "0x083fc10cE7e97CaFBaE0fE332a9c4384c5f54E45": "5000000000000000000000000", - "0x0028E24e4Fe5184792Bd0Cf498C11AE5b76185f5": "5000000000000000000000000", - "0xFe45baf0F18c207152A807c1b05926583CFE2e4b": "5000000000000000000000000", - "0x4a7C6899cdcB379e284fBFD045462e751DA4C7cE": "5000000000000000000000000", - "0xD7f0dDcBb0117A53e9ff2cad814B8B810a314f59": "5000000000000000000000000", - "0xb8d83908AAB38a159F3dA47a59d84dB8e1838712": "50000000000000000000000000", - "0xA2dfC431297aee387C05bEEf507E5335E684FbCD": "50000000000000000000000000", - "0x1597D19659F3DE52ABd475F7D2314DCca29359BD": "50000000000000000000000000", - "0x695C388153bEa0fbE3e1C049c149bAD3bc917740": "50000000000000000000000000", - "0x945755dE7EAc99008c8C57bdA96772d50872168b": "50000000000000000000000000", - "0xFea88380bafF95e85305419eB97247981b1a8eEE": "30000000000000000000000000", - "0xAD4f7415407B83a081A0Bee22D05A8FDC18B42da": "50000000000000000000000000", - "0x68335B3ac272C8238b722963368F87dE736b64D6": "5000000000000000000000000", - "0xfA2Ab7C161Ef7F83194498f36ca7aFba90FD08d4": "5000000000000000000000000", - "0x58A764028350aB15899fDCcAFFfd3940e602CEEA": "10000000000000000000000000" - }, - "start": 1639785600, - "cliff": 1639785600, - "end": 1671321600, - "revokable": false - }, - "lidoTemplate": { - "contract": "contracts/0.4.24/template/LidoTemplate.sol", - "address": "0x752350797CB92Ad3BF1295Faf904B27585e66BF5", - "deployTx": "0xdcd4ebe028aa3663a1fe8bbc92ae8489045e29d2a6ef5284083d9be5c3fa5f19", - "constructorArgs": [ - "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA", - "0x7378ad1ba8f3c8e64bbb2a04473edd35846360f1", - "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", - "0x909d05f384d0663ed4be59863815ab43b4f347ec", - "0x546aa2eae2514494eeadb7bbb35243348983c59d", - "0xa0BC4B67F5FacDE4E50EAFF48691Cfc43F4E280A" - ] - }, - "app:lido": { - "proxy": { - "address": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" - }, - "implementation": { - "address": "0x17144556fd3424EDC8Fc8A4C940B2D04936d17eb", - "contract": "contracts/0.4.24/Lido.sol", - "deployTx": "0xb4b5e02643c9802fd0f7c73c4854c4f1b83497aca13f8297ba67207b71c4dcd9", - "constructorArgs": [] - }, - "aragonApp": { - "fullName": "lido.lidopm.eth", - "name": "lido", - "id": "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320", - "ipfsCid": "QmQkJMtvu4tyJvWrPXJfjLfyTWn959iayyNjp7YqNzX7pS", - "contentURI": "0x697066733a516d516b4a4d7476753474794a76577250584a666a4c667954576e393539696179794e6a703759714e7a58377053" - } - }, - "app:oracle": { - "proxy": { - "address": "0x442af784A788A5bd6F42A01Ebe9F287a871243fb" - }, - "implementation": { - "address": "0xa29b819654cE6224A222bb5f586920105E2D7E0E", - "contract": "contracts/0.4.24/oracle/LegacyOracle.sol", - "deployTx": "0xe666e3ce409bb4c18e1016af0b9ed3495b20361a69f2856bccb9e67599795b6f", - "constructorArgs": [] + "accountingOracle": { + "deployParameters": { + "consensusVersion": 1 }, - "aragonApp": { - "fullName": "oracle.lidopm.eth", - "name": "oracle", - "id": "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93", - "ipfsCid": "QmUMPfiEKq5Mxm8y2GYQPLujGaJiWz1tvep5W7EdAGgCR8", - "contentURI": "0x697066733a516d656138394d5533504852503763513157616b3672327355654d554146324c39727132624c6d5963644b764c57" - } - }, - "app:node-operators-registry": { "proxy": { - "address": "0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5" + "address": "0x852deD011285fe67063a08005c71a85690503Cee", + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "deployTx": "0x3def88f27741216b131de2861cf89af2ca2ac4242b384ee33dca8cc70c51c8dd", + "constructorArgs": [ + "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", + "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", + "0x" + ] }, "implementation": { - "address": "0x8538930c385C0438A357d2c25CB3eAD95Ab6D8ed", - "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", - "deployTx": "0xbec5b6ffb8fbc775a183e25cd285367993d7201752e1638a07abec8962bab750", - "constructorArgs": [], - "deployParameters": { - "stakingModuleTypeId": "curated-onchain-v1", - "stuckPenaltyDelay": "432000" - } - }, - "aragonApp": { - "fullName": "node-operators-registry.lidopm.eth", - "name": "node-operators-registry", - "id": "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d", - "ipfsCid": "Qma7PXHmEj4js2gjM9vtHPtqvuK82iS5EYPiJmzKLzU58G", - "contentURI": "0x697066733a516d61375058486d456a346a7332676a4d3976744850747176754b3832695335455950694a6d7a4b4c7a55353847" - } - }, - "lidoApmDeployTx": "0xfa66476569ecef5790f2d0634997b952862bbca56aa088f151b8049421eeb87b", - "lidoApmAddress": "0x0cb113890b04B49455DfE06554e2D784598A29C9", - "createAppReposTx": "0xf48cb21c6be021dd18bd8e02ce89ac7b924245b859f0a8b7c47e88a39016ed41", - "newDaoTx": "0x3feabd79e8549ad68d1827c074fa7123815c80206498946293d5373a160fd866", - "daoTokenAddress": "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", - "aragon-kernel": { - "implementation": { - "contract": "@aragon/os/contracts/kernel/Kernel.sol", - "address": "0x2b33CF282f867A7FF693A66e11B0FcC5552e4425", + "address": "0xF3c5E0A67f32CF1dc07a8817590efa102079a1aF", + "contract": "contracts/0.8.9/oracle/AccountingOracle.sol", + "deployTx": "0x3e27627d3ed236aff8901df187196e9682187dfd0d259c5d5811a6e923436083", "constructorArgs": [ - true + "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb", + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", + "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", + 12, + 1606824023 ] - }, - "proxy": { - "address": "0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc", - "contract": "@aragon/os/contracts/kernel/KernelProxy.sol" } }, + "apmRegistryFactoryAddress": "0xa0BC4B67F5FacDE4E50EAFF48691Cfc43F4E280A", "app:aragon-agent": { "implementation": { "contract": "@aragon/apps-agent/contracts/Agent.sol", @@ -256,19 +91,78 @@ "contract": "@aragon/os/contracts/apps/AppProxyUpgradeable.sol" } }, - "wstETH": { - "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", - "contract": "contracts/0.6.12/WstETH.sol", - "deployTx": "0xaf2c1a501d2b290ef1e84ddcfc7beb3406f8ece2c46dee14e212e8233654ff05", - "constructorArgs": [ - "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" - ] + "app:lido": { + "proxy": { + "address": "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" + }, + "implementation": { + "address": "0x17144556fd3424EDC8Fc8A4C940B2D04936d17eb", + "contract": "contracts/0.4.24/Lido.sol", + "deployTx": "0xb4b5e02643c9802fd0f7c73c4854c4f1b83497aca13f8297ba67207b71c4dcd9", + "constructorArgs": [] + }, + "aragonApp": { + "fullName": "lido.lidopm.eth", + "name": "lido", + "id": "0x3ca7c3e38968823ccb4c78ea688df41356f182ae1d159e4ee608d30d68cef320", + "ipfsCid": "QmQkJMtvu4tyJvWrPXJfjLfyTWn959iayyNjp7YqNzX7pS", + "contentURI": "0x697066733a516d516b4a4d7476753474794a76577250584a666a4c667954576e393539696179794e6a703759714e7a58377053" + } }, - "executionLayerRewardsVault": { - "address": "0x388C818CA8B9251b393131C08a736A67ccB19297", - "contract": "contracts/0.8.9/LidoExecutionLayerRewardsVault.sol", - "deployTx": "0xd72cf25e4a5fe3677b6f9b2ae13771e02ad66f8d2419f333bb8bde3147bd4294" + "app:node-operators-registry": { + "proxy": { + "address": "0x55032650b14df07b85bF18A3a3eC8E0Af2e028d5" + }, + "implementation": { + "address": "0x8538930c385C0438A357d2c25CB3eAD95Ab6D8ed", + "contract": "contracts/0.4.24/nos/NodeOperatorsRegistry.sol", + "deployTx": "0xbec5b6ffb8fbc775a183e25cd285367993d7201752e1638a07abec8962bab750", + "constructorArgs": [], + "deployParameters": { + "stakingModuleTypeId": "curated-onchain-v1", + "stuckPenaltyDelay": "432000" + } + }, + "aragonApp": { + "fullName": "node-operators-registry.lidopm.eth", + "name": "node-operators-registry", + "id": "0x7071f283424072341f856ac9e947e7ec0eb68719f757a7e785979b6b8717579d", + "ipfsCid": "Qma7PXHmEj4js2gjM9vtHPtqvuK82iS5EYPiJmzKLzU58G", + "contentURI": "0x697066733a516d61375058486d456a346a7332676a4d3976744850747176754b3832695335455950694a6d7a4b4c7a55353847" + } + }, + "app:oracle": { + "proxy": { + "address": "0x442af784A788A5bd6F42A01Ebe9F287a871243fb" + }, + "implementation": { + "address": "0xa29b819654cE6224A222bb5f586920105E2D7E0E", + "contract": "contracts/0.4.24/oracle/LegacyOracle.sol", + "deployTx": "0xe666e3ce409bb4c18e1016af0b9ed3495b20361a69f2856bccb9e67599795b6f", + "constructorArgs": [] + }, + "aragonApp": { + "fullName": "oracle.lidopm.eth", + "name": "oracle", + "id": "0x8b47ba2a8454ec799cd91646e7ec47168e91fd139b23f017455f3e5898aaba93", + "ipfsCid": "QmUMPfiEKq5Mxm8y2GYQPLujGaJiWz1tvep5W7EdAGgCR8", + "contentURI": "0x697066733a516d656138394d5533504852503763513157616b3672327355654d554146324c39727132624c6d5963644b764c57" + } + }, + "aragon-kernel": { + "implementation": { + "contract": "@aragon/os/contracts/kernel/Kernel.sol", + "address": "0x2b33CF282f867A7FF693A66e11B0FcC5552e4425", + "constructorArgs": [ + true + ] + }, + "proxy": { + "address": "0xb8FFC3Cd6e7Cf5a098A1c92F48009765B24088Dc", + "contract": "@aragon/os/contracts/kernel/KernelProxy.sol" + } }, + "aragonIDAddress": "0x546aa2eae2514494eeadb7bbb35243348983c59d", "burner": { "address": "0xD15a672319Cf0352560eE76d9e89eAB0889046D3", "contract": "contracts/0.8.9/Burner.sol", @@ -285,6 +179,73 @@ "totalNonCoverSharesBurnt": "32145684728326685744" } }, + "chainSpec": { + "depositContractAddress": "0x00000000219ab540356cBB839Cbe05303d7705Fa", + "slotsPerEpoch": 32, + "secondsPerSlot": 12, + "genesisTime": 1606824023 + }, + "createAppReposTx": "0xf48cb21c6be021dd18bd8e02ce89ac7b924245b859f0a8b7c47e88a39016ed41", + "daoAragonId": "lido-dao", + "daoFactoryAddress": "0x7378ad1ba8f3c8e64bbb2a04473edd35846360f1", + "daoInitialSettings": { + "token": { + "name": "Lido DAO Token", + "symbol": "LDO" + }, + "voting": { + "minSupportRequired": "500000000000000000", + "minAcceptanceQuorum": "50000000000000000", + "voteDuration": 86400 + }, + "fee": { + "totalPercent": 10, + "treasuryPercent": 0, + "insurancePercent": 50, + "nodeOperatorsPercent": 50 + } + }, + "daoTokenAddress": "0x5A98FcBEA516Cf06857215779Fd812CA3beF1B32", + "deployCommit": "e45c4d6fb8120fd29426b8d969c19d8a798ca974", + "deployer": "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA", + "depositSecurityModule": { + "address": "0xC77F8768774E1c9244BEed705C4354f2113CFc09", + "contract": "contracts/0.8.9/DepositSecurityModule.sol", + "deployTx": "0x21307a2321f167f99de11ccec86d7bdd8233481bbffa493e15c519ca8d662c4f", + "constructorArgs": [ + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", + "0x00000000219ab540356cBB839Cbe05303d7705Fa", + "0xFdDf38947aFB03C621C71b06C9C70bce73f12999", + 150, + 25, + 6646 + ], + "deployParameters": { + "maxDepositsPerBlock": 150, + "minDepositBlockDistance": 25, + "pauseIntentValidityPeriodBlocks": 6646 + } + }, + "dummyEmptyContract": { + "address": "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", + "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", + "deployTx": "0x9d76786f639bd18365f10c087444761db5dafd0edc85c5c1a3e90219f2d1331d", + "constructorArgs": [] + }, + "eip712StETH": { + "address": "0x8F73e4C2A6D852bb4ab2A45E6a9CF5715b3228B7", + "contract": "contracts/0.8.9/EIP712StETH.sol", + "deployTx": "0xecb5010620fb13b0e2bbc98b8a0c82de0d7385491452cd36cf303cd74216ed91", + "constructorArgs": [ + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" + ] + }, + "ensAddress": "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + "executionLayerRewardsVault": { + "address": "0x388C818CA8B9251b393131C08a736A67ccB19297", + "contract": "contracts/0.8.9/LidoExecutionLayerRewardsVault.sol", + "deployTx": "0xd72cf25e4a5fe3677b6f9b2ae13771e02ad66f8d2419f333bb8bde3147bd4294" + }, "hashConsensusForAccountingOracle": { "address": "0xD624B08C83bAECF0807Dd2c6880C3154a5F0B288", "contract": "contracts/0.8.9/oracle/HashConsensus.sol", @@ -303,33 +264,6 @@ "epochsPerFrame": 225 } }, - "accountingOracle": { - "deployParameters": { - "consensusVersion": 1 - }, - "proxy": { - "address": "0x852deD011285fe67063a08005c71a85690503Cee", - "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", - "deployTx": "0x3def88f27741216b131de2861cf89af2ca2ac4242b384ee33dca8cc70c51c8dd", - "constructorArgs": [ - "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", - "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", - "0x" - ] - }, - "implementation": { - "address": "0xF3c5E0A67f32CF1dc07a8817590efa102079a1aF", - "contract": "contracts/0.8.9/oracle/AccountingOracle.sol", - "deployTx": "0x3e27627d3ed236aff8901df187196e9682187dfd0d259c5d5811a6e923436083", - "constructorArgs": [ - "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb", - "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", - "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", - 12, - 1606824023 - ] - } - }, "hashConsensusForValidatorsExitBusOracle": { "address": "0x7FaDB6358950c5fAA66Cb5EB8eE5147De3df355a", "contract": "contracts/0.8.9/oracle/HashConsensus.sol", @@ -348,47 +282,80 @@ "epochsPerFrame": 75 } }, - "validatorsExitBusOracle": { + "ipfsAPI": "https://ipfs.infura.io:5001/api/v0", + "lidoApmAddress": "0x0cb113890b04B49455DfE06554e2D784598A29C9", + "lidoApmDeployTx": "0xfa66476569ecef5790f2d0634997b952862bbca56aa088f151b8049421eeb87b", + "lidoApmEnsName": "lidopm.eth", + "lidoApmEnsRegDurationSec": 94608000, + "lidoLocator": { "proxy": { - "address": "0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e", + "address": "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb", "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", - "deployTx": "0xef3eea1523d2161c2f36ba61e327e3520231614c055b8a88c7f5928d18e423ea", + "deployTx": "0x3a2910624533935cc8c21837b1705bcb159a760796930097016186be705cc455", "constructorArgs": [ "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", "0x" ] - }, - "implementation": { - "address": "0xA89Ea51FddE660f67d1850e03C9c9862d33Bc42c", - "contract": "contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol", - "deployTx": "0x5ab545276f78a72a432c3e971c96384973abfab6394e08cb077a006c25aef7a7", - "constructorArgs": [ - 12, - 1606824023, - "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb" - ], - "deployParameters": { - "consensusVersion": 1 - } + }, + "implementation": { + "address": "0x1D920cc5bACf7eE506a271a5259f2417CaDeCE1d", + "contract": "contracts/0.8.9/LidoLocator.sol", + "deployTx": "0xf90012ef0a40e47c909ab3a5b3503ecee78f6a9be134d1349a742e500d37ae33", + "constructorArgs": [ + [ + "0x852deD011285fe67063a08005c71a85690503Cee", + "0xC77F8768774E1c9244BEed705C4354f2113CFc09", + "0x388C818CA8B9251b393131C08a736A67ccB19297", + "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", + "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", + "0x9305c1Dbfe22c12c66339184C0025d7006f0f1cC", + "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", + "0xD15a672319Cf0352560eE76d9e89eAB0889046D3", + "0xFdDf38947aFB03C621C71b06C9C70bce73f12999", + "0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c", + "0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e", + "0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1", + "0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f", + "0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09" + ] + ] } }, - "depositSecurityModule": { - "address": "0xC77F8768774E1c9244BEed705C4354f2113CFc09", - "contract": "contracts/0.8.9/DepositSecurityModule.sol", - "deployTx": "0x21307a2321f167f99de11ccec86d7bdd8233481bbffa493e15c519ca8d662c4f", + "lidoTemplate": { + "contract": "contracts/0.4.24/template/LidoTemplate.sol", + "address": "0x752350797CB92Ad3BF1295Faf904B27585e66BF5", + "deployTx": "0xdcd4ebe028aa3663a1fe8bbc92ae8489045e29d2a6ef5284083d9be5c3fa5f19", "constructorArgs": [ - "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", - "0x00000000219ab540356cBB839Cbe05303d7705Fa", - "0xFdDf38947aFB03C621C71b06C9C70bce73f12999", - 150, - 25, - 6646 + "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA", + "0x7378ad1ba8f3c8e64bbb2a04473edd35846360f1", + "0x00000000000C2E074eC69A0dFb2997BA6C7d2e1e", + "0x909d05f384d0663ed4be59863815ab43b4f347ec", + "0x546aa2eae2514494eeadb7bbb35243348983c59d", + "0xa0BC4B67F5FacDE4E50EAFF48691Cfc43F4E280A" + ] + }, + "miniMeTokenFactoryAddress": "0x909d05f384d0663ed4be59863815ab43b4f347ec", + "networkId": 1, + "newDaoTx": "0x3feabd79e8549ad68d1827c074fa7123815c80206498946293d5373a160fd866", + "oracleDaemonConfig": { + "address": "0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09", + "contract": "contracts/0.8.9/OracleDaemonConfig.sol", + "deployTx": "0xa4f380b8806f5a504ef67fce62989e09be5a48bf114af63483c01c22f0c9a36f", + "constructorArgs": [ + "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", + [] ], "deployParameters": { - "maxDepositsPerBlock": 150, - "minDepositBlockDistance": 25, - "pauseIntentValidityPeriodBlocks": 6646 + "NORMALIZED_CL_REWARD_PER_EPOCH": 64, + "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, + "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, + "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 23, + "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, + "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 28800, + "PREDICTION_DURATION_IN_SLOTS": 50400, + "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350, + "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100 } }, "oracleReportSanityChecker": { @@ -434,26 +401,120 @@ "maxPositiveTokenRebase": 750000 } }, - "oracleDaemonConfig": { - "address": "0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09", - "contract": "contracts/0.8.9/OracleDaemonConfig.sol", - "deployTx": "0xa4f380b8806f5a504ef67fce62989e09be5a48bf114af63483c01c22f0c9a36f", - "constructorArgs": [ - "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", - [] - ], - "deployParameters": { - "NORMALIZED_CL_REWARD_PER_EPOCH": 64, - "NORMALIZED_CL_REWARD_MISTAKE_RATE_BP": 1000, - "REBASE_CHECK_NEAREST_EPOCH_DISTANCE": 1, - "REBASE_CHECK_DISTANT_EPOCH_DISTANCE": 23, - "VALIDATOR_DELAYED_TIMEOUT_IN_SLOTS": 7200, - "VALIDATOR_DELINQUENT_TIMEOUT_IN_SLOTS": 28800, - "PREDICTION_DURATION_IN_SLOTS": 50400, - "FINALIZATION_MAX_NEGATIVE_REBASE_EPOCH_SHIFT": 1350, - "NODE_OPERATOR_NETWORK_PENETRATION_THRESHOLD_BP": 100 + "stakingRouter": { + "proxy": { + "address": "0xFdDf38947aFB03C621C71b06C9C70bce73f12999", + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "deployTx": "0xb8620f04a8db6bb52cfd0978c6677a5f16011e03d4622e5d660ea6ba34c2b122", + "constructorArgs": [ + "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", + "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", + "0x" + ] + }, + "implementation": { + "address": "0xD8784e748f59Ba711fB5643191Ec3fAdD50Fb6df", + "contract": "contracts/0.8.9/StakingRouter.sol", + "deployTx": "0xd6d489f22203c835da6027ff0e532a01a08f36f0fda6c7c0a42e471ae3b3c461", + "constructorArgs": [ + "0x00000000219ab540356cBB839Cbe05303d7705Fa" + ] + } + }, + "validatorsExitBusOracle": { + "proxy": { + "address": "0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e", + "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", + "deployTx": "0xef3eea1523d2161c2f36ba61e327e3520231614c055b8a88c7f5928d18e423ea", + "constructorArgs": [ + "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", + "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", + "0x" + ] + }, + "implementation": { + "address": "0xA89Ea51FddE660f67d1850e03C9c9862d33Bc42c", + "contract": "contracts/0.8.9/oracle/ValidatorsExitBusOracle.sol", + "deployTx": "0x5ab545276f78a72a432c3e971c96384973abfab6394e08cb077a006c25aef7a7", + "constructorArgs": [ + 12, + 1606824023, + "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb" + ], + "deployParameters": { + "consensusVersion": 1 + } } }, + "vestingParams": { + "unvestedTokensAmount": "363197500000000000000000000", + "holders": { + "0x9Bb75183646e2A0DC855498bacD72b769AE6ceD3": "20000000000000000000000000", + "0x0f89D54B02ca570dE82F770D33c7B7Cf7b3C3394": "25000000000000000000000000", + "0xe49f68B9A01d437B0b7ea416376a7AB21532624e": "2282000000000000000000000", + "0xb842aFD82d940fF5D8F6EF3399572592EBF182B0": "17718000000000000000000000", + "0x9849c2C1B73B41AEE843A002C332a2d16aaaB611": "10000000000000000000000000", + "0x96481cb0fcd7673254ebccc42dce9b92da10ea04": "5000000000000000000000000", + "0xB3DFe140A77eC43006499CB8c2E5e31975caD909": "7500000000000000000000000", + "0x61C808D82A3Ac53231750daDc13c777b59310bD9": "20000000000000000000000000", + "0x447f95026107aaed7472A0470931e689f51e0e42": "20000000000000000000000000", + "0x6ae83EAB68b7112BaD5AfD72d6B24546AbFF137D": "2222222220000000000000000", + "0xC24da173A250e9Ca5c54870639EbE5f88be5102d": "17777777780000000000000000", + "0x1f3813fE7ace2a33585F1438215C7F42832FB7B3": "20000000000000000000000000", + "0x82a8439BA037f88bC73c4CCF55292e158A67f125": "7000000000000000000000000", + "0x91715128a71c9C734CDC20E5EdEEeA02E72e428E": "15000000000000000000000000", + "0xB5587A54fF7022AC218438720BDCD840a32f0481": "5000000000000000000000000", + "0xf5fb27b912d987b5b6e02a1b1be0c1f0740e2c6f": "2000000000000000000000000", + "0x8b1674a617F103897Fb82eC6b8EB749BA0b9765B": "15000000000000000000000000", + "0x48Acf41D10a063f9A6B718B9AAd2e2fF5B319Ca2": "5000000000000000000000000", + "0x7eE09c11D6Dc9684D6D5a4C6d333e5b9e336bb6C": "10000000000000000000000000", + "0x11099aC9Cc097d0C9759635b8e16c6a91ECC43dA": "2000000000000000000000000", + "0x3d4AD2333629eE478E4f522d60A56Ae1Db5D3Cdb": "5000000000000000000000000", + "0xd5eCB56c6ca8f8f52D2DB4dC1257d6161cf3Da29": "100000000000000000000000", + "0x7F5e13a815EC9b4466d283CD521eE9829e7F6f0e": "200000000000000000000000", + "0x2057cbf2332ab2697a52B8DbC85756535d577e32": "500000000000000000000000", + "0x537dfB5f599A3d15C50E2d9270e46b808A52559D": "1000000000000000000000000", + "0x33c4c38e96337172d3de39df82060de26b638c4b": "550000000000000000000000", + "0x6094E1Dd925caCe56Fa501dAEc02b01a49E55770": "300000000000000000000000", + "0x977911f476B28f9F5332fA500387deE81e480a44": "40000000000000000000000", + "0x66d3FdA643320c6DddFBba39e635288A5dF75FB9": "200000000000000000000000", + "0xDFC0ae54af992217100845597982274A26d8CB28": "12500000000000000000000", + "0x32254b28F793CC18B3575C86c61fE3D7421cbbef": "500000000000000000000000", + "0x0Bf5566fB5F1f9934a3944AEF128a1b1a8cF3f17": "50000000000000000000000", + "0x1d3Fa8bf35870271115B997b8eCFe18529422a16": "50000000000000000000000", + "0x366B9729C5A89EC4618A0AB95F832E411eaE8237": "200000000000000000000000", + "0x20921142A35c89bE5D002973d2D6B72d9a625FB0": "200000000000000000000000", + "0x663b91628674846e8D1CBB779EFc8202d86284E2": "7500000000000000000000000", + "0xa6829908f728C6bC5627E2aFe93a0B71E978892D": "300000000000000000000000", + "0x9575B7859DF77F2A0EF034339b80e24dE44AB3F6": "200000000000000000000000", + "0xEe217c23131C6F055F7943Ef1f80Bec99dF35244": "400000000000000000000000", + "0xadde043f556d1083f060A7298E79eaBa08A3a077": "400000000000000000000000", + "0xaFBEfC8401c885A0bb6Ea6Af43f592A015433C65": "200000000000000000000000", + "0x8a62A63b877877bd5B1209B9b67F3d2685284268": "200000000000000000000000", + "0x62Ac238Ac055017DEcAb645E7E56176749f316d0": "200000000000000000000000", + "0x55Bc991b2edF3DDb4c520B222bE4F378418ff0fA": "5000000000000000000000000", + "0x8D689476EB446a1FB0065bFFAc32398Ed7F89165": "10000000000000000000000000", + "0x083fc10cE7e97CaFBaE0fE332a9c4384c5f54E45": "5000000000000000000000000", + "0x0028E24e4Fe5184792Bd0Cf498C11AE5b76185f5": "5000000000000000000000000", + "0xFe45baf0F18c207152A807c1b05926583CFE2e4b": "5000000000000000000000000", + "0x4a7C6899cdcB379e284fBFD045462e751DA4C7cE": "5000000000000000000000000", + "0xD7f0dDcBb0117A53e9ff2cad814B8B810a314f59": "5000000000000000000000000", + "0xb8d83908AAB38a159F3dA47a59d84dB8e1838712": "50000000000000000000000000", + "0xA2dfC431297aee387C05bEEf507E5335E684FbCD": "50000000000000000000000000", + "0x1597D19659F3DE52ABd475F7D2314DCca29359BD": "50000000000000000000000000", + "0x695C388153bEa0fbE3e1C049c149bAD3bc917740": "50000000000000000000000000", + "0x945755dE7EAc99008c8C57bdA96772d50872168b": "50000000000000000000000000", + "0xFea88380bafF95e85305419eB97247981b1a8eEE": "30000000000000000000000000", + "0xAD4f7415407B83a081A0Bee22D05A8FDC18B42da": "50000000000000000000000000", + "0x68335B3ac272C8238b722963368F87dE736b64D6": "5000000000000000000000000", + "0xfA2Ab7C161Ef7F83194498f36ca7aFba90FD08d4": "5000000000000000000000000", + "0x58A764028350aB15899fDCcAFFfd3940e602CEEA": "10000000000000000000000000" + }, + "start": 1639785600, + "cliff": 1639785600, + "end": 1671321600, + "revokable": false + }, "withdrawalQueueERC721": { "proxy": { "address": "0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1", @@ -494,73 +555,12 @@ ] } }, - "dummyEmptyContract": { - "address": "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", - "contract": "contracts/0.8.9/test_helpers/DummyEmptyContract.sol", - "deployTx": "0x9d76786f639bd18365f10c087444761db5dafd0edc85c5c1a3e90219f2d1331d", - "constructorArgs": [] - }, - "eip712StETH": { - "address": "0x8F73e4C2A6D852bb4ab2A45E6a9CF5715b3228B7", - "contract": "contracts/0.8.9/EIP712StETH.sol", - "deployTx": "0xecb5010620fb13b0e2bbc98b8a0c82de0d7385491452cd36cf303cd74216ed91", + "wstETH": { + "address": "0x7f39C581F595B53c5cb19bD0b3f8dA6c935E2Ca0", + "contract": "contracts/0.6.12/WstETH.sol", + "deployTx": "0xaf2c1a501d2b290ef1e84ddcfc7beb3406f8ece2c46dee14e212e8233654ff05", "constructorArgs": [ "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84" ] - }, - "stakingRouter": { - "proxy": { - "address": "0xFdDf38947aFB03C621C71b06C9C70bce73f12999", - "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", - "deployTx": "0xb8620f04a8db6bb52cfd0978c6677a5f16011e03d4622e5d660ea6ba34c2b122", - "constructorArgs": [ - "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", - "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", - "0x" - ] - }, - "implementation": { - "address": "0xD8784e748f59Ba711fB5643191Ec3fAdD50Fb6df", - "contract": "contracts/0.8.9/StakingRouter.sol", - "deployTx": "0xd6d489f22203c835da6027ff0e532a01a08f36f0fda6c7c0a42e471ae3b3c461", - "constructorArgs": [ - "0x00000000219ab540356cBB839Cbe05303d7705Fa" - ] - } - }, - "lidoLocator": { - "proxy": { - "address": "0xC1d0b3DE6792Bf6b4b37EccdcC24e45978Cfd2Eb", - "contract": "contracts/0.8.9/proxy/OssifiableProxy.sol", - "deployTx": "0x3a2910624533935cc8c21837b1705bcb159a760796930097016186be705cc455", - "constructorArgs": [ - "0x6F6541C2203196fEeDd14CD2C09550dA1CbEDa31", - "0x8Ea83AD72396f1E0cD2f8E72b1461db8Eb6aF7B5", - "0x" - ] - }, - "implementation": { - "address": "0x1D920cc5bACf7eE506a271a5259f2417CaDeCE1d", - "contract": "contracts/0.8.9/LidoLocator.sol", - "deployTx": "0xf90012ef0a40e47c909ab3a5b3503ecee78f6a9be134d1349a742e500d37ae33", - "constructorArgs": [ - [ - "0x852deD011285fe67063a08005c71a85690503Cee", - "0xC77F8768774E1c9244BEed705C4354f2113CFc09", - "0x388C818CA8B9251b393131C08a736A67ccB19297", - "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", - "0xae7ab96520DE3A18E5e111B5EaAb095312D7fE84", - "0x9305c1Dbfe22c12c66339184C0025d7006f0f1cC", - "0x442af784A788A5bd6F42A01Ebe9F287a871243fb", - "0xD15a672319Cf0352560eE76d9e89eAB0889046D3", - "0xFdDf38947aFB03C621C71b06C9C70bce73f12999", - "0x3e40D73EB977Dc6a537aF587D48316feE66E9C8c", - "0x0De4Ea0184c2ad0BacA7183356Aea5B8d5Bf5c6e", - "0x889edC2eDab5f40e902b864aD4d7AdE8E412F9B1", - "0xB9D7934878B5FB9610B3fE8A5e441e8fad7E293f", - "0xbf05A929c3D7885a6aeAd833a992dA6E5ac23b09" - ] - ] - } } } diff --git a/scripts/build-apps-frontend.js b/scripts/build-apps-frontend.js deleted file mode 100644 index 8c36ee2df..000000000 --- a/scripts/build-apps-frontend.js +++ /dev/null @@ -1,135 +0,0 @@ -const fs = require('fs') -const path = require('path') -const chalk = require('chalk') -const { hash: namehash } = require('eth-ens-namehash') -const buidlerTaskNames = require('@nomiclabs/buidler/builtin-tasks/task-names') -const hardhatTaskNames = require('hardhat/builtin-tasks/task-names') - - -const runOrWrapScript = require('./helpers/run-or-wrap-script') -const { log, logSplitter, logWideSplitter, logHeader} = require('./helpers/log') -const { exec, execLive } = require('./helpers/exec') -const { readJSON } = require('./helpers/fs') - -// this is needed for the next two `require`s to work, some kind of typescript path magic -require('@aragon/buidler-aragon/dist/bootstrap-paths') - -const { generateArtifacts } = require('@aragon/buidler-aragon/dist/src/utils/artifact/generateArtifacts') - -const { APP_NAMES } = require('./constants') -const VALID_APP_NAMES = Object.entries(APP_NAMES).map((e) => e[1]) - - -const APPS = process.env.APPS || '*' -const APPS_DIR_PATH = process.env.APPS_DIR_PATH || path.resolve(__dirname, '..', 'apps') -const LIDO_APM_ENS_NAME = 'lidopm.eth' - -async function publishAppFrontends({ - web3, - appsDirPath = APPS_DIR_PATH, - appDirs = APPS -}) { - const netId = await web3.eth.net.getId() - - logWideSplitter() - log(`Network ID: ${chalk.yellow(netId)}`) - - appsDirPath = path.resolve(appsDirPath) - - if (appDirs && appDirs !== '*') { - appDirs = appDirs.split(',') - } else { - appDirs = fs.readdirSync(appsDirPath) - } - - const cwd = process.cwd() - - for (const appDir of appDirs) { - let app - try { - app = await publishAppFrotnend(appDir, appsDirPath, LIDO_APM_ENS_NAME) - } finally { - process.chdir(cwd) - } - } -} - -async function publishAppFrotnend(appDir, appsDirPath, lidoApmEnsName) { - logHeader(`Publishing frontend of the app '${appDir}'`) - - const appRootPath = path.resolve(appsDirPath, appDir) - const { appFullName, contractPath } = await readArappJSON(appRootPath, network.name) - - log(`App full name: ${chalk.yellow(appFullName)}`) - - if (!appFullName.endsWith('.' + lidoApmEnsName)) { - throw new Error(`app full name is not a subdomain of the Lido APM ENS domain ${lidoApmEnsName}`) - } - - const appName = appFullName.substring(0, appFullName.indexOf('.')) - log(`App name: ${chalk.yellow(appName)}`) - - if (VALID_APP_NAMES.indexOf(appName) === -1) { - throw new Error(`app name is not recognized; valid app names are: ${VALID_APP_NAMES.join(', ')}`) - } - - const appId = namehash(appFullName) - log(`App ID: ${chalk.yellow(appId)}`) - - logSplitter() - - log('Removing output directory...') - const distPath = path.join(appRootPath, 'dist') - await exec(`rm -rf ${distPath}`) - - await execLive('yarn', { - args: ['build'], - cwd: path.join(appRootPath, 'app') - }) - - logSplitter() - log('Generating artifacts...') - - process.chdir(appRootPath) - - const wrappedRun = async (taskName, ...args) => { - if (taskName !== buidlerTaskNames.TASK_FLATTEN_GET_FLATTENED_SOURCE) { - return await run(taskName) - } - // buidler-aragon tries to get flattened source code of all contracts and fails to - // parce Solidity syntax newer than 0.4 (which we have in non-Aragon contracts), so - // here we're flattening only the app's dependency graph instead - return await run(hardhatTaskNames.TASK_FLATTEN_GET_FLATTENED_SOURCE, { - files: [contractPath] - }) - } - - const bre = { artifacts, network, run: wrappedRun } - await generateArtifacts(distPath, bre) - - logSplitter() - - log(`App dist: ${chalk.yellow(distPath)}`) - -} - -async function readArappJSON(appRoot, netName) { - const arappJSON = await readJSON(path.join(appRoot, 'arapp.json')) - const appFullName = getAppName(arappJSON, netName) - const contractPath = path.resolve(appRoot, arappJSON.path) - return { appFullName, contractPath } -} - -function getAppName(arappJSON, netName) { - const { environments } = arappJSON - if (!environments) { - return null - } - if (environments[netName]) { - // NOTE: assuming that Aragon environment is named after the network - return environments[netName].appName - } - return (environments.default || {}).appName || null -} - -module.exports = runOrWrapScript(publishAppFrontends, module) diff --git a/scripts/hardhat-tasks.js b/scripts/hardhat-tasks.js index e02d6b584..aa9936ece 100644 --- a/scripts/hardhat-tasks.js +++ b/scripts/hardhat-tasks.js @@ -14,7 +14,7 @@ task(`tx`, `Performs a transaction`) const data = JSON.parse(require('fs').readFileSync(file)) if (fromArg) { - console.error(`Using the sender address provided via the commandline argument: ${fromArg}`) + console.error(`Using the sender address provided via the command line argument: ${fromArg}`) data.from = fromArg } @@ -66,7 +66,7 @@ task(`tx`, `Performs a transaction`) if (!receipt.status) { console.error('====================') - console.error(`An error occured:`, receipt.error) + console.error(`An error occurred:`, receipt.error) } if (receipt.contractAddress) { @@ -98,7 +98,7 @@ task('ens-assign', `Assigns/transfers ENS node owner`) if (owner.toLowerCase() !== params.to.toLowerCase()) { throw new Error(`the owner '${owner}' is different from the expected '${params.to}'`) } - console.error(chalk.green('✓'), `the ownsership was successfully updated`) + console.error(chalk.green('✓'), `the ownership was successfully updated`) }) task('list-accts', `List accounts and their balances`) diff --git a/scripts/helpers/persisted-network-state.js b/scripts/helpers/persisted-network-state.js index 5d9b90c3f..523335037 100644 --- a/scripts/helpers/persisted-network-state.js +++ b/scripts/helpers/persisted-network-state.js @@ -88,8 +88,18 @@ function _readNetworkStateFile(fileName, netId) { return readStateFile(fileName) } +function sortKeysAlphabetically(object) { + const sortedObject = {} + const sortedKeys = Object.keys(object).sort() + for (const key of sortedKeys) { + sortedObject[key] = object[key] + } + return sortedObject +} + function _writeNetworkStateFile(fileName, state) { - const data = JSON.stringify(state, null, ' ') + const stateSorted = sortKeysAlphabetically(state) + const data = JSON.stringify(stateSorted, null, ' ') fs.writeFileSync(fileName, data + '\n', 'utf8') } diff --git a/scripts/scratch/checks/scratch-acceptance-test.js b/scripts/scratch/checks/scratch-acceptance-test.js index b40146336..f1b6c198c 100644 --- a/scripts/scratch/checks/scratch-acceptance-test.js +++ b/scripts/scratch/checks/scratch-acceptance-test.js @@ -1,24 +1,12 @@ -const { assertBn } = require('@aragon/contract-helpers-test/src/asserts') -const { getEvents, getEventArgument, ZERO_ADDRESS } = require('@aragon/contract-helpers-test') - - +const { getEventArgument, ZERO_ADDRESS } = require('@aragon/contract-helpers-test') const runOrWrapScript = require('../../helpers/run-or-wrap-script') const { log, yl } = require('../../helpers/log') -const { hexConcat, pad, ETH, tokens, div15, StETH, shares, prepIdsCountsPayload, e27, e18, e9, toBN } = require('../../../test/helpers/utils') +const { hexConcat, pad, ETH, e27, e18, toBN } = require('../../../test/helpers/utils') const { reportOracle } = require('../../../test/helpers/oracle') const { getBalance, advanceChainTime } = require('../../../test/helpers/blockchain') -const { readNetworkState, assertRequiredNetworkState, readStateFile } = require('../../helpers/persisted-network-state') -const { assertRole, assertMissingRole } = require('../../helpers/aragon') -const { assertLastEvent, assertSingleEvent } = require('../../helpers/events') +const { assertRequiredNetworkState, readStateFile } = require('../../helpers/persisted-network-state') const { assert } = require('../../../test/helpers/assert') -const { percentToBP } = require('../../helpers/index') -const { resolveEnsAddress } = require('../../components/ens') - -const { APP_NAMES } = require('../../constants') -const { assertAPMRegistryPermissions } = require('./apm') -const { assertInstalledApps } = require('./apps') -const { assertVesting } = require('./dao-token') const REQUIRED_NET_STATE = [ 'ensAddress', @@ -29,17 +17,12 @@ const REQUIRED_NET_STATE = [ 'lidoTemplate' ] -const STETH_TOKEN_NAME = 'Liquid staked Ether 2.0' -const STETH_TOKEN_SYMBOL = 'stETH' -const STETH_TOKEN_DECIMALS = 18 const UNLIMITED = 1000000000 const CURATED_MODULE_ID = 1 const CALLDATA = '0x0' const MAX_DEPOSITS = 150 const ADDRESS_1 = '0x0000000000000000000000000000000000000001' const ADDRESS_2 = '0x0000000000000000000000000000000000000002' -const ADDRESS_3 = '0x0000000000000000000000000000000000000003' -const ADDRESS_4 = '0x0000000000000000000000000000000000000004' const MANAGE_MEMBERS_AND_QUORUM_ROLE = web3.utils.keccak256('MANAGE_MEMBERS_AND_QUORUM_ROLE') @@ -85,15 +68,12 @@ async function checkLDOCanBeTransferred(ldo, state) { async function prepareProtocolForSubmitDepositReportWithdrawalFlow(protocol, state, oracleMember1, oracleMember2) { const { - stakingRouter, lido, voting, agent, nodeOperatorsRegistry, depositSecurityModule, - accountingOracle, hashConsensusForAO, - elRewardsVault, withdrawalQueue, } = protocol @@ -122,8 +102,6 @@ async function prepareProtocolForSubmitDepositReportWithdrawalFlow(protocol, sta await nodeOperatorsRegistry.setNodeOperatorStakingLimit(0, UNLIMITED, { from: voting.address }) await nodeOperatorsRegistry.setNodeOperatorStakingLimit(1, UNLIMITED, { from: voting.address }) - - const quorum = 2 await hashConsensusForAO.grantRole(MANAGE_MEMBERS_AND_QUORUM_ROLE, agent.address, { from: agent.address }) await hashConsensusForAO.addMember(oracleMember1.address, quorum, { from: agent.address }) @@ -135,11 +113,8 @@ async function prepareProtocolForSubmitDepositReportWithdrawalFlow(protocol, sta async function checkSubmitDepositReportWithdrawal(protocol, state, user1, user2) { const { - stakingRouter, lido, - voting, agent, - nodeOperatorsRegistry, depositSecurityModule, accountingOracle, hashConsensusForAO, @@ -165,15 +140,6 @@ async function checkSubmitDepositReportWithdrawal(protocol, state, user1, user2) assert.equals((await lido.getBeaconStat()).depositedValidators, 1) - // const checkStat = async ({ depositedValidators, beaconValidators, beaconBalance }) => { - // const stat = (await lido.getBeaconStat()).depositedValidators - // assert.equals(stat.depositedValidators, depositedValidators, 'depositedValidators check') - // assert.equals(stat.beaconValidators, beaconValidators, 'beaconValidators check') - // assert.equals(stat.beaconBalance, beaconBalance, 'beaconBalance check') - // } - // await checkStat({ depositedValidators: 1, beaconValidators: 0, beaconBalance: ETH(0) }) - - const latestBlockTimestamp = (await ethers.provider.getBlock('latest')).timestamp const initialEpoch = Math.floor((latestBlockTimestamp - chainSpec.genesisTime) / (chainSpec.slotsPerEpoch * chainSpec.secondsPerSlot)) @@ -182,14 +148,8 @@ async function checkSubmitDepositReportWithdrawal(protocol, state, user1, user2) const elRewardsVaultBalance = await web3.eth.getBalance(elRewardsVault.address) - // const numValidators = 1 - // const clBalance = ETH(35) - // await pushOracleReport(hashConsensusForAO, accountingOracle, 1, ETH(35), elRewardsVaultBalance) - // await reportOracle(hashConsensusForAO, accountingOracle, { numValidators, clBalance, elRewardsVaultBalance }) const withdrawalAmount = ETH(1) - // const finalUser1StethAmount = '36699999999999999999' - // assert.equals(await lido.balanceOf(user1.address), finalStethAmount) await lido.approve(withdrawalQueue.address, withdrawalAmount, { from: user1.address }) const receipt = await withdrawalQueue.requestWithdrawals([withdrawalAmount], user1.address, { from: user1.address }) diff --git a/scripts/staking-router.js b/scripts/staking-router.js index 32abf88b7..c43de26b6 100644 --- a/scripts/staking-router.js +++ b/scripts/staking-router.js @@ -62,7 +62,7 @@ let StakingRouter = { last_distribute: 0, // - // fucntions + // functions // getTotalKeys: function() { @@ -262,7 +262,7 @@ function main() { let allocation = StakingRouter.allocation console.log('allocation1', allocation) - console.log('last distibute', StakingRouter.last_distribute) + console.log('last distribute', StakingRouter.last_distribute) //community deposited communityModule.deposit(3) @@ -283,7 +283,7 @@ function main() { //try to get next deposit by por from solo - console.log('try depoist curated again 150 keys') + console.log('try deposit curated again 150 keys') curatedModule.deposit(150) allocation = StakingRouter.allocation