-
Notifications
You must be signed in to change notification settings - Fork 176
/
execution_data.go
52 lines (43 loc) · 1.83 KB
/
execution_data.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
package execution_data
import (
"github.com/onflow/flow-go/ledger"
"github.com/onflow/flow-go/model/flow"
)
// DefaultMaxBlobSize is the default maximum size of a blob.
// This is calibrated to fit within a libp2p message and not exceed the max size recommended by bitswap.
const DefaultMaxBlobSize = 1 << 20 // 1MiB
// ChunkExecutionData represents the execution data of a chunk
type ChunkExecutionData struct {
// Collection is the collection for which this chunk was executed
Collection *flow.Collection
// Events are the events generated by executing the collection
Events flow.EventsList
// TrieUpdate is the trie update generated by executing the collection
// This includes a list of all registers updated during the execution
TrieUpdate *ledger.TrieUpdate
// TransactionResults are the results of executing the transactions in the collection
// This includes all of the data from flow.TransactionResult, except that it uses a boolean
// value to indicate if an error occurred instead of a full error message.
TransactionResults []flow.LightTransactionResult
}
// BlockExecutionData represents the execution data of a block.
type BlockExecutionData struct {
BlockID flow.Identifier
ChunkExecutionDatas []*ChunkExecutionData
}
// ConvertTransactionResults converts a list of flow.TransactionResults into a list of
// flow.LightTransactionResults to be included in a ChunkExecutionData.
func ConvertTransactionResults(results flow.TransactionResults) []flow.LightTransactionResult {
if len(results) == 0 {
return nil
}
converted := make([]flow.LightTransactionResult, len(results))
for i, txResult := range results {
converted[i] = flow.LightTransactionResult{
TransactionID: txResult.TransactionID,
ComputationUsed: txResult.ComputationUsed,
Failed: txResult.ErrorMessage != "",
}
}
return converted
}