Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
23 changes: 14 additions & 9 deletions cmd/puppeth/wizard_genesis.go
Original file line number Diff line number Diff line change
Expand Up @@ -271,23 +271,28 @@ func (w *wizard) makeGenesis() {
blocksPerYear := 31536000 / genesis.Config.XDPoS.Period
epochsPerYear := blocksPerYear / genesis.Config.XDPoS.Epoch
if epochsPerYear > 0 {
rewardsPerYear := float64(threshold) * (float64(yield) / float64(100))
rewardPerEpochPerMN := uint64(rewardsPerYear / float64(epochsPerYear))
totalRewardPerEpoch := rewardPerEpochPerMN * uint64(len(signers))
rewardsPerYear := float64(threshold) * (float64(yield) / 100)
rewardPerEpochPerMNWithoutFoundation := rewardsPerYear / float64(epochsPerYear)
rewardPerEpochPerMN := float64(rewardPerEpochPerMNWithoutFoundation) * 100 / float64(100-common.RewardFoundationPercent)
totalRewardPerEpoch := float64(rewardPerEpochPerMN) * float64(len(signers))
fmt.Println()
fmt.Println("Calculated Total Masternode rewards per epoch based on yield: ", totalRewardPerEpoch)
genesis.Config.XDPoS.Reward = totalRewardPerEpoch
genesis.Config.XDPoS.V2.CurrentConfig.MasternodeReward = math.Round(float64(rewardPerEpochPerMN)*1000) / 1000
genesis.Config.XDPoS.V2.CurrentConfig.ProtectorReward = math.Round(float64(rewardPerEpochPerMN)*0.8*1000) / 1000
genesis.Config.XDPoS.V2.CurrentConfig.ObserverReward = math.Round(float64(rewardPerEpochPerMN)*0.6*1000) / 1000

fmt.Println("Calculated Total Masternode rewards per epoch based on yield: ", uint64(math.Round(totalRewardPerEpoch)))
genesis.Config.XDPoS.Reward = uint64(math.Round(totalRewardPerEpoch))
genesis.Config.XDPoS.V2.CurrentConfig.MasternodeReward = math.Round(rewardPerEpochPerMN*10000) / 10000
genesis.Config.XDPoS.V2.CurrentConfig.ProtectorReward = math.Round(rewardPerEpochPerMN*0.8*10000) / 10000
genesis.Config.XDPoS.V2.CurrentConfig.ObserverReward = math.Round(rewardPerEpochPerMN*0.4*10000) / 10000
}
}

fmt.Println()
fmt.Println("What is foundation wallet address (collect 10% of all rewards)? (default = xdc0000000000000000000000000000000000000068)")
if input == nil {
genesis.Config.XDPoS.FoundationWalletAddr = w.readDefaultAddress(common.FoundationAddrBinary)
} else {
if !common.IsHexAddress(input.FoundationWalletAddress) {
log.Crit("Invalid foundation wallet address", "address", input.FoundationWalletAddress)
}
genesis.Config.XDPoS.FoundationWalletAddr = common.HexToAddress(input.FoundationWalletAddress)
}
Comment thread
wanwiset25 marked this conversation as resolved.

