github.com/hyperledger/burrow@v0.34.5-0.20220512172541-77f09336001d/vent/chain/ethereum/consumer_test.go (about)

     1  package ethereum
     2  
     3  import (
     4  	"encoding/json"
     5  	"testing"
     6  
     7  	"github.com/hyperledger/burrow/rpc/web3/ethclient"
     8  	"github.com/hyperledger/burrow/vent/chain"
     9  	"github.com/stretchr/testify/assert"
    10  	"github.com/stretchr/testify/require"
    11  )
    12  
    13  func TestConsumeBlocks(t *testing.T) {
    14  	var logs []*ethclient.EthLog
    15  	err := json.Unmarshal([]byte(ethLogsJSON), &logs)
    16  	require.NoError(t, err)
    17  	var blocks []chain.Block
    18  	lastBlock, err := consumeBlocksFromLogs(nil, logs, func(block chain.Block) error {
    19  		blocks = append(blocks, block)
    20  		return nil
    21  	})
    22  	require.NoError(t, err)
    23  	assert.Equal(t, uint64(24), lastBlock.GetHeight())
    24  	assert.Len(t, blocks, 3)
    25  	txs0 := blocks[0].GetTxs()
    26  	assert.Len(t, txs0, 2)
    27  	assert.Len(t, txs0[0].GetEvents(), 1)
    28  	assert.Len(t, txs0[1].GetEvents(), 2)
    29  	assert.Len(t, blocks[1].GetTxs(), 1)
    30  	assert.Len(t, blocks[2].GetTxs(), 1)
    31  }
    32  
    33  func TestConsumer_ConsumeInBatches(t *testing.T) {
    34  	// TODO
    35  }
    36  
    37  // From running TestGetEthLogs over in ethclient tests against truffle in vent/test/eth (and subsequently fiddled with)
    38  // language=JSON
    39  const ethLogsJSON = `[
    40    {
    41      "topics": [
    42        "0x2d989eca8871e173291c8e287f34adebef09917027f9e904c22ce459a2cff0ca",
    43        "0x446f776e73696521000000000000000000000000000000000000000000000000",
    44        "0x0000000000000000000000000000000000000000000000000000000000000066",
    45        "0x33027547537d35728a741470df1ccf65de10b454ca0def7c5c20b257b7b8d161"
    46      ],
    47      "transactionHash": "0x22d1cbba63e3577a5a35b02945289711e1e21a8e3d69dd2f3b05fd4619eb6b20",
    48      "address": "0xa1e378f122fec6aa8c841397042e21bc19368768",
    49      "blockHash": "0x434520f95c0ca8ad4b1853b6aeb748593b4e8603d923199c44c753133fa66b7b",
    50      "blockNumber": "0x9",
    51      "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000051446f6e617564616d7066736368696666666168727473656c656b7472697a6974c3a474656e686175707462657472696562737765726b626175756e7465726265616d74656e676573656c6c736368616674000000000000000000000000000000",
    52      "logIndex": "0x0",
    53      "transactionIndex": "0x0"
    54    },
    55    {
    56      "topics": [
    57        "0x2d989eca8871e173291c8e287f34adebef09917027f9e904c22ce459a2cff0ca",
    58        "0x446f776e73696521000000000000000000000000000000000000000000000000",
    59        "0x0000000000000000000000000000000000000000000000000000000000000066",
    60        "0x33027547537d35728a741470df1ccf65de10b454ca0def7c5c20b257b7b8d161"
    61      ],
    62      "transactionHash": "0xf1869bff3273e8a31076be06754c8d1ae2bbd38d9faf32cfeb411750878c7ee5",
    63      "address": "0xf73aaa468496a87675d27638878a1600b0db3c71",
    64      "blockHash": "0x9fe9d2eb6b309330c48a77793dbb98bf01faf5d3aea8e0fde60c7d548330ae74",
    65      "blockNumber": "0x9",
    66      "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000051446f6e617564616d7066736368696666666168727473656c656b7472697a6974c3a474656e686175707462657472696562737765726b626175756e7465726265616d74656e676573656c6c736368616674000000000000000000000000000000",
    67      "logIndex": "0x1",
    68      "transactionIndex": "0x0"
    69    },
    70    {
    71      "topics": [
    72        "0x2d989eca8871e173291c8e287f34adebef09917027f9e904c22ce459a2cff0ca",
    73        "0x446f776e73696521000000000000000000000000000000000000000000000000",
    74        "0x0000000000000000000000000000000000000000000000000000000000000066",
    75        "0x33027547537d35728a741470df1ccf65de10b454ca0def7c5c20b257b7b8d161"
    76      ],
    77      "transactionHash": "0xf1869bff3273e8a31076be06754c8d1ae2bbd38d9faf32cfeb411750878c7ee5",
    78      "address": "0xf73aaa468496a87675d27638878a1600b0db3c71",
    79      "blockHash": "0x9fe9d2eb6b309330c48a77793dbb98bf01faf5d3aea8e0fde60c7d548330ae74",
    80      "blockNumber": "0x9",
    81      "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000051446f6e617564616d7066736368696666666168727473656c656b7472697a6974c3a474656e686175707462657472696562737765726b626175756e7465726265616d74656e676573656c6c736368616674000000000000000000000000000000",
    82      "logIndex": "0x4",
    83      "transactionIndex": "0x0"
    84    },
    85    {
    86      "topics": [
    87        "0x2d989eca8871e173291c8e287f34adebef09917027f9e904c22ce459a2cff0ca",
    88        "0x446f776e73696521000000000000000000000000000000000000000000000000",
    89        "0x0000000000000000000000000000000000000000000000000000000000000066",
    90        "0x33027547537d35728a741470df1ccf65de10b454ca0def7c5c20b257b7b8d161"
    91      ],
    92      "transactionHash": "0x919b7ca6cd104bbb9cef2a5199ba8515968494474874894e426227766759d442",
    93      "address": "0xc0eec83d13999827902ad7f2ebba38e4ce457c88",
    94      "blockHash": "0x099fa767303fd80ae83a82d383a87c92662f5e59cf1ed87b55cf1b9c4aea9f6b",
    95      "blockNumber": "0x13",
    96      "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000051446f6e617564616d7066736368696666666168727473656c656b7472697a6974c3a474656e686175707462657472696562737765726b626175756e7465726265616d74656e676573656c6c736368616674000000000000000000000000000000",
    97      "logIndex": "0x0",
    98      "transactionIndex": "0x0"
    99    },
   100    {
   101      "topics": [
   102        "0x2d989eca8871e173291c8e287f34adebef09917027f9e904c22ce459a2cff0ca",
   103        "0x446f776e73696521000000000000000000000000000000000000000000000000",
   104        "0x0000000000000000000000000000000000000000000000000000000000000066",
   105        "0x33027547537d35728a741470df1ccf65de10b454ca0def7c5c20b257b7b8d161"
   106      ],
   107      "transactionHash": "0x6979538ef67d056b72f62d711dc63de0b06c8d4c31e1788bed973d07719f7ee5",
   108      "address": "0xbe6cea7a6cc115ed2c0863dc2df6b883769b2ec5",
   109      "blockHash": "0x3f9a059783e476eea8f723179431498ad62c584c6ea02c4b3cb5b541cd3435b4",
   110      "blockNumber": "0x18",
   111      "data": "0x00000000000000000000000000000000000000000000000000000000000000010000000000000000000000000000000000000000000000000000000000000060000000000000000000000000000000000000000000000000000000000000002a0000000000000000000000000000000000000000000000000000000000000051446f6e617564616d7066736368696666666168727473656c656b7472697a6974c3a474656e686175707462657472696562737765726b626175756e7465726265616d74656e676573656c6c736368616674000000000000000000000000000000",
   112      "logIndex": "0x0",
   113      "transactionIndex": "0x0"
   114    }
   115  ]`