mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-17 10:20:44 +00:00
all: fix staticcheck warning ST1019: import package twice
This commit is contained in:
parent
efe041a684
commit
a5bc0baba9
4 changed files with 36 additions and 44 deletions
|
|
@ -20,7 +20,6 @@ import (
|
||||||
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS/utils"
|
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS/utils"
|
||||||
contractValidator "github.com/XinFinOrg/XDPoSChain/contracts/validator/contract"
|
contractValidator "github.com/XinFinOrg/XDPoSChain/contracts/validator/contract"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core"
|
"github.com/XinFinOrg/XDPoSChain/core"
|
||||||
. "github.com/XinFinOrg/XDPoSChain/core"
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/types"
|
"github.com/XinFinOrg/XDPoSChain/core/types"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/vm"
|
"github.com/XinFinOrg/XDPoSChain/core/vm"
|
||||||
"github.com/XinFinOrg/XDPoSChain/crypto"
|
"github.com/XinFinOrg/XDPoSChain/crypto"
|
||||||
|
|
@ -192,12 +191,12 @@ func voteTX(gasLimit uint64, nonce uint64, addr string) (*types.Transaction, err
|
||||||
return signedTX, nil
|
return signedTX, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateSigner(bc *BlockChain) error {
|
func UpdateSigner(bc *core.BlockChain) error {
|
||||||
err := bc.UpdateM1()
|
err := bc.UpdateM1()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetSnapshotSigner(bc *BlockChain, header *types.Header) (signersList, error) {
|
func GetSnapshotSigner(bc *core.BlockChain, header *types.Header) (signersList, error) {
|
||||||
engine := bc.Engine().(*XDPoS.XDPoS)
|
engine := bc.Engine().(*XDPoS.XDPoS)
|
||||||
snap, err := engine.GetSnapshot(bc, header)
|
snap, err := engine.GetSnapshot(bc, header)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -238,7 +237,7 @@ func GetCandidateFromCurrentSmartContract(backend bind.ContractBackend, t *testi
|
||||||
}
|
}
|
||||||
|
|
||||||
// V1 consensus engine
|
// V1 consensus engine
|
||||||
func PrepareXDCTestBlockChain(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig) (*BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
func PrepareXDCTestBlockChain(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig) (*core.BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
||||||
// Preparation
|
// Preparation
|
||||||
var err error
|
var err error
|
||||||
// Authorise
|
// Authorise
|
||||||
|
|
@ -291,7 +290,7 @@ func PrepareXDCTestBlockChain(t *testing.T, numOfBlocks int, chainConfig *params
|
||||||
return blockchain, backend, currentBlock, signer, signFn
|
return blockchain, backend, currentBlock, signer, signFn
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateBlock(blockchain *BlockChain, chainConfig *params.ChainConfig, startingBlock *types.Block, blockNumber int, roundNumber int64, blockCoinBase string, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), penalties []byte) *types.Block {
|
func CreateBlock(blockchain *core.BlockChain, chainConfig *params.ChainConfig, startingBlock *types.Block, blockNumber int, roundNumber int64, blockCoinBase string, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), penalties []byte) *types.Block {
|
||||||
currentBlock := startingBlock
|
currentBlock := startingBlock
|
||||||
merkleRoot := "35999dded35e8db12de7e6c1471eb9670c162eec616ecebbaf4fddd4676fb930"
|
merkleRoot := "35999dded35e8db12de7e6c1471eb9670c162eec616ecebbaf4fddd4676fb930"
|
||||||
|
|
||||||
|
|
@ -333,7 +332,7 @@ func CreateBlock(blockchain *BlockChain, chainConfig *params.ChainConfig, starti
|
||||||
return block
|
return block
|
||||||
}
|
}
|
||||||
|
|
||||||
func createBlockFromHeader(bc *BlockChain, customHeader *types.Header, txs []*types.Transaction, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), config *params.ChainConfig) (*types.Block, error) {
|
func createBlockFromHeader(bc *core.BlockChain, customHeader *types.Header, txs []*types.Transaction, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), config *params.ChainConfig) (*types.Block, error) {
|
||||||
if customHeader.Extra == nil {
|
if customHeader.Extra == nil {
|
||||||
extraSubstring := "d7830100018358444388676f312e31342e31856c696e75780000000000000000b185dc0d0e917d18e5dbf0746be6597d3331dd27ea0554e6db433feb2e81730b20b2807d33a1527bf43cd3bc057aa7f641609c2551ebe2fd575f4db704fbf38101" // Grabbed from existing mainnet block, it does not have any meaning except for the length validation
|
extraSubstring := "d7830100018358444388676f312e31342e31856c696e75780000000000000000b185dc0d0e917d18e5dbf0746be6597d3331dd27ea0554e6db433feb2e81730b20b2807d33a1527bf43cd3bc057aa7f641609c2551ebe2fd575f4db704fbf38101" // Grabbed from existing mainnet block, it does not have any meaning except for the length validation
|
||||||
customHeader.Extra, _ = hex.DecodeString(extraSubstring)
|
customHeader.Extra, _ = hex.DecodeString(extraSubstring)
|
||||||
|
|
@ -377,13 +376,13 @@ func createBlockFromHeader(bc *BlockChain, customHeader *types.Header, txs []*ty
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("%v when get state", err)
|
return nil, fmt.Errorf("%v when get state", err)
|
||||||
}
|
}
|
||||||
gp := new(GasPool).AddGas(header.GasLimit)
|
gp := new(core.GasPool).AddGas(header.GasLimit)
|
||||||
|
|
||||||
var gasUsed = new(uint64)
|
var gasUsed = new(uint64)
|
||||||
var receipts types.Receipts
|
var receipts types.Receipts
|
||||||
for i, tx := range txs {
|
for i, tx := range txs {
|
||||||
statedb.Prepare(tx.Hash(), i)
|
statedb.Prepare(tx.Hash(), i)
|
||||||
receipt, _, err, _ := ApplyTransaction(bc.Config(), nil, bc, &header.Coinbase, gp, statedb, nil, &header, tx, gasUsed, vm.Config{})
|
receipt, _, err, _ := core.ApplyTransaction(bc.Config(), nil, bc, &header.Coinbase, gp, statedb, nil, &header, tx, gasUsed, vm.Config{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("%v when applying transaction", err)
|
return nil, fmt.Errorf("%v when applying transaction", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import (
|
||||||
"github.com/XinFinOrg/XDPoSChain/contracts"
|
"github.com/XinFinOrg/XDPoSChain/contracts"
|
||||||
contractValidator "github.com/XinFinOrg/XDPoSChain/contracts/validator/contract"
|
contractValidator "github.com/XinFinOrg/XDPoSChain/contracts/validator/contract"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core"
|
"github.com/XinFinOrg/XDPoSChain/core"
|
||||||
. "github.com/XinFinOrg/XDPoSChain/core"
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/types"
|
"github.com/XinFinOrg/XDPoSChain/core/types"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/vm"
|
"github.com/XinFinOrg/XDPoSChain/core/vm"
|
||||||
"github.com/XinFinOrg/XDPoSChain/crypto"
|
"github.com/XinFinOrg/XDPoSChain/crypto"
|
||||||
|
|
@ -314,12 +313,12 @@ func signingTxWithSignerFn(header *types.Header, nonce uint64, signer common.Add
|
||||||
return signedTx, nil
|
return signedTx, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func UpdateSigner(bc *BlockChain) error {
|
func UpdateSigner(bc *core.BlockChain) error {
|
||||||
err := bc.UpdateM1()
|
err := bc.UpdateM1()
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetSnapshotSigner(bc *BlockChain, header *types.Header) (signersList, error) {
|
func GetSnapshotSigner(bc *core.BlockChain, header *types.Header) (signersList, error) {
|
||||||
engine := bc.Engine().(*XDPoS.XDPoS)
|
engine := bc.Engine().(*XDPoS.XDPoS)
|
||||||
snap, err := engine.GetSnapshot(bc, header)
|
snap, err := engine.GetSnapshot(bc, header)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
|
@ -366,7 +365,7 @@ type ForkedBlockOptions struct {
|
||||||
}
|
}
|
||||||
|
|
||||||
// V2 concensus engine
|
// V2 concensus engine
|
||||||
func PrepareXDCTestBlockChainForV2Engine(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig, forkedBlockOptions *ForkedBlockOptions) (*BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error), *types.Block) {
|
func PrepareXDCTestBlockChainForV2Engine(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig, forkedBlockOptions *ForkedBlockOptions) (*core.BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error), *types.Block) {
|
||||||
// Preparation
|
// Preparation
|
||||||
var err error
|
var err error
|
||||||
signer, signFn, err := backends.SimulateWalletAddressAndSignFn()
|
signer, signFn, err := backends.SimulateWalletAddressAndSignFn()
|
||||||
|
|
@ -456,7 +455,7 @@ func PrepareXDCTestBlockChainForV2Engine(t *testing.T, numOfBlocks int, chainCon
|
||||||
}
|
}
|
||||||
|
|
||||||
// V2 concensus engine, compared to PrepareXDCTestBlockChainForV2Engine: (1) no forking (2) add penalty
|
// V2 concensus engine, compared to PrepareXDCTestBlockChainForV2Engine: (1) no forking (2) add penalty
|
||||||
func PrepareXDCTestBlockChainWithPenaltyForV2Engine(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig) (*BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
func PrepareXDCTestBlockChainWithPenaltyForV2Engine(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig) (*core.BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
||||||
// Preparation
|
// Preparation
|
||||||
var err error
|
var err error
|
||||||
signer, signFn, err := backends.SimulateWalletAddressAndSignFn()
|
signer, signFn, err := backends.SimulateWalletAddressAndSignFn()
|
||||||
|
|
@ -507,7 +506,7 @@ func PrepareXDCTestBlockChainWithPenaltyForV2Engine(t *testing.T, numOfBlocks in
|
||||||
}
|
}
|
||||||
|
|
||||||
// V2 concensus engine, compared to PrepareXDCTestBlockChainForV2Engine: (1) no forking (2) 128 masternode candidates
|
// V2 concensus engine, compared to PrepareXDCTestBlockChainForV2Engine: (1) no forking (2) 128 masternode candidates
|
||||||
func PrepareXDCTestBlockChainWith128Candidates(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig) (*BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
func PrepareXDCTestBlockChainWith128Candidates(t *testing.T, numOfBlocks int, chainConfig *params.ChainConfig) (*core.BlockChain, *backends.SimulatedBackend, *types.Block, common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
||||||
// Preparation
|
// Preparation
|
||||||
var err error
|
var err error
|
||||||
signer, signFn, err := backends.SimulateWalletAddressAndSignFn()
|
signer, signFn, err := backends.SimulateWalletAddressAndSignFn()
|
||||||
|
|
@ -569,7 +568,7 @@ func PrepareXDCTestBlockChainWith128Candidates(t *testing.T, numOfBlocks int, ch
|
||||||
return blockchain, backend, currentBlock, signer, signFn
|
return blockchain, backend, currentBlock, signer, signFn
|
||||||
}
|
}
|
||||||
|
|
||||||
func CreateBlock(blockchain *BlockChain, chainConfig *params.ChainConfig, startingBlock *types.Block, blockNumber int, roundNumber int64, blockCoinBase string, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), penalties []byte, signersKey []*ecdsa.PrivateKey, merkleRoot string) *types.Block {
|
func CreateBlock(blockchain *core.BlockChain, chainConfig *params.ChainConfig, startingBlock *types.Block, blockNumber int, roundNumber int64, blockCoinBase string, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), penalties []byte, signersKey []*ecdsa.PrivateKey, merkleRoot string) *types.Block {
|
||||||
currentBlock := startingBlock
|
currentBlock := startingBlock
|
||||||
if len(merkleRoot) == 0 {
|
if len(merkleRoot) == 0 {
|
||||||
merkleRoot = "35999dded35e8db12de7e6c1471eb9670c162eec616ecebbaf4fddd4676fb930"
|
merkleRoot = "35999dded35e8db12de7e6c1471eb9670c162eec616ecebbaf4fddd4676fb930"
|
||||||
|
|
@ -646,7 +645,7 @@ func CreateBlock(blockchain *BlockChain, chainConfig *params.ChainConfig, starti
|
||||||
return block
|
return block
|
||||||
}
|
}
|
||||||
|
|
||||||
func createBlockFromHeader(bc *BlockChain, customHeader *types.Header, txs []*types.Transaction, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), config *params.ChainConfig) (*types.Block, error) {
|
func createBlockFromHeader(bc *core.BlockChain, customHeader *types.Header, txs []*types.Transaction, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), config *params.ChainConfig) (*types.Block, error) {
|
||||||
if customHeader.Extra == nil {
|
if customHeader.Extra == nil {
|
||||||
extraSubstring := "d7830100018358444388676f312e31342e31856c696e75780000000000000000b185dc0d0e917d18e5dbf0746be6597d3331dd27ea0554e6db433feb2e81730b20b2807d33a1527bf43cd3bc057aa7f641609c2551ebe2fd575f4db704fbf38101" // Grabbed from existing mainnet block, it does not have any meaning except for the length validation
|
extraSubstring := "d7830100018358444388676f312e31342e31856c696e75780000000000000000b185dc0d0e917d18e5dbf0746be6597d3331dd27ea0554e6db433feb2e81730b20b2807d33a1527bf43cd3bc057aa7f641609c2551ebe2fd575f4db704fbf38101" // Grabbed from existing mainnet block, it does not have any meaning except for the length validation
|
||||||
customHeader.Extra, _ = hex.DecodeString(extraSubstring)
|
customHeader.Extra, _ = hex.DecodeString(extraSubstring)
|
||||||
|
|
@ -694,13 +693,13 @@ func createBlockFromHeader(bc *BlockChain, customHeader *types.Header, txs []*ty
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("%v when get state", err)
|
return nil, fmt.Errorf("%v when get state", err)
|
||||||
}
|
}
|
||||||
gp := new(GasPool).AddGas(header.GasLimit)
|
gp := new(core.GasPool).AddGas(header.GasLimit)
|
||||||
|
|
||||||
var gasUsed = new(uint64)
|
var gasUsed = new(uint64)
|
||||||
var receipts types.Receipts
|
var receipts types.Receipts
|
||||||
for i, tx := range txs {
|
for i, tx := range txs {
|
||||||
statedb.Prepare(tx.Hash(), i)
|
statedb.Prepare(tx.Hash(), i)
|
||||||
receipt, _, err, _ := ApplyTransaction(bc.Config(), nil, bc, &header.Coinbase, gp, statedb, nil, &header, tx, gasUsed, vm.Config{})
|
receipt, _, err, _ := core.ApplyTransaction(bc.Config(), nil, bc, &header.Coinbase, gp, statedb, nil, &header, tx, gasUsed, vm.Config{})
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, fmt.Errorf("%v when applying transaction", err)
|
return nil, fmt.Errorf("%v when applying transaction", err)
|
||||||
}
|
}
|
||||||
|
|
@ -729,7 +728,7 @@ func decodeMasternodesFromHeaderExtra(checkpointHeader *types.Header) []common.A
|
||||||
return masternodes
|
return masternodes
|
||||||
}
|
}
|
||||||
|
|
||||||
func findSignerAndSignFn(bc *BlockChain, header *types.Header, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), config *params.ChainConfig) (common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
func findSignerAndSignFn(bc *core.BlockChain, header *types.Header, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error), config *params.ChainConfig) (common.Address, func(account accounts.Account, hash []byte) ([]byte, error)) {
|
||||||
addressToSign := signer
|
addressToSign := signer
|
||||||
addressedSignFn := signFn
|
addressedSignFn := signFn
|
||||||
|
|
||||||
|
|
@ -765,7 +764,7 @@ func findSignerAndSignFn(bc *BlockChain, header *types.Header, signer common.Add
|
||||||
return addressToSign, addressedSignFn
|
return addressToSign, addressedSignFn
|
||||||
}
|
}
|
||||||
|
|
||||||
func sealHeader(bc *BlockChain, header *types.Header, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error)) {
|
func sealHeader(bc *core.BlockChain, header *types.Header, signer common.Address, signFn func(account accounts.Account, hash []byte) ([]byte, error)) {
|
||||||
// Sign all the things and seal it
|
// Sign all the things and seal it
|
||||||
signedBlockHeader := bc.Engine().(*XDPoS.XDPoS).SigHash(header)
|
signedBlockHeader := bc.Engine().(*XDPoS.XDPoS).SigHash(header)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -35,14 +35,12 @@ import (
|
||||||
"github.com/XinFinOrg/XDPoSChain/common"
|
"github.com/XinFinOrg/XDPoSChain/common"
|
||||||
"github.com/XinFinOrg/XDPoSChain/common/hexutil"
|
"github.com/XinFinOrg/XDPoSChain/common/hexutil"
|
||||||
"github.com/XinFinOrg/XDPoSChain/consensus"
|
"github.com/XinFinOrg/XDPoSChain/consensus"
|
||||||
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS"
|
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS"
|
||||||
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS/utils"
|
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS/utils"
|
||||||
"github.com/XinFinOrg/XDPoSChain/contracts/blocksigner/contract"
|
"github.com/XinFinOrg/XDPoSChain/contracts/blocksigner/contract"
|
||||||
randomizeContract "github.com/XinFinOrg/XDPoSChain/contracts/randomize/contract"
|
randomizeContract "github.com/XinFinOrg/XDPoSChain/contracts/randomize/contract"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core"
|
"github.com/XinFinOrg/XDPoSChain/core"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/state"
|
"github.com/XinFinOrg/XDPoSChain/core/state"
|
||||||
stateDatabase "github.com/XinFinOrg/XDPoSChain/core/state"
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/types"
|
"github.com/XinFinOrg/XDPoSChain/core/types"
|
||||||
"github.com/XinFinOrg/XDPoSChain/ethdb"
|
"github.com/XinFinOrg/XDPoSChain/ethdb"
|
||||||
"github.com/XinFinOrg/XDPoSChain/log"
|
"github.com/XinFinOrg/XDPoSChain/log"
|
||||||
|
|
@ -210,8 +208,8 @@ func BuildTxOpeningRandomize(nonce uint64, randomizeAddr common.Address, randomi
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get signers signed for blockNumber from blockSigner contract.
|
// Get signers signed for blockNumber from blockSigner contract.
|
||||||
func GetSignersFromContract(state *stateDatabase.StateDB, block *types.Block) ([]common.Address, error) {
|
func GetSignersFromContract(statedb *state.StateDB, block *types.Block) ([]common.Address, error) {
|
||||||
return stateDatabase.GetSigners(state, block), nil
|
return state.GetSigners(statedb, block), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get signers signed for blockNumber from blockSigner contract.
|
// Get signers signed for blockNumber from blockSigner contract.
|
||||||
|
|
@ -414,8 +412,8 @@ func CalculateRewardForSigner(chainReward *big.Int, signers map[common.Address]*
|
||||||
}
|
}
|
||||||
|
|
||||||
// Get candidate owner by address.
|
// Get candidate owner by address.
|
||||||
func GetCandidatesOwnerBySigner(state *state.StateDB, signerAddr common.Address) common.Address {
|
func GetCandidatesOwnerBySigner(statedb *state.StateDB, signerAddr common.Address) common.Address {
|
||||||
owner := stateDatabase.GetCandidateOwner(state, signerAddr)
|
owner := state.GetCandidateOwner(statedb, signerAddr)
|
||||||
return owner
|
return owner
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -427,14 +425,14 @@ func CalculateRewardForHolders(foundationWalletAddr common.Address, state *state
|
||||||
return nil, rewards
|
return nil, rewards
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetRewardBalancesRate(foundationWalletAddr common.Address, state *state.StateDB, masterAddr common.Address, totalReward *big.Int, blockNumber uint64) (map[common.Address]*big.Int, error) {
|
func GetRewardBalancesRate(foundationWalletAddr common.Address, statedb *state.StateDB, masterAddr common.Address, totalReward *big.Int, blockNumber uint64) (map[common.Address]*big.Int, error) {
|
||||||
owner := GetCandidatesOwnerBySigner(state, masterAddr)
|
owner := GetCandidatesOwnerBySigner(statedb, masterAddr)
|
||||||
balances := make(map[common.Address]*big.Int)
|
balances := make(map[common.Address]*big.Int)
|
||||||
rewardMaster := new(big.Int).Mul(totalReward, new(big.Int).SetInt64(common.RewardMasterPercent))
|
rewardMaster := new(big.Int).Mul(totalReward, new(big.Int).SetInt64(common.RewardMasterPercent))
|
||||||
rewardMaster = new(big.Int).Div(rewardMaster, new(big.Int).SetInt64(100))
|
rewardMaster = new(big.Int).Div(rewardMaster, new(big.Int).SetInt64(100))
|
||||||
balances[owner] = rewardMaster
|
balances[owner] = rewardMaster
|
||||||
// Get voters for masternode.
|
// Get voters for masternode.
|
||||||
voters := stateDatabase.GetVoters(state, masterAddr)
|
voters := state.GetVoters(statedb, masterAddr)
|
||||||
|
|
||||||
if len(voters) > 0 {
|
if len(voters) > 0 {
|
||||||
totalVoterReward := new(big.Int).Mul(totalReward, new(big.Int).SetUint64(common.RewardVoterPercent))
|
totalVoterReward := new(big.Int).Mul(totalReward, new(big.Int).SetUint64(common.RewardVoterPercent))
|
||||||
|
|
@ -446,7 +444,7 @@ func GetRewardBalancesRate(foundationWalletAddr common.Address, state *state.Sta
|
||||||
if _, ok := voterCaps[voteAddr]; ok && common.TIP2019Block.Uint64() <= blockNumber {
|
if _, ok := voterCaps[voteAddr]; ok && common.TIP2019Block.Uint64() <= blockNumber {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
voterCap := stateDatabase.GetVoterCap(state, masterAddr, voteAddr)
|
voterCap := state.GetVoterCap(statedb, masterAddr, voteAddr)
|
||||||
totalCap.Add(totalCap, voterCap)
|
totalCap.Add(totalCap, voterCap)
|
||||||
voterCaps[voteAddr] = voterCap
|
voterCaps[voteAddr] = voterCap
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -24,24 +24,20 @@ import (
|
||||||
"os"
|
"os"
|
||||||
"path/filepath"
|
"path/filepath"
|
||||||
|
|
||||||
|
"github.com/XinFinOrg/XDPoSChain/XDCx"
|
||||||
"github.com/XinFinOrg/XDPoSChain/XDCx/tradingstate"
|
"github.com/XinFinOrg/XDPoSChain/XDCx/tradingstate"
|
||||||
"github.com/XinFinOrg/XDPoSChain/XDCxlending"
|
"github.com/XinFinOrg/XDPoSChain/XDCxlending"
|
||||||
"github.com/XinFinOrg/XDPoSChain/accounts/abi/bind"
|
|
||||||
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/XDCx"
|
|
||||||
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS"
|
|
||||||
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/accounts"
|
"github.com/XinFinOrg/XDPoSChain/accounts"
|
||||||
|
"github.com/XinFinOrg/XDPoSChain/accounts/abi/bind"
|
||||||
"github.com/XinFinOrg/XDPoSChain/common"
|
"github.com/XinFinOrg/XDPoSChain/common"
|
||||||
"github.com/XinFinOrg/XDPoSChain/common/math"
|
"github.com/XinFinOrg/XDPoSChain/common/math"
|
||||||
"github.com/XinFinOrg/XDPoSChain/consensus"
|
"github.com/XinFinOrg/XDPoSChain/consensus"
|
||||||
|
"github.com/XinFinOrg/XDPoSChain/consensus/XDPoS"
|
||||||
"github.com/XinFinOrg/XDPoSChain/contracts"
|
"github.com/XinFinOrg/XDPoSChain/contracts"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core"
|
"github.com/XinFinOrg/XDPoSChain/core"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/bloombits"
|
"github.com/XinFinOrg/XDPoSChain/core/bloombits"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/rawdb"
|
"github.com/XinFinOrg/XDPoSChain/core/rawdb"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/state"
|
"github.com/XinFinOrg/XDPoSChain/core/state"
|
||||||
stateDatabase "github.com/XinFinOrg/XDPoSChain/core/state"
|
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/types"
|
"github.com/XinFinOrg/XDPoSChain/core/types"
|
||||||
"github.com/XinFinOrg/XDPoSChain/core/vm"
|
"github.com/XinFinOrg/XDPoSChain/core/vm"
|
||||||
"github.com/XinFinOrg/XDPoSChain/eth/downloader"
|
"github.com/XinFinOrg/XDPoSChain/eth/downloader"
|
||||||
|
|
@ -516,20 +512,20 @@ func (b *EthApiBackend) GetVotersRewards(masternodeAddr common.Address) map[comm
|
||||||
func (b *EthApiBackend) GetVotersCap(checkpoint *big.Int, masterAddr common.Address, voters []common.Address) map[common.Address]*big.Int {
|
func (b *EthApiBackend) GetVotersCap(checkpoint *big.Int, masterAddr common.Address, voters []common.Address) map[common.Address]*big.Int {
|
||||||
chain := b.eth.blockchain
|
chain := b.eth.blockchain
|
||||||
checkpointBlock := chain.GetBlockByNumber(checkpoint.Uint64())
|
checkpointBlock := chain.GetBlockByNumber(checkpoint.Uint64())
|
||||||
state, err := chain.StateAt(checkpointBlock.Root())
|
statedb, err := chain.StateAt(checkpointBlock.Root())
|
||||||
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("fail to get state in GetVotersCap", "checkpoint", checkpoint, "err", err)
|
log.Error("fail to get state in GetVotersCap", "checkpoint", checkpoint, "err", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if state != nil {
|
if statedb != nil {
|
||||||
log.Error("fail to get state in GetVotersCap", "checkpoint", checkpoint)
|
log.Error("fail to get state in GetVotersCap", "checkpoint", checkpoint)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
voterCaps := make(map[common.Address]*big.Int)
|
voterCaps := make(map[common.Address]*big.Int)
|
||||||
for _, voteAddr := range voters {
|
for _, voteAddr := range voters {
|
||||||
voterCap := stateDatabase.GetVoterCap(state, masterAddr, voteAddr)
|
voterCap := state.GetVoterCap(statedb, masterAddr, voteAddr)
|
||||||
voterCaps[voteAddr] = voterCap
|
voterCaps[voteAddr] = voterCap
|
||||||
}
|
}
|
||||||
return voterCaps
|
return voterCaps
|
||||||
|
|
@ -552,21 +548,21 @@ func (b *EthApiBackend) GetEpochDuration() *big.Int {
|
||||||
// GetMasternodesCap return a cap of all masternode at a checkpoint
|
// GetMasternodesCap return a cap of all masternode at a checkpoint
|
||||||
func (b *EthApiBackend) GetMasternodesCap(checkpoint uint64) map[common.Address]*big.Int {
|
func (b *EthApiBackend) GetMasternodesCap(checkpoint uint64) map[common.Address]*big.Int {
|
||||||
checkpointBlock := b.eth.blockchain.GetBlockByNumber(checkpoint)
|
checkpointBlock := b.eth.blockchain.GetBlockByNumber(checkpoint)
|
||||||
state, err := b.eth.blockchain.StateAt(checkpointBlock.Root())
|
statedb, err := b.eth.blockchain.StateAt(checkpointBlock.Root())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
log.Error("fail to get state in GetMasternodesCap", "checkpoint", checkpoint, "err", err)
|
log.Error("fail to get state in GetMasternodesCap", "checkpoint", checkpoint, "err", err)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
if state == nil {
|
if statedb == nil {
|
||||||
log.Error("fail to get state in GetMasternodesCap", "checkpoint", checkpoint)
|
log.Error("fail to get state in GetMasternodesCap", "checkpoint", checkpoint)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
candicates := stateDatabase.GetCandidates(state)
|
candicates := state.GetCandidates(statedb)
|
||||||
|
|
||||||
masternodesCap := map[common.Address]*big.Int{}
|
masternodesCap := map[common.Address]*big.Int{}
|
||||||
for _, candicate := range candicates {
|
for _, candicate := range candicates {
|
||||||
masternodesCap[candicate] = stateDatabase.GetCandidateCap(state, candicate)
|
masternodesCap[candicate] = state.GetCandidateCap(statedb, candicate)
|
||||||
}
|
}
|
||||||
|
|
||||||
return masternodesCap
|
return masternodesCap
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue