From daef6ee030e98f1a778762daab18945ad3cdb496 Mon Sep 17 00:00:00 2001 From: Cuteivist Date: Wed, 31 Jul 2024 06:45:11 +0200 Subject: [PATCH] chore_: Validate multi tx type (#5619) --- .../transfer/transaction_manager_multitransaction.go | 4 ++++ .../transfer/transaction_manager_multitransaction_test.go | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/services/wallet/transfer/transaction_manager_multitransaction.go b/services/wallet/transfer/transaction_manager_multitransaction.go index 07102535b..e4e6781a5 100644 --- a/services/wallet/transfer/transaction_manager_multitransaction.go +++ b/services/wallet/transfer/transaction_manager_multitransaction.go @@ -45,6 +45,10 @@ func (tm *TransactionManager) CreateMultiTransactionFromCommand(command *MultiTr if multiTransaction.FromNetworkID == wallet_common.UnknownChainID && len(data) == 1 { multiTransaction.FromNetworkID = data[0].ChainID } + case MultiTransactionBridge: + break + default: + return nil, fmt.Errorf("unsupported multi transaction type: %v", multiTransaction.Type) } return multiTransaction, nil diff --git a/services/wallet/transfer/transaction_manager_multitransaction_test.go b/services/wallet/transfer/transaction_manager_multitransaction_test.go index e54c3694e..2aa4c9032 100644 --- a/services/wallet/transfer/transaction_manager_multitransaction_test.go +++ b/services/wallet/transfer/transaction_manager_multitransaction_test.go @@ -319,7 +319,7 @@ func TestCreateMultiTransactionFromCommand(t *testing.T) { var command *MultiTransactionCommand // Test types that should get chainID from the data - mtTypes := []MultiTransactionType{MultiTransactionSend, MultiTransactionApprove, MultiTransactionSwap} + mtTypes := []MultiTransactionType{MultiTransactionSend, MultiTransactionApprove, MultiTransactionSwap, MultiTransactionType(7)} for _, mtType := range mtTypes { fromAmount := hexutil.Big(*big.NewInt(1000000000000000000)) @@ -340,6 +340,11 @@ func TestCreateMultiTransactionFromCommand(t *testing.T) { }) multiTransaction, err := tm.CreateMultiTransactionFromCommand(command, data) + if mtType > MultiTransactionApprove { + // Unsupported type + require.Error(t, err) + break + } require.NoError(t, err) require.NotNil(t, multiTransaction) require.Equal(t, command.FromAddress, multiTransaction.FromAddress)