diff --git a/bridge/setu/broadcaster/broadcaster.go b/bridge/setu/broadcaster/broadcaster.go index 4f54398e..c650e980 100644 --- a/bridge/setu/broadcaster/broadcaster.go +++ b/bridge/setu/broadcaster/broadcaster.go @@ -120,7 +120,7 @@ func (tb *TxBroadcaster) BroadcastToMatic(msg bor.CallMsg) error { maticClient := helper.GetMaticClient() // get auth - auth, err := helper.GenerateAuthObj(maticClient, *msg.To, msg.Data) + auth, err := helper.GenerateAuthObj(maticClient, *msg.To, msg.Data, false) if err != nil { tb.logger.Error("Error generating auth object", "error", err) diff --git a/bridge/setu/processor/checkpointsync.go b/bridge/setu/processor/checkpointsync.go index 5309f0b3..0387d994 100644 --- a/bridge/setu/processor/checkpointsync.go +++ b/bridge/setu/processor/checkpointsync.go @@ -147,7 +147,7 @@ func (cp *CheckpointProcessor) sendCheckpointSyncToStakeChain(eventBytes string, } else { txHash := common.FromHex(txHash) if err := cp.createAndSendCheckpointSyncToTron(checkpointContext, number, startBlock, endBlock, rootChain, blockHeight, txHash); err != nil { - cp.Logger.Error("Error sending checkpoint to rootchain", "error", err) + cp.Logger.Error("Error sending checkpoint sync to rootchain", "error", err) return err } } diff --git a/helper/tx.go b/helper/tx.go index b28954f9..7ce84554 100644 --- a/helper/tx.go +++ b/helper/tx.go @@ -22,7 +22,7 @@ import ( "google.golang.org/protobuf/proto" ) -func GenerateAuthObj(client *ethclient.Client, address common.Address, data []byte) (auth *bind.TransactOpts, err error) { +func GenerateAuthObj(client *ethclient.Client, address common.Address, data []byte, increaseGasPrice bool) (auth *bind.TransactOpts, err error) { // generate call msg callMsg := ethereum.CallMsg{ To: &address, @@ -45,6 +45,14 @@ func GenerateAuthObj(client *ethclient.Client, address common.Address, data []by if err != nil { return } + if increaseGasPrice { + multiplier := big.NewInt(105) + divisor := big.NewInt(100) + originGasPrice := gasprice + gasprice = new(big.Int).Mul(gasprice, multiplier) + gasprice.Div(gasprice, divisor) + Logger.Debug("adjust gas price", "origin gas price", originGasPrice, "adjusted gas price", gasprice) + } mainChainMaxGasPrice := GetConfig().MainchainMaxGasPrice // Check if configured or not, Use default in case of invalid value @@ -106,7 +114,14 @@ func (c *ContractCaller) SendCheckpoint(signedData []byte, sigs [][3]*big.Int, case hmtypes.RootChainTypeBsc: client = GetBscClient() } - auth, err := GenerateAuthObj(client, rootChainAddress, data) + var auth *bind.TransactOpts + + if rootChain == hmtypes.RootChainTypeEth { + auth, err = GenerateAuthObj(client, rootChainAddress, data, true) + } else { + auth, err = GenerateAuthObj(client, rootChainAddress, data, false) + } + if err != nil { Logger.Error("Unable to create auth object", "error", err) return err @@ -141,7 +156,7 @@ func (c *ContractCaller) SendTick(signedData []byte, sigs []byte, slashManagerAd return err } - auth, err := GenerateAuthObj(GetMainClient(), slashManagerAddress, data) + auth, err := GenerateAuthObj(GetMainClient(), slashManagerAddress, data, false) if err != nil { Logger.Error("Unable to create auth object", "error", err) return err @@ -173,7 +188,7 @@ func (c *ContractCaller) StakeFor(val common.Address, stakeAmount *big.Int, feeA return err } - auth, err := GenerateAuthObj(GetMainClient(), stakeManagerAddress, data) + auth, err := GenerateAuthObj(GetMainClient(), stakeManagerAddress, data, false) if err != nil { Logger.Error("Unable to create auth object", "error", err) return err @@ -206,7 +221,7 @@ func (c *ContractCaller) ApproveTokens(amount *big.Int, stakeManager common.Addr return err } - auth, err := GenerateAuthObj(GetMainClient(), tokenAddress, data) + auth, err := GenerateAuthObj(GetMainClient(), tokenAddress, data, false) if err != nil { Logger.Error("Unable to create auth object", "error", err) return err @@ -302,7 +317,7 @@ func (c *ContractCaller) SendMainStakingSync(syncMethod string, signedData []byt case hmtypes.RootChainTypeBsc: client = GetBscClient() } - auth, err := GenerateAuthObj(client, stakingManager, data) + auth, err := GenerateAuthObj(client, stakingManager, data, false) if err != nil { Logger.Error("Unable to create auth object", "error", err) return err