diff --git a/e2e/interchaintestv8/chainconfig/kurtosis.go b/e2e/interchaintestv8/chainconfig/kurtosis.go index 7e0265947..a4098e1dc 100644 --- a/e2e/interchaintestv8/chainconfig/kurtosis.go +++ b/e2e/interchaintestv8/chainconfig/kurtosis.go @@ -44,6 +44,7 @@ var ( ElectraForkEpoch: 1, }, WaitForFinalization: true, + AdditionalServices: []string{}, } executionService = fmt.Sprintf("el-1-%s-%s", kurtosisConfig.Participants[0].ELType, kurtosisConfig.Participants[0].CLType) consensusService = fmt.Sprintf("cl-1-%s-%s", kurtosisConfig.Participants[0].CLType, kurtosisConfig.Participants[0].ELType) @@ -63,6 +64,7 @@ type kurtosisNetworkParams struct { Participants []kurtosisParticipant `json:"participants"` NetworkParams kurtosisNetworkConfigParams `json:"network_params"` WaitForFinalization bool `json:"wait_for_finalization"` + AdditionalServices []string `json:"additional_services"` } type kurtosisParticipant struct { diff --git a/e2e/interchaintestv8/ethereum/ethereum.go b/e2e/interchaintestv8/ethereum/ethereum.go index 2deb63e63..576d956dc 100644 --- a/e2e/interchaintestv8/ethereum/ethereum.go +++ b/e2e/interchaintestv8/ethereum/ethereum.go @@ -93,6 +93,10 @@ func (e *Ethereum) BroadcastTx(ctx context.Context, userKey *ecdsa.PrivateKey, g return nil, err } + if receipt != nil && receipt.Status != ethtypes.ReceiptStatusSuccessful { + return nil, fmt.Errorf("eth transaction was broadcasted, but failed on-chain with status %d", receipt.Status) + } + return receipt, nil } diff --git a/e2e/interchaintestv8/relayer_test.go b/e2e/interchaintestv8/relayer_test.go index 559268848..d9ecb5eca 100644 --- a/e2e/interchaintestv8/relayer_test.go +++ b/e2e/interchaintestv8/relayer_test.go @@ -1026,8 +1026,13 @@ func (s *RelayerTestSuite) ICS20TimeoutFromCosmosTimeoutTest( s.Require().True(s.Run("Receive packets on Ethereum after timeout should fail", func() { ics26Address := ethcommon.HexToAddress(s.contractAddresses.Ics26Router) - receipt, err := eth.BroadcastTx(ctx, s.EthRelayerSubmitter, 5_000_000, ics26Address, txBodyBz) + _, err := eth.BroadcastTx(ctx, s.EthRelayerSubmitter, 5_000_000, ics26Address, txBodyBz) + s.Require().Error(err) + + // Prove that the erc20 was not created (and by extension, the packet was not received) + denomOnEthereum := transfertypes.NewDenom(transferCoin.Denom, transfertypes.NewHop(transfertypes.PortID, testvalues.CustomClientID)) + _, err = s.ics20Contract.IbcERC20Contract(nil, denomOnEthereum.Path()) + // Ethereum side did not received the packet, ERC20 contract corresponding to the denom does not exist s.Require().Error(err) - s.Require().Nil(receipt) })) }