github.com/status-im/status-go@v1.1.0/services/wallet/common/log_paser_test.go (about) 1 package common 2 3 import ( 4 "encoding/hex" 5 "encoding/json" 6 "testing" 7 8 "github.com/ethereum/go-ethereum/common" 9 "github.com/ethereum/go-ethereum/core/types" 10 11 "github.com/stretchr/testify/require" 12 ) 13 14 func TestLegacyTxDataContainsAddress(t *testing.T) { 15 txDataString := "deace8f5000000000000000000000000000000000000000000000000000000000000000a00000000000000000" + 16 "0000000d6255ae13ac335b347aa846802ad6ac39dd2543a000000000000000000000000000000000000000000000000002c68af0bb" + 17 "14000000000000000000000000000000000000000000000000000002c29ddae0698830000000000000000000000000000000000000" + 18 "0000000000000000000649a33b3000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564000000000000000" + 19 "0000000000000000000000000000000000000000000000000" 20 21 txData, err := hex.DecodeString(txDataString) 22 require.NoError(t, err) 23 24 containedAddress := common.HexToAddress("0xd6255aE13aC335b347aa846802aD6aC39dd2543a") 25 randomAddress := common.HexToAddress("0xb8901acB165ed027E32754E0FFe830802919727f") 26 27 require.True(t, TxDataContainsAddress(types.LegacyTxType, txData, containedAddress)) 28 require.False(t, TxDataContainsAddress(types.LegacyTxType, txData, randomAddress)) 29 } 30 31 func TestOptDepositTxDataContainsAddress(t *testing.T) { 32 txDataString := "d764ad0b00010000000000000000000000000000000000000000000000000000000019b7000000000000000000000000a45df1a388049fb8d76e72d350d24e2c3f7aebd100000000000000000000000083f6244bd87662118d96d9a6d44f09dfff14b30e000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000249f000000000000000000000000000000000000000000000000000000000000000c000000000000000000000000000000000000000000000000000000000000000c4cc29a306000000000000000000000000e813d34c0525e0fbb1e6478b86d40b83603c200800000000000000000000000000000000000000000000000000470de4df8200000000000000000000000000000000000000000000000000000046a8e2b55dea2100000000000000000000000000000000000000000000000000000000649d6931000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000" 33 34 txData, err := hex.DecodeString(txDataString) 35 require.NoError(t, err) 36 37 containedAddress := common.HexToAddress("0xE813d34C0525E0fBb1e6478B86D40B83603C2008") 38 randomAddress := common.HexToAddress("0xb8901acB165ed027E32754E0FFe830802919727f") 39 40 require.True(t, TxDataContainsAddress(types.OptimismDepositTxType, txData, containedAddress)) 41 require.False(t, TxDataContainsAddress(types.OptimismDepositTxType, txData, randomAddress)) 42 } 43 44 func TestLogHopBridgeTransferSentToL2(t *testing.T) { 45 eventLogTestData := `{"address":"0xb8901acb165ed027e32754e0ffe830802919727f","topics":["0x0a0607688c86ec1775abcdbab7b33a3a35a6c9cde677c9be880150c231cc6b0b","0x000000000000000000000000000000000000000000000000000000000000000a","0x000000000000000000000000d6255ae13ac335b347aa846802ad6ac39dd2543a","0x000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564"],"data":"0x000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c29ddae06988300000000000000000000000000000000000000000000000000000000649a33b30000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x10b4baf","transactionHash":"0xfc4687f8d985ef0cc86d79a0c7abc582552b8bae0e13a90c59eeadf7e64ed569","transactionIndex":"0x48","blockHash":"0xea7f003d02a43be4dfec836803a033c0ce22ecf9a48d4a3ed3700db9c722d994","logIndex":"0xfa","removed":false}` 46 var eventLog types.Log 47 err := json.Unmarshal([]byte(eventLogTestData), &eventLog) 48 require.NoError(t, err) 49 50 eventType := GetEventType(&eventLog) 51 require.Equal(t, HopBridgeTransferSentToL2EventType, eventType) 52 } 53 54 func TestLogHopBridgeTransferFromL1Completed(t *testing.T) { 55 eventLogTestData := `{"address":"0x83f6244Bd87662118d96D9a6D44f09dffF14b30E","topics":["0x320958176930804eb66c2343c7343fc0367dc16249590c0f195783bee199d094","0x000000000000000000000000d6255ae13ac335b347aa846802ad6ac39dd2543a","0x000000000000000000000000710bda329b2a6224e4b44833de30f38e7f81d564"],"data":"0x000000000000000000000000000000000000000000000000002c68af0bb14000000000000000000000000000000000000000000000000000002c29ddae06988300000000000000000000000000000000000000000000000000000000649a33b30000000000000000000000000000000000000000000000000000000000000000","blockNumber":"0x64E8FF0","transactionHash":"0x67a6f407824be389e6a960ebb1ddbe7e2f24a809a86b50452ee3dc70cc708d00","transactionIndex":"0x48","blockHash":"0xea7f003d02a43be4dfec836803a033c0ce22ecf9a48d4a3ed3700db9c722d994","logIndex":"0xfa","removed":false}` 56 var eventLog types.Log 57 err := json.Unmarshal([]byte(eventLogTestData), &eventLog) 58 require.NoError(t, err) 59 60 eventType := GetEventType(&eventLog) 61 require.Equal(t, HopBridgeTransferFromL1CompletedEventType, eventType) 62 }