Code Reference
|
WriteSetChange::WriteTableItem(write_table_item) => { |
|
let data = write_table_item.data.as_ref().unwrap_or_else(|| { |
|
panic!( |
|
"Could not extract data from DecodedTableData '{:?}'", |
|
write_table_item |
|
) |
|
}); |
Issue
For a Block with only Block Metadata and State Checkpoint (like https://0l.fyi/blocks/10901184) the Fullnode gRPC Endpoint GetTransactionsFromNode works as expected. A User Transaction will most likely crash the gRPC Server because there are (i think always) write_table_item types with data = null (see e.g. https://0l.fyi/transactions/21825188). I am not sure but I think those write_table_items are not as relevant as write_resource elements. So maybe we can consider setting this write_table_item to optional or at least allow null values. Currently this Endpoint is imo not usable.
Code Reference
diem/ecosystem/indexer-grpc/indexer-grpc-fullnode/src/convert.rs
Lines 388 to 394 in 668b495
Issue
For a Block with only Block Metadata and State Checkpoint (like https://0l.fyi/blocks/10901184) the Fullnode gRPC Endpoint GetTransactionsFromNode works as expected. A User Transaction will most likely crash the gRPC Server because there are (i think always) write_table_item types with data = null (see e.g. https://0l.fyi/transactions/21825188). I am not sure but I think those write_table_items are not as relevant as write_resource elements. So maybe we can consider setting this write_table_item to optional or at least allow null values. Currently this Endpoint is imo not usable.