|
|
@ -75,6 +75,7 @@ var ( |
|
|
|
ValidatorCodeFixEpoch: big.NewInt(1535), // 2023-07-20 05:51:07+00:00
|
|
|
|
ValidatorCodeFixEpoch: big.NewInt(1535), // 2023-07-20 05:51:07+00:00
|
|
|
|
HIP30Epoch: big.NewInt(1673), // 2023-11-02 17:30:00+00:00
|
|
|
|
HIP30Epoch: big.NewInt(1673), // 2023-11-02 17:30:00+00:00
|
|
|
|
BlockGas30MEpoch: big.NewInt(1673), // 2023-11-02 17:30:00+00:00
|
|
|
|
BlockGas30MEpoch: big.NewInt(1673), // 2023-11-02 17:30:00+00:00
|
|
|
|
|
|
|
|
MaxRateEpoch: EpochTBD, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TestnetChainConfig contains the chain parameters to run a node on the harmony test network.
|
|
|
|
// TestnetChainConfig contains the chain parameters to run a node on the harmony test network.
|
|
|
@ -118,6 +119,7 @@ var ( |
|
|
|
ValidatorCodeFixEpoch: big.NewInt(1296), // 2023-04-28 07:14:20+00:00
|
|
|
|
ValidatorCodeFixEpoch: big.NewInt(1296), // 2023-04-28 07:14:20+00:00
|
|
|
|
HIP30Epoch: big.NewInt(2176), // 2023-10-12 10:00:00+00:00
|
|
|
|
HIP30Epoch: big.NewInt(2176), // 2023-10-12 10:00:00+00:00
|
|
|
|
BlockGas30MEpoch: big.NewInt(2176), // 2023-10-12 10:00:00+00:00
|
|
|
|
BlockGas30MEpoch: big.NewInt(2176), // 2023-10-12 10:00:00+00:00
|
|
|
|
|
|
|
|
MaxRateEpoch: EpochTBD, |
|
|
|
} |
|
|
|
} |
|
|
|
// PangaeaChainConfig contains the chain parameters for the Pangaea network.
|
|
|
|
// PangaeaChainConfig contains the chain parameters for the Pangaea network.
|
|
|
|
// All features except for CrossLink are enabled at launch.
|
|
|
|
// All features except for CrossLink are enabled at launch.
|
|
|
@ -161,6 +163,7 @@ var ( |
|
|
|
ValidatorCodeFixEpoch: EpochTBD, |
|
|
|
ValidatorCodeFixEpoch: EpochTBD, |
|
|
|
HIP30Epoch: EpochTBD, |
|
|
|
HIP30Epoch: EpochTBD, |
|
|
|
BlockGas30MEpoch: big.NewInt(0), |
|
|
|
BlockGas30MEpoch: big.NewInt(0), |
|
|
|
|
|
|
|
MaxRateEpoch: EpochTBD, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// PartnerChainConfig contains the chain parameters for the Partner network.
|
|
|
|
// PartnerChainConfig contains the chain parameters for the Partner network.
|
|
|
@ -205,6 +208,7 @@ var ( |
|
|
|
ValidatorCodeFixEpoch: big.NewInt(5), |
|
|
|
ValidatorCodeFixEpoch: big.NewInt(5), |
|
|
|
HIP30Epoch: big.NewInt(7), |
|
|
|
HIP30Epoch: big.NewInt(7), |
|
|
|
BlockGas30MEpoch: big.NewInt(7), |
|
|
|
BlockGas30MEpoch: big.NewInt(7), |
|
|
|
|
|
|
|
MaxRateEpoch: EpochTBD, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// StressnetChainConfig contains the chain parameters for the Stress test network.
|
|
|
|
// StressnetChainConfig contains the chain parameters for the Stress test network.
|
|
|
@ -249,6 +253,7 @@ var ( |
|
|
|
ValidatorCodeFixEpoch: EpochTBD, |
|
|
|
ValidatorCodeFixEpoch: EpochTBD, |
|
|
|
HIP30Epoch: EpochTBD, |
|
|
|
HIP30Epoch: EpochTBD, |
|
|
|
BlockGas30MEpoch: big.NewInt(0), |
|
|
|
BlockGas30MEpoch: big.NewInt(0), |
|
|
|
|
|
|
|
MaxRateEpoch: EpochTBD, |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// LocalnetChainConfig contains the chain parameters to run for local development.
|
|
|
|
// LocalnetChainConfig contains the chain parameters to run for local development.
|
|
|
@ -290,8 +295,9 @@ var ( |
|
|
|
LeaderRotationExternalValidatorsEpoch: big.NewInt(6), |
|
|
|
LeaderRotationExternalValidatorsEpoch: big.NewInt(6), |
|
|
|
FeeCollectEpoch: big.NewInt(2), |
|
|
|
FeeCollectEpoch: big.NewInt(2), |
|
|
|
ValidatorCodeFixEpoch: big.NewInt(2), |
|
|
|
ValidatorCodeFixEpoch: big.NewInt(2), |
|
|
|
HIP30Epoch: EpochTBD, |
|
|
|
HIP30Epoch: big.NewInt(3), |
|
|
|
BlockGas30MEpoch: big.NewInt(0), |
|
|
|
BlockGas30MEpoch: big.NewInt(0), |
|
|
|
|
|
|
|
MaxRateEpoch: big.NewInt(4), |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// AllProtocolChanges ...
|
|
|
|
// AllProtocolChanges ...
|
|
|
@ -336,7 +342,8 @@ var ( |
|
|
|
big.NewInt(0), // FeeCollectEpoch
|
|
|
|
big.NewInt(0), // FeeCollectEpoch
|
|
|
|
big.NewInt(0), // ValidatorCodeFixEpoch
|
|
|
|
big.NewInt(0), // ValidatorCodeFixEpoch
|
|
|
|
big.NewInt(0), // BlockGas30M
|
|
|
|
big.NewInt(0), // BlockGas30M
|
|
|
|
big.NewInt(0), // HIP30Epoch
|
|
|
|
big.NewInt(0), // BlockGas30M
|
|
|
|
|
|
|
|
big.NewInt(0), // MaxRateEpoch
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TestChainConfig ...
|
|
|
|
// TestChainConfig ...
|
|
|
@ -382,6 +389,7 @@ var ( |
|
|
|
big.NewInt(0), // ValidatorCodeFixEpoch
|
|
|
|
big.NewInt(0), // ValidatorCodeFixEpoch
|
|
|
|
big.NewInt(0), // HIP30Epoch
|
|
|
|
big.NewInt(0), // HIP30Epoch
|
|
|
|
big.NewInt(0), // BlockGas30M
|
|
|
|
big.NewInt(0), // BlockGas30M
|
|
|
|
|
|
|
|
big.NewInt(0), // MaxRateEpoch
|
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// TestRules ...
|
|
|
|
// TestRules ...
|
|
|
@ -547,6 +555,9 @@ type ChainConfig struct { |
|
|
|
HIP30Epoch *big.Int `json:"hip30-epoch,omitempty"` |
|
|
|
HIP30Epoch *big.Int `json:"hip30-epoch,omitempty"` |
|
|
|
|
|
|
|
|
|
|
|
BlockGas30MEpoch *big.Int `json:"block-gas-30m-epoch,omitempty"` |
|
|
|
BlockGas30MEpoch *big.Int `json:"block-gas-30m-epoch,omitempty"` |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
// MaxRateEpoch will make sure the validator max-rate is at least equal to the minRate + the validator max-rate-increase
|
|
|
|
|
|
|
|
MaxRateEpoch *big.Int `json:"max-rate-epoch,omitempty"` |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// String implements the fmt.Stringer interface.
|
|
|
|
// String implements the fmt.Stringer interface.
|
|
|
@ -803,6 +814,10 @@ func (c *ChainConfig) IsHIP30(epoch *big.Int) bool { |
|
|
|
return isForked(c.HIP30Epoch, epoch) |
|
|
|
return isForked(c.HIP30Epoch, epoch) |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
func (c *ChainConfig) IsMaxRate(epoch *big.Int) bool { |
|
|
|
|
|
|
|
return isForked(c.MaxRateEpoch, epoch) |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
// During this epoch, shards 2 and 3 will start sending
|
|
|
|
// During this epoch, shards 2 and 3 will start sending
|
|
|
|
// their balances over to shard 0 or 1.
|
|
|
|
// their balances over to shard 0 or 1.
|
|
|
|
func (c *ChainConfig) IsOneEpochBeforeHIP30(epoch *big.Int) bool { |
|
|
|
func (c *ChainConfig) IsOneEpochBeforeHIP30(epoch *big.Int) bool { |
|
|
|