Skip to content

Commit 77166db

Browse files
Granite Support (#2965)
* granite devnet * granite * add connection settings * granite e2e * granite * granite alt (#2966) * update tooling sdk * fixes * remove test * lint * lint * merge error * Remove apm (#2969) * update granite dependencies * remove apm * remove apm * update version * update version url * verified granite * update latest.json * update sig agg * update sig agg * lint * lint * fix go mod --------- Signed-off-by: sukantoraymond <[email protected]> * Update latest dependencies (#2973) * update granite dependencies * remove apm * remove apm * update version * update version url * verified granite * update latest.json * update sig agg * update sig agg * signature aggregator dependency * update subnet evm dependencies * update sig agg for fuji * change fuji back * handle sig agg version * handle p chain height * update sig agg version * update fuji version * lint * lint * update latest * update avalanche-tooling-sdk-go dependency * update relayer * fix go mod * update relayer dependency * Fix E2E (#2980) * e2e * remove print precompiles * fix e2e * e2e * update binary * fix e2e * fix e2e * update e2e * fix * update e2e * fix lint * lint * fix e2e a bit more * more e2e fix * unit * unit test * e2e * starting fixing some e2e * update e2e * update go mod * remove wait times * lint * lint * fix e2e * activate granite on c-chain * bump times in pregenerates genesis * remove mixed sov/nonsov e2e relayer case * Use latest version relayer (#2981) * relayer version * update cache logic * lint * lint * Remove granite devnet support (#2982) * relayer version * update cache logic * lint * lint * remove granite devnet support * lint --------- Co-authored-by: Felipe Madero <[email protected]> * lint --------- Signed-off-by: sukantoraymond <[email protected]> Co-authored-by: Felipe Madero <[email protected]> * update url * update url * fix e2e * update versions * revert url * update main --------- Signed-off-by: sukantoraymond <[email protected]> Co-authored-by: felipemadero <[email protected]>
1 parent bf1aa87 commit 77166db

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

80 files changed

+1220
-3326
lines changed

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
1.9.2
1+
1.9.3

cmd/blockchaincmd/add_validator.go

Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -631,6 +631,28 @@ func CallAddValidator(
631631
}
632632
}
633633
}
634+
635+
epochDuration := 30 * time.Second
636+
637+
// Get P-Chain's current epoch for RegisterL1ValidatorMessage (signed by L1, verified by P-Chain)
638+
pChainEpoch, err := utils.GetCurrentEpoch(network.Endpoint, "P")
639+
if err != nil {
640+
return fmt.Errorf("failure getting p-chain current epoch: %w", err)
641+
}
642+
epochTime := time.Unix(pChainEpoch.StartTime, 0)
643+
elapsed := time.Since(epochTime)
644+
if elapsed < epochDuration {
645+
time.Sleep(epochDuration - elapsed)
646+
}
647+
_, _, err = deployer.PChainTransfer(kc.Addresses().List()[0], 1)
648+
if err != nil {
649+
return fmt.Errorf("could not sent dummy transfer on p-chain: %w", err)
650+
}
651+
pChainEpoch, err = utils.GetCurrentEpoch(network.Endpoint, "P")
652+
if err != nil {
653+
return fmt.Errorf("failure getting p-chain current epoch: %w", err)
654+
}
655+
634656
ctx, cancel := sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
635657
defer cancel()
636658

@@ -660,6 +682,7 @@ func CallAddValidator(
660682
sc.UseACP99,
661683
initiateTxHash,
662684
signatureAggregatorEndpoint,
685+
pChainEpoch.PChainHeight,
663686
)
664687
if err != nil {
665688
return err
@@ -688,6 +711,18 @@ func CallAddValidator(
688711
}
689712
}
690713

