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 ]`