Skip to content

Commit dfaad55

Browse files
committed
Revert "Problem: require gas in RecvPacket is inaccurate when ReceiverChainIsSource (crypto-org-chain#1458)"
This reverts commit 0ef63b9.
1 parent 9b25932 commit dfaad55

File tree

2 files changed

+2
-37
lines changed

2 files changed

+2
-37
lines changed

CHANGELOG.md

-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,6 @@
55
### State Machine Breaking
66

77
* [#1407](https://github.com/crypto-org-chain/cronos/pull/1407) Add end-to-end encryption module.
8-
* [#1458](https://github.com/crypto-org-chain/cronos/pull/1458) Adjust require gas for recvPacket when ReceiverChainIsSource.
98

109
### Improvements
1110

x/cronos/keeper/precompiles/relayer.go

+2-36
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,6 @@ import (
1313
"github.com/ethereum/go-ethereum/params"
1414

1515
authtypes "github.com/cosmos/cosmos-sdk/x/auth/types"
16-
ibctransfertypes "github.com/cosmos/ibc-go/v7/modules/apps/transfer/types"
17-
channeltypes "github.com/cosmos/ibc-go/v7/modules/core/04-channel/types"
1816
cronosevents "github.com/crypto-org-chain/cronos/v2/x/cronos/events"
1917
"github.com/crypto-org-chain/cronos/v2/x/cronos/events/bindings/cosmos/precompile/relayer"
2018
"github.com/crypto-org-chain/cronos/v2/x/cronos/types"
@@ -60,10 +58,6 @@ const (
6058
UpdateClientAndAcknowledgement = "updateClientAndAcknowledgement"
6159
UpdateClientAndTimeout = "updateClientAndTimeout"
6260
UpdateClientAndTimeoutOnClose = "updateClientAndTimeoutOnClose"
63-
64-
GasForUpdateClient = 111894
65-
GasWhenReceiverChainIsSource = 51705
66-
GasWhenReceiverChainIsNotSource = 144025
6761
)
6862

6963
func init() {
@@ -99,7 +93,7 @@ func init() {
9993
case ChannelCloseConfirm:
10094
relayerGasRequiredByMethod[methodID] = 31199
10195
case RecvPacket:
102-
relayerGasRequiredByMethod[methodID] = GasWhenReceiverChainIsNotSource
96+
relayerGasRequiredByMethod[methodID] = 144025
10397
case Acknowledgement:
10498
relayerGasRequiredByMethod[methodID] = 61781
10599
case Timeout:
@@ -113,7 +107,7 @@ func init() {
113107
case UpdateClientAndChannelOpenConfirm:
114108
relayerGasRequiredByMethod[methodID] = 132734
115109
case UpdateClientAndRecvPacket:
116-
relayerGasRequiredByMethod[methodID] = GasForUpdateClient + GasWhenReceiverChainIsNotSource
110+
relayerGasRequiredByMethod[methodID] = 257120
117111
case UpdateClientAndConnectionOpenInit:
118112
relayerGasRequiredByMethod[methodID] = 131649
119113
case UpdateClientAndConnectionOpenAck:
@@ -171,34 +165,6 @@ func (bc *RelayerContract) RequiredGas(input []byte) (gas uint64) {
171165
var methodID [4]byte
172166
copy(methodID[:], input[:4])
173167
requiredGas, ok := relayerGasRequiredByMethod[methodID]
174-
method, err := irelayerABI.MethodById(methodID[:])
175-
if err != nil {
176-
panic(err)
177-
}
178-
if method.Name == RecvPacket || method.Name == UpdateClientAndRecvPacket {
179-
args, err := method.Inputs.Unpack(input[4:])
180-
if err != nil {
181-
panic(err)
182-
}
183-
i := args[0].([]byte)
184-
if method.Name == UpdateClientAndRecvPacket {
185-
i = args[1].([]byte)
186-
}
187-
var msg channeltypes.MsgRecvPacket
188-
if err = bc.cdc.Unmarshal(i, &msg); err != nil {
189-
panic(err)
190-
}
191-
var data ibctransfertypes.FungibleTokenPacketData
192-
if err = ibctransfertypes.ModuleCdc.UnmarshalJSON(msg.Packet.GetData(), &data); err != nil {
193-
panic(err)
194-
}
195-
if ibctransfertypes.ReceiverChainIsSource(msg.Packet.GetSourcePort(), msg.Packet.GetSourceChannel(), data.Denom) {
196-
requiredGas = GasWhenReceiverChainIsSource
197-
if method.Name == UpdateClientAndRecvPacket {
198-
requiredGas += GasForUpdateClient
199-
}
200-
}
201-
}
202168
intrinsicGas, _ := core.IntrinsicGas(input, nil, false, bc.isHomestead, bc.isIstanbul, bc.isShanghai)
203169
defer func() {
204170
methodName := relayerMethodNamedByMethod[methodID]

0 commit comments

Comments
 (0)