Skip to content

Commit

Permalink
added test
Browse files Browse the repository at this point in the history
  • Loading branch information
idanya committed Jul 17, 2023
1 parent fd3721d commit fdef1f3
Show file tree
Hide file tree
Showing 2 changed files with 36 additions and 1 deletion.
2 changes: 1 addition & 1 deletion services/transaction.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import (
type TransactionService struct {
nodeClient nodes.NodeClient
directoryClient directory.DirectoryClient
decoder *Decoder
decoder *Decoder
}

func NewTransactionService(nodeClient nodes.NodeClient,
Expand Down
35 changes: 35 additions & 0 deletions services/transaction_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ package services

import (
"context"
"math/big"
"testing"

"github.com/ethereum/go-ethereum/common"
Expand Down Expand Up @@ -33,3 +34,37 @@ func TestTransactionService_GetTransactionReceipt(t *testing.T) {
assert.Equal(t, 1, len(decoded.Logs))
assert.Equal(t, "LogMessageToL2(address,uint256,uint256,uint256[],uint256,uint256)", decoded.Logs[0].FunctionSelector)
}

func TestTransactionService_GetTransactionByHash(t *testing.T) {
directoryClientMock := dirmock.NewDirectoryClient(t)
decoder := NewDecoder(directoryClientMock)

nodeClientMock := mocks.NewNodeClient(t)

transactionService := NewTransactionService(nodeClientMock, directoryClientMock, decoder)

txHash := "0xec8ecd56dca115adcc8de346ffe054841f810964a68afc81faf764f8a0ae7c26"
functionSignature := "safeTransferFrom(address,address,uint256,bytes)"
payload := common.Hex2Bytes("b88d4fde0000000000000000000000005ab326a31b48faac615927dd7068b53423b32d8c000000000000000000000000daf57b900d6c8f9c8eea64a210fe9736a11ca9310000000000000000000000000000000000000000000000000000000000000fe200000000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000000000000000000000000000000000000360c6ebe")
transaction := types.NewTx(&types.DynamicFeeTx{Nonce: 1, Data: payload})

// response := &entities.EnrichedTxInfo{DecodedData: &entities.DecodeResult{Hash: "0xb88d4fde", Method: "safeTransferFrom(address from,address to,uint256 tokenId,bytes data)"}}

nodeClientMock.On("GetTransactionByHash", mock.Anything, txHash).Return(transaction, nil)
directoryClientMock.On("LookupFunction", "0xb88d4fde").Return(functionSignature, nil)

decoded, err := transactionService.GetTransactionByHash(context.Background(), txHash)
assert.NoError(t, err)
assert.Equal(t, functionSignature, decoded.DecodedData.Method)
assert.Equal(t, "0xb88d4fde", decoded.DecodedData.Hash)
assert.Equal(t, "address", decoded.DecodedData.Arguments[0].Type)
assert.Equal(t, "0x5AB326a31b48faac615927dd7068B53423B32D8c", decoded.DecodedData.Arguments[0].Value.(common.Address).Hex())

assert.Equal(t, "address", decoded.DecodedData.Arguments[1].Type)
assert.Equal(t, "0xdaf57b900d6c8F9c8eeA64a210FE9736a11CA931", decoded.DecodedData.Arguments[1].Value.(common.Address).Hex())

assert.Equal(t, "uint256", decoded.DecodedData.Arguments[2].Type)
assert.Equal(t, big.NewInt(4066), decoded.DecodedData.Arguments[2].Value.(*big.Int))
assert.Equal(t, "bytes", decoded.DecodedData.Arguments[3].Type)

}

0 comments on commit fdef1f3

Please sign in to comment.