// Validator Smart Contract Code
Expand Down
11 changes: 9 additions & 2 deletions core/genesis_setup_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,10 @@ func TestSetupGenesisNormalizesLocalnetChainConfig(t *testing.T) {
TIPXDCXReceiverDisableBlock: big.NewInt(12),
EIP1559Block: big.NewInt(12),
CancunBlock: big.NewInt(34),
PragueBlock: big.NewInt(34),
DynamicGasLimitBlock: big.NewInt(34),
TIPUpgradeRewardBlock: big.NewInt(34),
TIPUpgradePenaltyBlock: big.NewInt(34),
TRC21IssuerSMC: params.LocalnetChainConfig.TRC21IssuerSMC,
XDCXListingSMC: params.LocalnetChainConfig.XDCXListingSMC,
RelayerRegistrationSMC: params.LocalnetChainConfig.RelayerRegistrationSMC,
Expand Down Expand Up @@ -73,8 +77,11 @@ func TestSetupGenesisNormalizesLocalnetChainConfig(t *testing.T) {
if cfg.Ethash == nil {
t.Fatal("expected non-whitelisted fields to be preserved")
}
if cfg.PragueBlock != nil || cfg.DynamicGasLimitBlock != nil || cfg.TIPUpgradeRewardBlock != nil {
t.Fatalf("unexpected localnet whitelist fields: Prague=%v DynamicGasLimit=%v TIPUpgradeReward=%v", cfg.PragueBlock, cfg.DynamicGasLimitBlock, cfg.TIPUpgradeRewardBlock)
if cfg.PragueBlock == nil || cfg.PragueBlock.Cmp(big.NewInt(34)) != 0 {
t.Fatalf("unexpected preserved Prague block: have %v want 34", cfg.PragueBlock)
}
if cfg.OsakaBlock != nil || cfg.TIPEpochHalvingBlock != nil {
t.Fatalf("unexpected localnet whitelist fields: Osaka=%v TIPEpochHalving=%v", cfg.OsakaBlock, cfg.TIPEpochHalvingBlock)
}
if cfg.LondonBlock == nil || cfg.LondonBlock.Cmp(big.NewInt(12)) != 0 {
t.Fatalf("unexpected localnet London block: have %v want 12", cfg.LondonBlock)
Expand Down
42 changes: 19 additions & 23 deletions params/config_networks.go
Original file line number Diff line number Diff line change
Expand Up @@ -200,7 +200,7 @@ var (
LocalnetV2Configs = map[uint64]*V2Config{
defaultV2SwitchRound: {
MaxMasternodes: 108,
MaxProtectorNodes: 324,
MaxProtectorNodes: 432,
MaxObserverNodes: 2000,
SwitchRound: 0,
CertThreshold: 0.667,
Expand Down Expand Up @@ -516,22 +516,18 @@ var (
TIPXDCXReceiverDisableBlock: big.NewInt(0),
EIP1559Block: big.NewInt(0),
CancunBlock: big.NewInt(0),
PragueBlock: nil,
// PragueBlock: big.NewInt(0),
OsakaBlock: nil,
DynamicGasLimitBlock: nil,
// DynamicGasLimitBlock: big.NewInt(0),
TIPUpgradeRewardBlock: nil,
// TIPUpgradeRewardBlock: big.NewInt(0),
TIPUpgradePenaltyBlock: nil,
// TIPUpgradePenaltyBlock: big.NewInt(0),
TIPEpochHalvingBlock: nil,
TRC21IssuerSMC: common.HexToAddress("0x8c0faeb5C6bEd2129b8674F262Fd45c4e9468bee"),
XDCXListingSMC: common.HexToAddress("0xDE34dD0f536170993E8CFF639DdFfCF1A85D3E53"),
RelayerRegistrationSMC: common.HexToAddress("0x16c63b79f9C8784168103C0b74E6A59EC2de4a02"),
LendingRegistrationSMC: common.HexToAddress("0x7d761afd7ff65a79e4173897594a194e3c506e57"),
Clique: nil,
Ethash: nil,
PragueBlock: big.NewInt(0),
OsakaBlock: nil,
DynamicGasLimitBlock: big.NewInt(0),
TIPUpgradeRewardBlock: big.NewInt(0),
TIPUpgradePenaltyBlock: big.NewInt(0),
Comment thread
wanwiset25 marked this conversation as resolved.
TIPEpochHalvingBlock: nil,
TRC21IssuerSMC: common.HexToAddress("0x8c0faeb5C6bEd2129b8674F262Fd45c4e9468bee"),
XDCXListingSMC: common.HexToAddress("0xDE34dD0f536170993E8CFF639DdFfCF1A85D3E53"),
RelayerRegistrationSMC: common.HexToAddress("0x16c63b79f9C8784168103C0b74E6A59EC2de4a02"),
LendingRegistrationSMC: common.HexToAddress("0x7d761afd7ff65a79e4173897594a194e3c506e57"),
Clique: nil,
Ethash: nil,
XDPoS: &XDPoSConfig{
Period: 2,
Epoch: 900,
Expand Down Expand Up @@ -738,15 +734,15 @@ var (
MergeBlock: big.NewInt(0),
ShanghaiBlock: big.NewInt(0),
Gas50xBlock: big.NewInt(0),
TIPXDCXMinerDisableBlock: nil,
TIPXDCXReceiverDisableBlock: nil,
TIPXDCXMinerDisableBlock: big.NewInt(0),
TIPXDCXReceiverDisableBlock: big.NewInt(0),
EIP1559Block: big.NewInt(0),
CancunBlock: big.NewInt(0),
PragueBlock: big.NewInt(0),
OsakaBlock: big.NewInt(0),
DynamicGasLimitBlock: nil,
TIPUpgradeRewardBlock: nil,
TIPUpgradePenaltyBlock: nil,
OsakaBlock: nil,
DynamicGasLimitBlock: big.NewInt(0),
TIPUpgradeRewardBlock: big.NewInt(0),
TIPUpgradePenaltyBlock: big.NewInt(0),
TIPEpochHalvingBlock: nil,
TRC21IssuerSMC: common.HexToAddress("0x8c0faeb5C6bEd2129b8674F262Fd45c4e9468bee"),
XDCXListingSMC: common.HexToAddress("0xDE34dD0f536170993E8CFF639DdFfCF1A85D3E53"),
Expand Down
14 changes: 9 additions & 5 deletions params/config_networks_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -79,7 +79,11 @@ func TestXDPoSMockChainConfigDeclaresModernForks(t *testing.T) {
assertBlock("EIP1559Block", config.EIP1559Block)
assertBlock("CancunBlock", config.CancunBlock)
assertBlock("PragueBlock", config.PragueBlock)
assertBlock("OsakaBlock", config.OsakaBlock)
assertBlock("DynamicGasLimitBlock", config.DynamicGasLimitBlock)
assertBlock("TIPUpgradeRewardBlock", config.TIPUpgradeRewardBlock)
assertBlock("TIPUpgradePenaltyBlock", config.TIPUpgradePenaltyBlock)
// assertBlock("OsakaBlock", config.OsakaBlock)
assert.Nil(t, config.OsakaBlock, "OsakaBlock must stay unscheduled on TestXDPoSMockChainConfig")
}

func TestXDCChainConfigsDeclareForkBlocks(t *testing.T) {
Expand Down Expand Up @@ -216,11 +220,11 @@ func TestXDCChainConfigsDeclareForkBlocks(t *testing.T) {
tipXDCXReceiverDisable: big.NewInt(0),
eip1559Block: big.NewInt(0),
cancunBlock: big.NewInt(0),
pragueBlock: nil,
pragueBlock: big.NewInt(0),
osakaBlock: nil,
dynamicGasLimitBlock: nil,
tipUpgradeRewardBlock: nil,
tipUpgradePenaltyBlock: nil,
dynamicGasLimitBlock: big.NewInt(0),
tipUpgradeRewardBlock: big.NewInt(0),
tipUpgradePenaltyBlock: big.NewInt(0),
tipEpochHalvingBlock: nil,
},
}
Expand Down