From 8d26c02411f65d21a1ffe40913c34f15b8854704 Mon Sep 17 00:00:00 2001 From: hanzhenjiang Date: Tue, 11 Jan 2022 16:25:06 +0800 Subject: [PATCH] delay offset and del no use config --- bridge/setu/listener/tron.go | 10 +++++----- bridge/setu/util/common.go | 10 ++++++++-- helper/config.go | 5 ++--- helper/util.go | 2 +- 4 files changed, 16 insertions(+), 11 deletions(-) diff --git a/bridge/setu/listener/tron.go b/bridge/setu/listener/tron.go index cb8d3bd2..f760590c 100644 --- a/bridge/setu/listener/tron.go +++ b/bridge/setu/listener/tron.go @@ -214,7 +214,7 @@ func (tl *TronListener) queryAndBroadcastEvents(chainManagerParams *chainmanager // topup has to be processed first before validator join. so adding delay. delay := util.TaskDelayBetweenEachVal tl.sendTaskWithDelay("sendValidatorJoinToHeimdall", selectedEvent.Name, logBytes, delay) - } else if isCurrentValidator, delay := util.CalculateTaskDelay(tl.cliCtx); isCurrentValidator { + } else if isCurrentValidator, delay := util.CalculateTaskDelayWithOffset(tl.cliCtx,1); isCurrentValidator { // topup has to be processed first before validator join. so adding delay. delay = delay + util.TaskDelayBetweenEachVal tl.sendTaskWithDelay("sendValidatorJoinToHeimdall", selectedEvent.Name, logBytes, delay) @@ -237,7 +237,7 @@ func (tl *TronListener) queryAndBroadcastEvents(chainManagerParams *chainmanager } if bytes.Equal(event.SignerPubkey, pubkeyBytes) { tl.sendTaskWithDelay("sendSignerChangeToHeimdall", selectedEvent.Name, logBytes, 0) - } else if isCurrentValidator, delay := util.CalculateTaskDelay(tl.cliCtx); isCurrentValidator { + } else if isCurrentValidator, delay := util.CalculateTaskDelayWithOffset(tl.cliCtx,1); isCurrentValidator { tl.sendTaskWithDelay("sendSignerChangeToHeimdall", selectedEvent.Name, logBytes, delay) } @@ -248,7 +248,7 @@ func (tl *TronListener) queryAndBroadcastEvents(chainManagerParams *chainmanager } if util.IsEventSender(tl.cliCtx, event.ValidatorId.Uint64()) { tl.sendTaskWithDelay("sendUnstakeInitToHeimdall", selectedEvent.Name, logBytes, 0) - } else if isCurrentValidator, delay := util.CalculateTaskDelay(tl.cliCtx); isCurrentValidator { + } else if isCurrentValidator, delay := util.CalculateTaskDelayWithOffset(tl.cliCtx,1); isCurrentValidator { tl.sendTaskWithDelay("sendUnstakeInitToHeimdall", selectedEvent.Name, logBytes, delay) } @@ -264,7 +264,7 @@ func (tl *TronListener) queryAndBroadcastEvents(chainManagerParams *chainmanager } if bytes.Equal(event.User.Bytes(), helper.GetAddress()) { tl.sendTaskWithDelay("sendTopUpFeeToHeimdall", selectedEvent.Name, logBytes, 0) - } else if isCurrentValidator, delay := util.CalculateTaskDelay(tl.cliCtx); isCurrentValidator { + } else if isCurrentValidator, delay := util.CalculateTaskDelayWithOffset(tl.cliCtx,1); isCurrentValidator { tl.sendTaskWithDelay("sendTopUpFeeToHeimdall", selectedEvent.Name, logBytes, delay) } @@ -280,7 +280,7 @@ func (tl *TronListener) queryAndBroadcastEvents(chainManagerParams *chainmanager } if util.IsEventSender(tl.cliCtx, event.ValidatorId.Uint64()) { tl.sendTaskWithDelay("sendUnjailToHeimdall", selectedEvent.Name, logBytes, 0) - } else if isCurrentValidator, delay := util.CalculateTaskDelay(tl.cliCtx); isCurrentValidator { + } else if isCurrentValidator, delay := util.CalculateTaskDelayWithOffset(tl.cliCtx,1); isCurrentValidator { tl.sendTaskWithDelay("sendUnjailToHeimdall", selectedEvent.Name, logBytes, delay) } diff --git a/bridge/setu/util/common.go b/bridge/setu/util/common.go index 7376fc9c..80c77e28 100644 --- a/bridge/setu/util/common.go +++ b/bridge/setu/util/common.go @@ -140,9 +140,15 @@ func IsInProposerList(cliCtx cliContext.CLIContext, count uint64) (bool, error) return false, nil } +//default offset 0 +func CalculateTaskDelay(cliCtx cliContext.CLIContext) (bool, time.Duration){ + return CalculateTaskDelayWithOffset(cliCtx,0) +} + // CalculateTaskDelay calculates delay required for current validator to propose the tx // It solves for multiple validators sending same transaction. -func CalculateTaskDelay(cliCtx cliContext.CLIContext) (bool, time.Duration) { +// with offset +func CalculateTaskDelayWithOffset(cliCtx cliContext.CLIContext, offset int) (bool, time.Duration) { // calculate validator position valPosition := 0 isCurrentValidator := false @@ -162,7 +168,7 @@ func CalculateTaskDelay(cliCtx cliContext.CLIContext) (bool, time.Duration) { logger.Info("Fetched current validatorset list", "currentValidatorcount", len(validatorSet.Validators)) for i, validator := range validatorSet.Validators { if bytes.Equal(validator.Signer.Bytes(), helper.GetAddress()) { - valPosition = i + 1 + valPosition = i + offset isCurrentValidator = true break } diff --git a/helper/config.go b/helper/config.go index 85edde12..b3a144f2 100644 --- a/helper/config.go +++ b/helper/config.go @@ -111,12 +111,11 @@ type Configuration struct { BttcRPCUrl string `mapstructure:"bttc_rpc_url"` // RPC endpoint for bttc chain TendermintRPCUrl string `mapstructure:"tendermint_rpc_url"` // tendemint node url - TronGridURL string `mapstructure:"tron_grid_url"` // tron grid url + TronGridUrl string `mapstructure:"tron_grid_url"` // tron grid url AmqpURL string `mapstructure:"amqp_url"` // amqp url DeliveryServerURL string `mapstructure:"delivery_rest_server"` // delivery server url // tron - TronGridUrl string `mapstructure:"tron_grid_url"` // tron server url TronGridApiKey string `mapstructure:"tron_grid_api_key"` // tron api key MainchainGasLimit uint64 `mapstructure:"main_chain_gas_limit"` // gas limit to mainchain transaction. eg....submit checkpoint. @@ -266,7 +265,7 @@ func GetDefaultHeimdallConfig() Configuration { BscRPCUrl: DefaultBscRPCUrl, TendermintRPCUrl: DefaultTendermintNodeURL, - TronGridURL: DefaultTronGridUrl, + TronGridUrl: DefaultTronGridUrl, AmqpURL: DefaultAmqpURL, DeliveryServerURL: DefaultDeliveryServerURL, diff --git a/helper/util.go b/helper/util.go index 4869e102..839f61c5 100644 --- a/helper/util.go +++ b/helper/util.go @@ -850,7 +850,7 @@ func GetHeimdallServerEndpoint(endpoint string) string { // GetTronGridEndpoint returns tron server endpoint func GetTronGridEndpoint(endpoint string) string { - u, _ := url.Parse(GetConfig().TronGridURL) + u, _ := url.Parse(GetConfig().TronGridUrl) u.Path = path.Join(u.Path, endpoint) return u.String() }