cherry_evm_schema/
lib.rs

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
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
use arrow::datatypes::{DataType, Field, Schema};

pub fn block() -> Schema {
    Schema::new(vec![
        Field::new("number", DataType::UInt64, false),
        Field::new("hash", DataType::Binary, false),
        Field::new("parent_hash", DataType::Binary, false),
        Field::new("nonce", DataType::Binary, true),
        Field::new("sha3_uncles", DataType::Binary, false),
        Field::new("logs_bloom", DataType::Binary, false),
        Field::new("transactions_root", DataType::Binary, false),
        Field::new("state_root", DataType::Binary, false),
        Field::new("receipts_root", DataType::Binary, false),
        Field::new("miner", DataType::Binary, false),
        Field::new("difficulty", DataType::Decimal256(76, 0), true),
        Field::new("total_difficulty", DataType::Decimal256(76, 0), true),
        Field::new("extra_data", DataType::Binary, false),
        Field::new("size", DataType::Decimal256(76, 0), false),
        Field::new("gas_limit", DataType::Decimal256(76, 0), false),
        Field::new("gas_used", DataType::Decimal256(76, 0), false),
        Field::new("timestamp", DataType::Decimal256(76, 0), false),
        Field::new("uncles", DataType::Binary, true),
        Field::new("base_fee_per_gas", DataType::Decimal256(76, 0), true),
        Field::new("blob_gas_used", DataType::Decimal256(76, 0), true),
        Field::new("excess_blob_gas", DataType::Decimal256(76, 0), true),
        Field::new("parent_beacon_block_root", DataType::Binary, true),
        Field::new("withdrawals_root", DataType::Binary, true),
        Field::new("withdrawals", DataType::Binary, true),
        Field::new("l1_block_number", DataType::UInt64, true),
        Field::new("send_count", DataType::Decimal256(76, 0), true),
        Field::new("send_root", DataType::Binary, true),
        Field::new("mix_hash", DataType::Binary, true),
    ])
}

pub fn transaction() -> Schema {
    Schema::new(vec![
        Field::new("block_hash", DataType::Binary, false),
        Field::new("block_number", DataType::UInt64, false),
        Field::new("from", DataType::Binary, true),
        Field::new("gas", DataType::Decimal256(76, 0), false),
        Field::new("gas_price", DataType::Decimal256(76, 0), true),
        Field::new("hash", DataType::Binary, false),
        Field::new("input", DataType::Binary, false),
        Field::new("nonce", DataType::Decimal256(76, 0), false),
        Field::new("to", DataType::Binary, true),
        Field::new("transaction_index", DataType::UInt64, false),
        Field::new("value", DataType::Decimal256(76, 0), false),
        Field::new("v", DataType::Decimal256(76, 0), true),
        Field::new("r", DataType::Decimal256(76, 0), true),
        Field::new("s", DataType::Decimal256(76, 0), true),
        Field::new(
            "max_priority_fee_per_gas",
            DataType::Decimal256(76, 0),
            true,
        ),
        Field::new("max_fee_per_gas", DataType::Decimal256(76, 0), true),
        Field::new("chain_id", DataType::Decimal256(76, 0), true),
        Field::new("cumulative_gas_used", DataType::Decimal256(76, 0), false),
        Field::new("effective_gas_price", DataType::Decimal256(76, 0), false),
        Field::new("gas_used", DataType::Decimal256(76, 0), false),
        Field::new("contract_address", DataType::Binary, true),
        Field::new("logs_bloom", DataType::Binary, false),
        Field::new("type", DataType::UInt8, true),
        Field::new("root", DataType::Binary, true),
        Field::new("status", DataType::UInt8, true),
        Field::new("sighash", DataType::Binary, true),
        Field::new("y_parity", DataType::Decimal256(76, 0), true),
        Field::new("access_list", DataType::Binary, true),
        Field::new("l1_fee", DataType::Decimal256(76, 0), true),
        Field::new("l1_gas_price", DataType::Decimal256(76, 0), true),
        Field::new("l1_gas_used", DataType::Decimal256(76, 0), true),
        Field::new("l1_fee_scalar", DataType::Decimal256(76, 0), true),
        Field::new("gas_used_for_l1", DataType::Decimal256(76, 0), true),
        Field::new("max_fee_per_blob_gas", DataType::Decimal256(76, 0), true),
        Field::new("blob_versioned_hashes", DataType::Binary, true),
        Field::new("deposit_nonce", DataType::Decimal256(76, 0), true),
        Field::new("blob_gas_price", DataType::Decimal256(76, 0), true),
        Field::new("deposit_receipt_version", DataType::Decimal256(76, 0), true),
        Field::new("blob_gas_used", DataType::Decimal256(76, 0), true),
        Field::new("l1_base_fee_scalar", DataType::Decimal256(76, 0), true),
        Field::new("l1_blob_base_fee", DataType::Decimal256(76, 0), true),
        Field::new("l1_blob_base_fee_scalar", DataType::Decimal256(76, 0), true),
        Field::new("l1_block_number", DataType::Decimal256(76, 0), true),
        Field::new("mint", DataType::Decimal256(76, 0), true),
        Field::new("source_hash", DataType::Binary, true),
    ])
}

pub fn log() -> Schema {
    Schema::new(vec![
        Field::new("removed", DataType::Boolean, true),
        Field::new("log_index", DataType::UInt64, false),
        Field::new("transaction_index", DataType::UInt64, false),
        Field::new("transaction_hash", DataType::Binary, false),
        Field::new("block_hash", DataType::Binary, false),
        Field::new("block_number", DataType::UInt64, false),
        Field::new("address", DataType::Binary, false),
        Field::new("data", DataType::Binary, false),
        Field::new("topic0", DataType::Binary, true),
        Field::new("topic1", DataType::Binary, true),
        Field::new("topic2", DataType::Binary, true),
        Field::new("topic3", DataType::Binary, true),
    ])
}

pub fn trace() -> Schema {
    Schema::new(vec![
        Field::new("from", DataType::Binary, true),
        Field::new("to", DataType::Binary, true),
        Field::new("call_type", DataType::Utf8View, true),
        Field::new("gas", DataType::Decimal256(76, 0), true),
        Field::new("input", DataType::Binary, true),
        Field::new("init", DataType::Binary, true),
        Field::new("value", DataType::Decimal256(76, 0), true),
        Field::new("author", DataType::Binary, true),
        Field::new("reward_type", DataType::Utf8View, true),
        Field::new("block_hash", DataType::Binary, false),
        Field::new("block_number", DataType::UInt64, false),
        Field::new("address", DataType::Binary, true),
        Field::new("code", DataType::Binary, true),
        Field::new("gas_used", DataType::Decimal256(76, 0), true),
        Field::new("output", DataType::Binary, true),
        Field::new("subtraces", DataType::UInt64, true),
        Field::new("trace_address", DataType::Binary, true),
        Field::new("transaction_hash", DataType::Binary, true),
        Field::new("transaction_position", DataType::UInt64, true),
        Field::new("type", DataType::Utf8View, true),
        Field::new("error", DataType::Utf8View, true),
        Field::new("sighash", DataType::Binary, true),
        Field::new("action_address", DataType::Binary, true),
        Field::new("balance", DataType::Decimal256(76, 0), true),
        Field::new("refund_address", DataType::Binary, true),
    ])
}