714+
client, err := evm.GetClient(validatorManagerRPCEndpoint)
715+
if err != nil {
716+
return fmt.Errorf("failure connecting to validator manager L1: %w", err)
717+
}
718+
if err := client.SetupProposerVM(signer); err != nil {
719+
return fmt.Errorf("failure setting proposer VM on L1: %w", err)
720+
}
721+
l1Epoch, err := utils.GetCurrentL1Epoch(validatorManagerRPCEndpoint, validatorManagerBlockchainID.String())
722+
if err != nil {
723+
return fmt.Errorf("failure getting l1 current epoch: %w", err)
724+
}
725+
691726
ctx, cancel = sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
692727
defer cancel()
693728
rawTx, err = validatormanager.FinishValidatorRegistration(
@@ -704,6 +739,7 @@ func CallAddValidator(
704739
validatorManagerBlockchainID,
705740
validatorManagerAddress,
706741
signatureAggregatorEndpoint,
742+
l1Epoch.PChainHeight,
707743
)
708744
if err != nil {
709745
return err

cmd/blockchaincmd/blockchain.go

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,12 +44,8 @@ manage your Blockchain configurations and live deployments.`,
4444
cmd.AddCommand(newExportCmd())
4545
// blockchain import
4646
cmd.AddCommand(newImportCmd())
47-
// blockchain publish
48-
cmd.AddCommand(newPublishCmd())
4947
// blockchain upgrade
5048
cmd.AddCommand(upgradecmd.NewCmd(app))
51-
// blockchain stats
52-
cmd.AddCommand(newStatsCmd())
5349
// blockchain configure
5450
cmd.AddCommand(newConfigureCmd())
5551
// blockchain VMID

cmd/blockchaincmd/change_weight.go

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -418,6 +418,11 @@ func changeWeightACP99(
418418
}
419419
}
420420
}
421+
// Get P-Chain's current epoch for SetL1ValidatorWeightMessage (signed by L1, verified by P-Chain)
422+
pChainEpoch, err := utils.GetCurrentEpoch(network.Endpoint, "P")
423+
if err != nil {
424+
return fmt.Errorf("failure getting p-chain current epoch: %w", err)
425+
}
421426
ctx, cancel := sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
422427
defer cancel()
423428
signedMessage, validationID, rawTx, err := validatormanager.InitValidatorWeightChange(
@@ -435,6 +440,7 @@ func changeWeightACP99(
435440
weight,
436441
initiateTxHash,
437442
signatureAggregatorEndpoint,
443+
pChainEpoch.PChainHeight,
438444
)
439445
if err != nil {
440446
return err
@@ -475,6 +481,11 @@ func changeWeightACP99(
475481
}
476482
}
477483
}
484+
// Get L1's current epoch for L1ValidatorWeightMessage (signed by P-Chain, verified by L1)
485+
l1Epoch, err := utils.GetCurrentL1Epoch(validatorManagerRPCEndpoint, validatorManagerBlockchainID.String())
486+
if err != nil {
487+
return fmt.Errorf("failure getting l1 current epoch: %w", err)
488+
}
478489

479490
ctx, cancel = sdkutils.GetTimedContext(constants.EVMEventLookupTimeout)
480491
defer cancel()
@@ -493,6 +504,7 @@ func changeWeightACP99(
493504
signedMessage,
494505
newWeight,
495506
signatureAggregatorEndpoint,
507+
l1Epoch.PChainHeight,
496508
)
497509
if err != nil {
498510
return err

cmd/blockchaincmd/create.go

Lines changed: 31 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@ import (
1212
"strings"
1313
"unicode"
1414

15+
"github.com/ava-labs/avalanche-cli/pkg/networkoptions"
16+
17+
"github.com/ava-labs/subnet-evm/params/extras"
18+
1519
"github.com/ava-labs/avalanche-cli/cmd/flags"
1620
"github.com/ava-labs/avalanche-cli/pkg/cobrautils"
1721
"github.com/ava-labs/avalanche-cli/pkg/constants"
@@ -59,6 +63,13 @@ type CreateFlags struct {
5963
proxyContractOwner string
6064
enableDebugging bool
6165
useACP99 bool
66+
Network networkoptions.NetworkFlags
67+
}
68+
69+
var createNetworkOptions = []networkoptions.NetworkOption{
70+
networkoptions.Local,
71+
networkoptions.Fuji,
72+
networkoptions.Mainnet,
6273
}
6374

6475
var (
@@ -97,8 +108,9 @@ configuration, pass the -f flag.`,
97108
RunE: createBlockchainConfig,
98109
PersistentPostRun: handlePostRun,
99110
}
111+
networkoptions.AddNetworkFlagsToCmd(cmd, &createFlags.Network, true, createNetworkOptions)
100112
cmd.Flags().StringVar(&genesisPath, "genesis", "", "file path of genesis to use")
101-
cmd.Flags().BoolVarP(&forceCreate, forceFlag, "f", false, "overwrite the existing configuration if one exists")
113+
cmd.Flags().BoolVar(&forceCreate, forceFlag, false, "overwrite the existing configuration if one exists")
102114
cmd.Flags().BoolVar(&createFlags.enableDebugging, "debug", true, "enable blockchain debugging")
103115

104116
sovGroup := flags.RegisterFlagGroup(cmd, "Subnet-Only-Validators (SOV) Flags", "show-sov-flags", true, func(set *pflag.FlagSet) {
@@ -280,6 +292,19 @@ func createBlockchainConfig(cmd *cobra.Command, args []string) error {
280292
}
281293
}
282294

295+
network, err := networkoptions.GetNetworkFromCmdLineFlags(
296+
app,
297+
"",
298+
createFlags.Network,
299+
false,
300+
false,
301+
createNetworkOptions,
302+
"",
303+
)
304+
if err != nil {
305+
return err
306+
}
307+
283308
if vmType == models.SubnetEvm {
284309
if sovereign {
285310
if err := setSidecarValidatorManageOwner(sc, createFlags); err != nil {
@@ -306,7 +331,7 @@ func createBlockchainConfig(cmd *cobra.Command, args []string) error {
306331
if vmVersion != latest && vmVersion != preRelease && vmVersion != "" && !semver.IsValid(vmVersion) {
307332
return fmt.Errorf("invalid version string, should be semantic version (ex: v1.1.1): %s", vmVersion)
308333
}
309-
vmVersion, err = vm.PromptSubnetEVMVersion(app, vmVersion)
334+
vmVersion, err = vm.PromptSubnetEVMVersion(app, vmVersion, network)
310335
if err != nil {
311336
return err
312337
}
@@ -513,7 +538,10 @@ func sendMetrics(repoName, blockchainName string) error {
513538
if err != nil {
514539
return err
515540
}
516-
conf := params.GetExtra(genesis.Config).GenesisPrecompiles
541+
var conf extras.Precompiles
542+
params.WithTempRegisteredExtras(func() {
543+
conf = params.GetExtra(genesis.Config).GenesisPrecompiles
544+
})
517545
precompiles := make([]string, 0, 6)
518546
for precompileName := range conf {
519547
precompileTag := "precompile-" + precompileName

cmd/blockchaincmd/deploy.go

Lines changed: 15 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -450,6 +450,7 @@ func prepareBootstrapValidators(
450450
availableBalance,
451451
localMachineFlags,
452452
bootstrapValidatorFlags,
453+
deployFlags.SigAggFlags,
453454
); err != nil {
454455
return err
455456
} else if cancel {
@@ -506,7 +507,20 @@ func prepareBootstrapValidators(
506507
func deployBlockchain(cmd *cobra.Command, args []string) error {
507508
blockchainName := args[0]
508509

509-
if err := CreateBlockchainFirst(cmd, blockchainName, skipCreatePrompt); err != nil {
510+
network, err := networkoptions.GetNetworkFromCmdLineFlags(
511+
app,
512+
"",
513+
globalNetworkFlags,
514+
true,
515+
false,
516+
networkoptions.DefaultSupportedNetworkOptions,
517+
"",
518+
)
519+
if err != nil {
520+
return err
521+
}
522+
523+
if err := CreateBlockchainFirst(cmd, blockchainName, skipCreatePrompt, network); err != nil {
510524
return err
511525
}
512526

@@ -555,18 +569,6 @@ func deployBlockchain(cmd *cobra.Command, args []string) error {
555569
return err
556570
}
557571

558-
network, err := networkoptions.GetNetworkFromCmdLineFlags(
559-
app,
560-
"",
561-
globalNetworkFlags,
562-
true,
563-
false,
564-
networkoptions.DefaultSupportedNetworkOptions,
565-
"",
566-
)
567-
if err != nil {
568-
return err
569-
}
570572
clusterNameFlagValue = globalNetworkFlags.ClusterName
571573

572574
isEVMGenesis, validationErr, err := app.HasSubnetEVMGenesis(chain)

cmd/blockchaincmd/describe.go

Lines changed: 40 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -399,42 +399,46 @@ func printPrecompiles(genesis core.Genesis) {
399399

400400
warpSet := false
401401
allowListSet := false
402-
// Warp
403-
extra := params.GetExtra(genesis.Config)
404-
if extra.GenesisPrecompiles[warp.ConfigKey] != nil {
405-
t.AppendRow(table.Row{"Warp", "n/a", "n/a", "n/a"})
406-
warpSet = true
407-
}
408-
// Native Minting
409-
if extra.GenesisPrecompiles[nativeminter.ConfigKey] != nil {
410-
cfg := extra.GenesisPrecompiles[nativeminter.ConfigKey].(*nativeminter.Config)
411-
addPrecompileAllowListToTable(t, "Native Minter", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
412-
allowListSet = true
413-
}
414-
// Contract allow list
415-
if extra.GenesisPrecompiles[deployerallowlist.ConfigKey] != nil {
416-
cfg := extra.GenesisPrecompiles[deployerallowlist.ConfigKey].(*deployerallowlist.Config)
417-
addPrecompileAllowListToTable(t, "Contract Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
418-
allowListSet = true
419-
}
420-
// TX allow list
421-
if extra.GenesisPrecompiles[txallowlist.ConfigKey] != nil {
422-
cfg := extra.GenesisPrecompiles[txallowlist.Module.ConfigKey].(*txallowlist.Config)
423-
addPrecompileAllowListToTable(t, "Tx Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
424-
allowListSet = true
425-
}
426-
// Fee config allow list
427-
if extra.GenesisPrecompiles[feemanager.ConfigKey] != nil {
428-
cfg := extra.GenesisPrecompiles[feemanager.ConfigKey].(*feemanager.Config)
429-
addPrecompileAllowListToTable(t, "Fee Config Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
430-
allowListSet = true
431-
}
432-
// Reward config allow list
433-
if extra.GenesisPrecompiles[rewardmanager.ConfigKey] != nil {
434-
cfg := extra.GenesisPrecompiles[rewardmanager.ConfigKey].(*rewardmanager.Config)
435-
addPrecompileAllowListToTable(t, "Reward Manager Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
436-
allowListSet = true
437-
}
402+
403+
params.WithTempRegisteredExtras(func() {
404+
extra := params.GetExtra(genesis.Config)
405+
// Warp
406+
if extra.GenesisPrecompiles[warp.ConfigKey] != nil {
407+
t.AppendRow(table.Row{"Warp", "n/a", "n/a", "n/a"})
408+
warpSet = true
409+
}
410+
// Native Minting
411+
if extra.GenesisPrecompiles[nativeminter.ConfigKey] != nil {
412+
cfg := extra.GenesisPrecompiles[nativeminter.ConfigKey].(*nativeminter.Config)
413+
addPrecompileAllowListToTable(t, "Native Minter", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
414+
allowListSet = true
415+
}
416+
// Contract allow list
417+
if extra.GenesisPrecompiles[deployerallowlist.ConfigKey] != nil {
418+
cfg := extra.GenesisPrecompiles[deployerallowlist.ConfigKey].(*deployerallowlist.Config)
419+
addPrecompileAllowListToTable(t, "Contract Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
420+
allowListSet = true
421+
}
422+
// TX allow list
423+
if extra.GenesisPrecompiles[txallowlist.ConfigKey] != nil {
424+
cfg := extra.GenesisPrecompiles[txallowlist.Module.ConfigKey].(*txallowlist.Config)
425+
addPrecompileAllowListToTable(t, "Tx Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
426+
allowListSet = true
427+
}
428+
// Fee config allow list
429+
if extra.GenesisPrecompiles[feemanager.ConfigKey] != nil {
430+
cfg := extra.GenesisPrecompiles[feemanager.ConfigKey].(*feemanager.Config)
431+
addPrecompileAllowListToTable(t, "Fee Config Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
432+
allowListSet = true
433+
}
434+
// Reward config allow list
435+
if extra.GenesisPrecompiles[rewardmanager.ConfigKey] != nil {
436+
cfg := extra.GenesisPrecompiles[rewardmanager.ConfigKey].(*rewardmanager.Config)
437+
addPrecompileAllowListToTable(t, "Reward Manager Allow List", cfg.AdminAddresses, cfg.ManagerAddresses, cfg.EnabledAddresses)
438+
allowListSet = true
439+
}
440+
})
441+
438442
if warpSet || allowListSet {
439443
ux.Logger.PrintToUser("%s", t.Render())
440444
if allowListSet {

0 commit comments

Comments
 (0)