From cd38bde047ce5b72e275d2aad9c5bad966cf47f0 Mon Sep 17 00:00:00 2001 From: Liam Lai Date: Mon, 15 Apr 2024 17:36:28 +0800 Subject: [PATCH 1/2] update all IsTIPXDCXReceiver condition --- common/constants.go | 3 ++- common/constants/constants.go.devnet | 2 +- common/constants/constants.go.testnet | 2 +- core/blockchain.go | 15 +++++++-------- core/lending_pool.go | 4 ++-- core/order_pool.go | 4 ++-- core/state_processor.go | 8 ++++---- core/token_validator.go | 6 +++--- params/config.go | 6 +++++- 9 files changed, 27 insertions(+), 23 deletions(-) diff --git a/common/constants.go b/common/constants.go index 803443a7814c..a7d6535be343 100644 --- a/common/constants.go +++ b/common/constants.go @@ -45,7 +45,8 @@ var TIPXDCX = big.NewInt(38383838) var TIPXDCXLending = big.NewInt(38383838) var TIPXDCXCancellationFee = big.NewInt(38383838) var TIPXDCXCancellationFeeTestnet = big.NewInt(38383838) -var TIPXDCXDISABLE = big.NewInt(99999999900) +var TIPXDCXMinerDisable = big.NewInt(88999999900) +var TIPXDCXReceiverDisable = big.NewInt(99999999999) var BerlinBlock = big.NewInt(9999999999) var LondonBlock = big.NewInt(9999999999) var MergeBlock = big.NewInt(9999999999) diff --git a/common/constants/constants.go.devnet b/common/constants/constants.go.devnet index 81951a760cd8..70d96de2433f 100644 --- a/common/constants/constants.go.devnet +++ b/common/constants/constants.go.devnet @@ -45,7 +45,7 @@ var TIPXDCX = big.NewInt(225000) var TIPXDCXLending = big.NewInt(225000) var TIPXDCXCancellationFee = big.NewInt(225000) var TIPXDCXCancellationFeeTestnet = big.NewInt(225000) -var TIPXDCXDISABLE = big.NewInt(15894900) +var TIPXDCXMinerDisable = big.NewInt(15894900) var BerlinBlock = big.NewInt(9999999999) var LondonBlock = big.NewInt(9999999999) var MergeBlock = big.NewInt(9999999999) diff --git a/common/constants/constants.go.testnet b/common/constants/constants.go.testnet index a5bd410b0c2a..f369e2e1ad3c 100644 --- a/common/constants/constants.go.testnet +++ b/common/constants/constants.go.testnet @@ -45,7 +45,7 @@ var TIPXDCX = big.NewInt(23779191) var TIPXDCXLending = big.NewInt(23779191) var TIPXDCXCancellationFee = big.NewInt(23779191) var TIPXDCXCancellationFeeTestnet = big.NewInt(23779191) -var TIPXDCXDISABLE = big.NewInt(61290000) // Target 31st March 2024 +var TIPXDCXMinerDisable = big.NewInt(61290000) // Target 31st March 2024 var BerlinBlock = big.NewInt(9999999999) var LondonBlock = big.NewInt(9999999999) var MergeBlock = big.NewInt(9999999999) diff --git a/core/blockchain.go b/core/blockchain.go index d4e3736d4712..243e291bea5f 100644 --- a/core/blockchain.go +++ b/core/blockchain.go @@ -607,7 +607,7 @@ func (bc *BlockChain) repair(head **types.Block) error { if ok { tradingService := engine.GetXDCXService() lendingService := engine.GetLendingService() - if bc.Config().IsTIPXDCX((*head).Number()) && bc.chainConfig.XDPoS != nil && (*head).NumberU64() > bc.chainConfig.XDPoS.Epoch && tradingService != nil && lendingService != nil { + if bc.Config().IsTIPXDCXReceiver((*head).Number()) && bc.chainConfig.XDPoS != nil && (*head).NumberU64() > bc.chainConfig.XDPoS.Epoch && tradingService != nil && lendingService != nil { author, _ := bc.Engine().Author((*head).Header()) tradingRoot, err := tradingService.GetTradingStateRoot(*head, author) if err == nil { @@ -913,7 +913,7 @@ func (bc *BlockChain) SaveData() { if err := triedb.Commit(recent.Root(), true); err != nil { log.Error("Failed to commit recent state trie", "err", err) } - if bc.Config().IsTIPXDCX(recent.Number()) && bc.chainConfig.XDPoS != nil && recent.NumberU64() > bc.chainConfig.XDPoS.Epoch && engine != nil { + if bc.Config().IsTIPXDCXReceiver(recent.Number()) && bc.chainConfig.XDPoS != nil && recent.NumberU64() > bc.chainConfig.XDPoS.Epoch && engine != nil { author, _ := bc.Engine().Author(recent.Header()) if tradingService != nil { tradingRoot, _ := tradingService.GetTradingStateRoot(recent, author) @@ -1234,7 +1234,7 @@ func (bc *BlockChain) WriteBlockWithState(block *types.Block, receipts []*types. var tradingService utils.TradingService var lendingTrieDb *trie.Database var lendingService utils.LendingService - if bc.Config().IsTIPXDCX(block.Number()) && bc.chainConfig.XDPoS != nil && block.NumberU64() > bc.chainConfig.XDPoS.Epoch && engine != nil { + if bc.Config().IsTIPXDCXReceiver(block.Number()) && bc.chainConfig.XDPoS != nil && block.NumberU64() > bc.chainConfig.XDPoS.Epoch && engine != nil { tradingService = engine.GetXDCXService() if tradingService != nil { tradingTrieDb = tradingService.GetStateCache().TrieDB() @@ -1587,7 +1587,7 @@ func (bc *BlockChain) insertChain(chain types.Blocks, verifySeals bool) (int, [] var tradingService utils.TradingService var lendingService utils.LendingService isSDKNode := false - if bc.Config().IsTIPXDCX(block.Number()) && bc.chainConfig.XDPoS != nil && engine != nil && block.NumberU64() > bc.chainConfig.XDPoS.Epoch { + if bc.Config().IsTIPXDCXReceiver(block.Number()) && bc.chainConfig.XDPoS != nil && engine != nil && block.NumberU64() > bc.chainConfig.XDPoS.Epoch { author, err := bc.Engine().Author(block.Header()) // Ignore error, we're past header validation if err != nil { bc.reportBlock(block, nil, err) @@ -1928,8 +1928,7 @@ func (bc *BlockChain) getResultBlock(block *types.Block, verifiedM2 bool) (*Resu } // liquidate / finalize open lendingTrades if block.Number().Uint64()%bc.chainConfig.XDPoS.Epoch == common.LiquidateLendingTradeBlock { - finalizedTrades := map[common.Hash]*lendingstate.LendingTrade{} - finalizedTrades, _, _, _, _, err = lendingService.ProcessLiquidationData(block.Header(), bc, statedb, tradingState, lendingState) + finalizedTrades, _, _, _, _, err := lendingService.ProcessLiquidationData(block.Header(), bc, statedb, tradingState, lendingState) if err != nil { return nil, fmt.Errorf("failed to ProcessLiquidationData. Err: %v ", err) } @@ -2050,7 +2049,7 @@ func (bc *BlockChain) insertBlock(block *types.Block) ([]interface{}, []*types.L // Only count canonical blocks for GC processing time bc.gcproc += result.proctime bc.UpdateBlocksHashCache(block) - if bc.chainConfig.IsTIPXDCX(block.Number()) && bc.chainConfig.XDPoS != nil && block.NumberU64() > bc.chainConfig.XDPoS.Epoch { + if bc.chainConfig.IsTIPXDCXReceiver(block.Number()) && bc.chainConfig.XDPoS != nil && block.NumberU64() > bc.chainConfig.XDPoS.Epoch { bc.logExchangeData(block) bc.logLendingData(block) } @@ -2274,7 +2273,7 @@ func (bc *BlockChain) reorg(oldBlock, newBlock *types.Block) error { } }() } - if bc.chainConfig.IsTIPXDCX(commonBlock.Number()) && bc.chainConfig.XDPoS != nil && commonBlock.NumberU64() > bc.chainConfig.XDPoS.Epoch { + if bc.chainConfig.IsTIPXDCXReceiver(commonBlock.Number()) && bc.chainConfig.XDPoS != nil && commonBlock.NumberU64() > bc.chainConfig.XDPoS.Epoch { bc.reorgTxMatches(deletedTxs, newChain) } return nil diff --git a/core/lending_pool.go b/core/lending_pool.go index 6d5125d3a927..fdeeb9066cda 100644 --- a/core/lending_pool.go +++ b/core/lending_pool.go @@ -273,7 +273,7 @@ func (pool *LendingPool) loop() { // reset retrieves the current state of the blockchain and ensures the content // of the transaction pool is valid with regard to the chain state. func (pool *LendingPool) reset(oldHead, newblock *types.Block) { - if !pool.chainconfig.IsTIPXDCX(pool.chain.CurrentBlock().Number()) || pool.chain.Config().XDPoS == nil || pool.chain.CurrentBlock().NumberU64() <= pool.chain.Config().XDPoS.Epoch { + if !pool.chainconfig.IsTIPXDCXReceiver(pool.chain.CurrentBlock().Number()) || pool.chain.Config().XDPoS == nil || pool.chain.CurrentBlock().NumberU64() <= pool.chain.Config().XDPoS.Epoch { return } // If we're reorging an old state, reinject all dropped transactions @@ -814,7 +814,7 @@ func (pool *LendingPool) AddRemotes(txs []*types.LendingTransaction) []error { // addTx enqueues a single transaction into the pool if it is valid. func (pool *LendingPool) addTx(tx *types.LendingTransaction, local bool) error { - if !pool.chainconfig.IsTIPXDCX(pool.chain.CurrentBlock().Number()) { + if !pool.chainconfig.IsTIPXDCXReceiver(pool.chain.CurrentBlock().Number()) { return nil } tx.CacheHash() diff --git a/core/order_pool.go b/core/order_pool.go index ed275e179204..a4b8b3827a54 100644 --- a/core/order_pool.go +++ b/core/order_pool.go @@ -278,7 +278,7 @@ func (pool *OrderPool) loop() { // reset retrieves the current state of the blockchain and ensures the content // of the transaction pool is valid with regard to the chain state. func (pool *OrderPool) reset(oldHead, newblock *types.Block) { - if !pool.chainconfig.IsTIPXDCX(pool.chain.CurrentBlock().Number()) || pool.chain.Config().XDPoS == nil || pool.chain.CurrentBlock().NumberU64() <= pool.chain.Config().XDPoS.Epoch { + if !pool.chainconfig.IsTIPXDCXReceiver(pool.chain.CurrentBlock().Number()) || pool.chain.Config().XDPoS == nil || pool.chain.CurrentBlock().NumberU64() <= pool.chain.Config().XDPoS.Epoch { return } // If we're reorging an old state, reinject all dropped transactions @@ -729,7 +729,7 @@ func (pool *OrderPool) AddRemotes(txs []*types.OrderTransaction) []error { // addTx enqueues a single transaction into the pool if it is valid. func (pool *OrderPool) addTx(tx *types.OrderTransaction, local bool) error { - if !pool.chainconfig.IsTIPXDCX(pool.chain.CurrentBlock().Number()) { + if !pool.chainconfig.IsTIPXDCXReceiver(pool.chain.CurrentBlock().Number()) { return nil } tx.CacheHash() diff --git a/core/state_processor.go b/core/state_processor.go index acfec0c8fdcc..bbb58edc8706 100644 --- a/core/state_processor.go +++ b/core/state_processor.go @@ -218,17 +218,17 @@ func ApplyTransaction(config *params.ChainConfig, tokensFee map[common.Address]* if tx.To() != nil && tx.To().String() == common.BlockSigners && config.IsTIPSigning(header.Number) { return ApplySignTransaction(config, statedb, header, tx, usedGas) } - if tx.To() != nil && tx.To().String() == common.TradingStateAddr && config.IsTIPXDCX(header.Number) { + if tx.To() != nil && tx.To().String() == common.TradingStateAddr && config.IsTIPXDCXReceiver(header.Number) { return ApplyEmptyTransaction(config, statedb, header, tx, usedGas) } - if tx.To() != nil && tx.To().String() == common.XDCXLendingAddress && config.IsTIPXDCX(header.Number) { + if tx.To() != nil && tx.To().String() == common.XDCXLendingAddress && config.IsTIPXDCXReceiver(header.Number) { return ApplyEmptyTransaction(config, statedb, header, tx, usedGas) } - if tx.IsTradingTransaction() && config.IsTIPXDCX(header.Number) { + if tx.IsTradingTransaction() && config.IsTIPXDCXReceiver(header.Number) { return ApplyEmptyTransaction(config, statedb, header, tx, usedGas) } - if tx.IsLendingFinalizedTradeTransaction() && config.IsTIPXDCX(header.Number) { + if tx.IsLendingFinalizedTradeTransaction() && config.IsTIPXDCXReceiver(header.Number) { return ApplyEmptyTransaction(config, statedb, header, tx, usedGas) } diff --git a/core/token_validator.go b/core/token_validator.go index 49e6261f89e8..f3ee9291630b 100644 --- a/core/token_validator.go +++ b/core/token_validator.go @@ -86,7 +86,7 @@ func RunContract(chain consensus.ChainContext, statedb *state.StateDB, contractA return unpackResult, nil } -//FIXME: please use copyState for this function +// FIXME: please use copyState for this function // CallContractWithState executes a contract call at the given state. func CallContractWithState(call ethereum.CallMsg, chain consensus.ChainContext, statedb *state.StateDB) ([]byte, error) { // Ensure message is initialized properly. @@ -124,7 +124,7 @@ func ValidateXDCXApplyTransaction(chain consensus.ChainContext, blockNumber *big if blockNumber == nil || blockNumber.Sign() <= 0 { blockNumber = chain.CurrentHeader().Number } - if !chain.Config().IsTIPXDCX(blockNumber) { + if !chain.Config().IsTIPXDCXReceiver(blockNumber) { return nil } contractABI, err := GetTokenAbi(contract.TRC21ABI) @@ -146,7 +146,7 @@ func ValidateXDCZApplyTransaction(chain consensus.ChainContext, blockNumber *big if blockNumber == nil || blockNumber.Sign() <= 0 { blockNumber = chain.CurrentHeader().Number } - if !chain.Config().IsTIPXDCX(blockNumber) { + if !chain.Config().IsTIPXDCXReceiver(blockNumber) { return nil } contractABI, err := GetTokenAbi(contract.TRC21ABI) diff --git a/params/config.go b/params/config.go index 933d5f2980a9..92210a406545 100644 --- a/params/config.go +++ b/params/config.go @@ -606,7 +606,11 @@ func (c *ChainConfig) IsTIPXDCX(num *big.Int) bool { return isForked(common.TIPXDCX, num) } func (c *ChainConfig) IsTIPXDCXMiner(num *big.Int) bool { - return isForked(common.TIPXDCX, num) && !isForked(common.TIPXDCXDISABLE, num) + return isForked(common.TIPXDCX, num) && !isForked(common.TIPXDCXMinerDisable, num) +} + +func (c *ChainConfig) IsTIPXDCXReceiver(num *big.Int) bool { + return isForked(common.TIPXDCX, num) && !isForked(common.TIPXDCXReceiverDisable, num) } func (c *ChainConfig) IsTIPXDCXLending(num *big.Int) bool { From dd03cb032cea944614ee114fbe480f6f6c6e6af9 Mon Sep 17 00:00:00 2001 From: Liam Lai Date: Mon, 15 Apr 2024 23:22:40 +0800 Subject: [PATCH 2/2] add TIPXDCXReceiverDisable on testnet and devnet --- common/constants/constants.go.devnet | 1 + common/constants/constants.go.testnet | 1 + 2 files changed, 2 insertions(+) diff --git a/common/constants/constants.go.devnet b/common/constants/constants.go.devnet index 70d96de2433f..0f7fef76fdd0 100644 --- a/common/constants/constants.go.devnet +++ b/common/constants/constants.go.devnet @@ -46,6 +46,7 @@ var TIPXDCXLending = big.NewInt(225000) var TIPXDCXCancellationFee = big.NewInt(225000) var TIPXDCXCancellationFeeTestnet = big.NewInt(225000) var TIPXDCXMinerDisable = big.NewInt(15894900) +var TIPXDCXReceiverDisable = big.NewInt(9999999999) var BerlinBlock = big.NewInt(9999999999) var LondonBlock = big.NewInt(9999999999) var MergeBlock = big.NewInt(9999999999) diff --git a/common/constants/constants.go.testnet b/common/constants/constants.go.testnet index f369e2e1ad3c..75884859bd76 100644 --- a/common/constants/constants.go.testnet +++ b/common/constants/constants.go.testnet @@ -46,6 +46,7 @@ var TIPXDCXLending = big.NewInt(23779191) var TIPXDCXCancellationFee = big.NewInt(23779191) var TIPXDCXCancellationFeeTestnet = big.NewInt(23779191) var TIPXDCXMinerDisable = big.NewInt(61290000) // Target 31st March 2024 +var TIPXDCXReceiverDisable = big.NewInt(9999999999) var BerlinBlock = big.NewInt(9999999999) var LondonBlock = big.NewInt(9999999999) var MergeBlock = big.NewInt(9999999999)