Skip to content

Commit

Permalink
Merge pull request #61 from ElrondNetwork/invalid-meta-tx-not-enough-gas
Browse files Browse the repository at this point in the history
(Low-impact) handle "meta transaction is invalid: not enough gas"
  • Loading branch information
andreibancioiu authored Nov 22, 2022
2 parents b13d008 + 6e70aa5 commit 52cae41
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 7 deletions.
7 changes: 4 additions & 3 deletions server/services/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,8 @@ var (
)

var (
transactionEventSignalError = "signalError"
transactionEventTransferValueOnly = "transferValueOnly"
transactionEventTopicInvalidMetaTransaction = "meta transaction is invalid"
transactionEventSignalError = "signalError"
transactionEventTransferValueOnly = "transferValueOnly"
transactionEventTopicInvalidMetaTransaction = "meta transaction is invalid"
transactionEventTopicInvalidMetaTransactionNotEnoughGas = "meta transaction is invalid: not enough gas"
)
6 changes: 4 additions & 2 deletions server/services/transactionEventsController.go
Original file line number Diff line number Diff line change
Expand Up @@ -87,8 +87,10 @@ func (controller *transactionEventsController) hasSignalErrorOfMetaTransactionIs
continue
}

hasTopicInvalidMetaTransaction := eventHasTopic(event, transactionEventTopicInvalidMetaTransaction)
if hasTopicInvalidMetaTransaction {
if eventHasTopic(event, transactionEventTopicInvalidMetaTransaction) {
return true
}
if eventHasTopic(event, transactionEventTopicInvalidMetaTransactionNotEnoughGas) {
return true
}
}
Expand Down
21 changes: 20 additions & 1 deletion server/services/transactionEventsController_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -46,7 +46,7 @@ func TestTransactionEventsController_HasSignalErrorOfMetaTransactionIsInvalid(t
require.False(t, txMatches)
})

t.Run("invalid tx with event 'invalid meta transaction'", func(t *testing.T) {
t.Run("invalid tx with event 'meta transaction is invalid'", func(t *testing.T) {
tx := &transaction.ApiTransactionResult{
Logs: &transaction.ApiLogs{

Expand All @@ -64,6 +64,25 @@ func TestTransactionEventsController_HasSignalErrorOfMetaTransactionIsInvalid(t
txMatches := controller.hasSignalErrorOfMetaTransactionIsInvalid(tx)
require.True(t, txMatches)
})

t.Run("invalid tx with event 'meta transaction is invalid: not enough gas'", func(t *testing.T) {
tx := &transaction.ApiTransactionResult{
Logs: &transaction.ApiLogs{

Events: []*transaction.Events{
{
Identifier: transactionEventSignalError,
Topics: [][]byte{
[]byte(transactionEventTopicInvalidMetaTransactionNotEnoughGas),
},
},
},
},
}

txMatches := controller.hasSignalErrorOfMetaTransactionIsInvalid(tx)
require.True(t, txMatches)
})
}

func TestEventHasTopic(t *testing.T) {
Expand Down
2 changes: 1 addition & 1 deletion version/constants.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,5 +7,5 @@ const (

var (
// RosettaMiddlewareVersion is the version of this package (application)
RosettaMiddlewareVersion = "v0.3.4"
RosettaMiddlewareVersion = "v0.3.5"
)

0 comments on commit 52cae41

Please sign in to comment.