diff --git a/cmd/blockchaincmd/deploy.go b/cmd/blockchaincmd/deploy.go index d6d9713b8..80d22ab4e 100644 --- a/cmd/blockchaincmd/deploy.go +++ b/cmd/blockchaincmd/deploy.go @@ -10,6 +10,8 @@ import ( "os" "path/filepath" + "golang.org/x/mod/semver" + validatorManagerSDK "github.com/ava-labs/avalanche-cli/sdk/validatormanager" "github.com/ava-labs/avalanche-cli/pkg/blockchain" @@ -472,6 +474,20 @@ func deployBlockchain(cmd *cobra.Command, args []string) error { ux.Logger.PrintToUser("Deploying %s to %s", chains, network.Name()) + if network.Kind == models.Fuji && userProvidedAvagoVersion == constants.DefaultAvalancheGoVersion { + latestAvagoVersion, err := app.Downloader.GetLatestReleaseVersion( + constants.AvaLabsOrg, + constants.AvalancheGoRepoName, + "", + ) + if err != nil { + return err + } + versionComparison := semver.Compare(constants.FujiAvalancheGoV113, latestAvagoVersion) + if versionComparison == 1 { + userProvidedAvagoVersion = constants.FujiAvalancheGoV113 + } + } if network.Kind == models.Local { app.Log.Debug("Deploy local") diff --git a/cmd/nodecmd/local.go b/cmd/nodecmd/local.go index e4b39c1f9..f8bb8463a 100644 --- a/cmd/nodecmd/local.go +++ b/cmd/nodecmd/local.go @@ -8,6 +8,8 @@ import ( "strings" "time" + "golang.org/x/mod/semver" + "github.com/ava-labs/avalanche-cli/pkg/binutils" "github.com/ava-labs/avalanche-cli/pkg/blockchain" "github.com/ava-labs/avalanche-cli/pkg/cobrautils" @@ -183,6 +185,21 @@ func localStartNode(_ *cobra.Command, args []string) error { StakingCertKeyPath: stakingCertKeyPath, StakingTLSKeyPath: stakingTLSKeyPath, } + // TODO: remove this check for releases above v1.8.7, once v1.13.0-fuji avalanchego is latest release + if globalNetworkFlags.UseFuji && useCustomAvalanchegoVersion == "" { + latestAvagoVersion, err := app.Downloader.GetLatestReleaseVersion( + constants.AvaLabsOrg, + constants.AvalancheGoRepoName, + "", + ) + if err != nil { + return err + } + versionComparison := semver.Compare(constants.FujiAvalancheGoV113, latestAvagoVersion) + if versionComparison == 1 { + useCustomAvalanchegoVersion = constants.FujiAvalancheGoV113 + } + } if useCustomAvalanchegoVersion != "" { latestAvagoPreReleaseVersion = false latestAvagoReleaseVersion = false diff --git a/pkg/constants/constants.go b/pkg/constants/constants.go index 69ac525bf..52e3911bc 100644 --- a/pkg/constants/constants.go +++ b/pkg/constants/constants.go @@ -81,7 +81,7 @@ const ( LatestPreReleaseVersionTag = "latest-prerelease" LatestReleaseVersionTag = "latest" - DefaultAvalancheGoVersion = LatestPreReleaseVersionTag + DefaultAvalancheGoVersion = LatestReleaseVersionTag FujiAPIEndpoint = "https://api.avax-test.network" MainnetAPIEndpoint = "https://api.avax.network" @@ -292,6 +292,7 @@ const ( NotAvailableLabel = "Not available" BackendCmd = "avalanche-cli-backend" + FujiAvalancheGoV113 = "v1.13.0-fuji" AvalancheGoCompatibilityURL = "https://raw.githubusercontent.com/ava-labs/avalanchego/master/version/compatibility.json" SubnetEVMRPCCompatibilityURL = "https://raw.githubusercontent.com/ava-labs/subnet-evm/master/compatibility.json"