Skip to content

Commit 7faba7c

Browse files
authored
Add missing execution resources to fetched traces (#2222)
1 parent f4d9d69 commit 7faba7c

File tree

4 files changed

+163
-7
lines changed

4 files changed

+163
-7
lines changed

clients/feeder/testdata/integration/block/0.json

+20-4
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,11 @@
7979
"ecdsa_builtin": 0,
8080
"ec_op_builtin": 0
8181
},
82-
"n_memory_holes": 0
82+
"n_memory_holes": 0,
83+
"data_availability": {
84+
"l1_gas": 1,
85+
"l1_data_gas": 2
86+
}
8387
},
8488
"actual_fee": "0x0"
8589
},
@@ -99,7 +103,11 @@
99103
"ecdsa_builtin": 0,
100104
"ec_op_builtin": 0
101105
},
102-
"n_memory_holes": 0
106+
"n_memory_holes": 0,
107+
"data_availability": {
108+
"l1_gas": 2,
109+
"l1_data_gas": 3
110+
}
103111
},
104112
"actual_fee": "0x0"
105113
},
@@ -119,7 +127,11 @@
119127
"ecdsa_builtin": 0,
120128
"ec_op_builtin": 0
121129
},
122-
"n_memory_holes": 22
130+
"n_memory_holes": 22,
131+
"data_availability": {
132+
"l1_gas": 3,
133+
"l1_data_gas": 4
134+
}
123135
},
124136
"actual_fee": "0x0"
125137
},
@@ -139,7 +151,11 @@
139151
"ecdsa_builtin": 0,
140152
"ec_op_builtin": 0
141153
},
142-
"n_memory_holes": 22
154+
"n_memory_holes": 22,
155+
"data_availability": {
156+
"l1_gas": 4,
157+
"l1_data_gas": 5
158+
}
143159
},
144160
"actual_fee": "0x0"
145161
}
Original file line numberDiff line numberDiff line change
@@ -1 +1,111 @@
1-
{"block_hash": "0xe3828bd9154ab385e2cbb95b3b650365fb3c6a4321660d98ce8b0a9194f9a3", "parent_block_hash": "0x3e313bf24e413beadee1bf88590debeffdd7d24c979a7fbf790a3a5c4d9e88f", "block_number": 300000, "state_root": "0x293feec0a25b7134299ded77f1a701ce7da3191d419ef88dc6b9b1c4f9b2f68", "status": "ACCEPTED_ON_L1", "gas_price": "0x277a02decd", "transactions": [{"transaction_hash": "0x2a648ab1aa6847eb38507fc842e050f256562bf87b26083c332f3f21318c2c3", "version": "0x1", "max_fee": "0x2386f26fc10000", "signature": ["0x3e71a0a29877eae7a045b8d5153ca26770e104b1ac7712dc6fdd0f005ab1d37", "0x5e7446beab40bb53324d05be3d8f130a86890895221d00bd8cd2e3839d0593a"], "nonce": "0x39bd", "sender_address": "0x58b7ee817bd2978c7657d05d3131e83e301ed1aa79d5ad16f01925fd52d1da7", "calldata": ["0x1", "0x332299dc083f3778122e5b7762bc9d399da18fefe93769aee67bb49f51c8d2", "0x2d7cf5d5a324a320f9f37804b1615a533fde487400b41af80f13f7ac5581325", "0x0", "0x4", "0x4", "0xaf35ee8ed700ff132c5d1d298a73becda25ccdf9", "0x2", "0x6cd852fe1b2bbd8587bb0aaeb09813436c57c8ce21e75651e317273a1f22228", "0x58feb991988e53fffcba71f6df23c803fb062f1b3bab126d2c9ce574255b36e"], "type": "INVOKE_FUNCTION"}, {"transaction_hash": "0xbc984e8e1fe594dd518a3a51db4f338437a5d2fbdda772d4426b532a67ffff", "version": "0x1", "max_fee": "0x2386f26fc10000", "signature": ["0x36faaf651e7e4a783dacd362bc4853f2906f8ff23f1b8b52ed4b3b3cd51c09f", "0x59b8b785b9b494aa6d6d30a3535e4a649c305643fe6e4c5d3aacefbbae00004"], "nonce": "0x39be", "sender_address": "0x58b7ee817bd2978c7657d05d3131e83e301ed1aa79d5ad16f01925fd52d1da7", "calldata": ["0x1", "0x5f9211b05c9609d54a8bf5f9cfa4e2cd5a3cab3b5d79682c585575495a15dd1", "0x317eb442b72a9fae758d4fb26830ed0d9f31c8e7da4dbff4e8c59ea6a158e7f", "0x0", "0x4", "0x4", "0x447379c077035ef4f442411d0407ce9aa66c558f0060137f6455f4f230eabeb", "0x2", "0x6811b7755a7dd0ec1fb6f51a883e3f255368e2dfd497b5f6480c00cf9cd5a2e", "0x23b9e26720dd7aaf98c7cea56499f48f75dc1d4123f7e2d6c23bfc4d5f4a336"], "type": "INVOKE_FUNCTION"}], "timestamp": 1688044916, "sequencer_address": "0x1176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8", "transaction_receipts": [{"execution_status": "SUCCEEDED", "transaction_index": 0, "transaction_hash": "0x2a648ab1aa6847eb38507fc842e050f256562bf87b26083c332f3f21318c2c3", "l2_to_l1_messages": [{"from_address": "0x332299dc083f3778122e5b7762bc9d399da18fefe93769aee67bb49f51c8d2", "to_address": "0xAf35eE8eD700ff132C5d1d298A73BECdA25ccDF9", "payload": ["0x6cd852fe1b2bbd8587bb0aaeb09813436c57c8ce21e75651e317273a1f22228", "0x58feb991988e53fffcba71f6df23c803fb062f1b3bab126d2c9ce574255b36e"]}], "events": [], "execution_resources": {"n_steps": 374, "builtin_instance_counter": {"range_check_builtin": 7}, "n_memory_holes": 4}, "actual_fee": "0x127089df3a1984"}, {"execution_status": "SUCCEEDED", "transaction_index": 1, "transaction_hash": "0xbc984e8e1fe594dd518a3a51db4f338437a5d2fbdda772d4426b532a67ffff", "l2_to_l1_messages": [], "events": [], "execution_resources": {"n_steps": 307, "builtin_instance_counter": {"range_check_builtin": 9, "pedersen_builtin": 2}, "n_memory_holes": 25}, "actual_fee": "0x3b2d25cd7bccc"}], "starknet_version": "0.12.0"}
1+
{
2+
"block_hash": "0xe3828bd9154ab385e2cbb95b3b650365fb3c6a4321660d98ce8b0a9194f9a3",
3+
"parent_block_hash": "0x3e313bf24e413beadee1bf88590debeffdd7d24c979a7fbf790a3a5c4d9e88f",
4+
"block_number": 300000,
5+
"state_root": "0x293feec0a25b7134299ded77f1a701ce7da3191d419ef88dc6b9b1c4f9b2f68",
6+
"status": "ACCEPTED_ON_L1",
7+
"gas_price": "0x277a02decd",
8+
"transactions": [
9+
{
10+
"transaction_hash": "0x2a648ab1aa6847eb38507fc842e050f256562bf87b26083c332f3f21318c2c3",
11+
"version": "0x1",
12+
"max_fee": "0x2386f26fc10000",
13+
"signature": [
14+
"0x3e71a0a29877eae7a045b8d5153ca26770e104b1ac7712dc6fdd0f005ab1d37",
15+
"0x5e7446beab40bb53324d05be3d8f130a86890895221d00bd8cd2e3839d0593a"
16+
],
17+
"nonce": "0x39bd",
18+
"sender_address": "0x58b7ee817bd2978c7657d05d3131e83e301ed1aa79d5ad16f01925fd52d1da7",
19+
"calldata": [
20+
"0x1",
21+
"0x332299dc083f3778122e5b7762bc9d399da18fefe93769aee67bb49f51c8d2",
22+
"0x2d7cf5d5a324a320f9f37804b1615a533fde487400b41af80f13f7ac5581325",
23+
"0x0",
24+
"0x4",
25+
"0x4",
26+
"0xaf35ee8ed700ff132c5d1d298a73becda25ccdf9",
27+
"0x2",
28+
"0x6cd852fe1b2bbd8587bb0aaeb09813436c57c8ce21e75651e317273a1f22228",
29+
"0x58feb991988e53fffcba71f6df23c803fb062f1b3bab126d2c9ce574255b36e"
30+
],
31+
"type": "INVOKE_FUNCTION"
32+
},
33+
{
34+
"transaction_hash": "0xbc984e8e1fe594dd518a3a51db4f338437a5d2fbdda772d4426b532a67ffff",
35+
"version": "0x1",
36+
"max_fee": "0x2386f26fc10000",
37+
"signature": [
38+
"0x36faaf651e7e4a783dacd362bc4853f2906f8ff23f1b8b52ed4b3b3cd51c09f",
39+
"0x59b8b785b9b494aa6d6d30a3535e4a649c305643fe6e4c5d3aacefbbae00004"
40+
],
41+
"nonce": "0x39be",
42+
"sender_address": "0x58b7ee817bd2978c7657d05d3131e83e301ed1aa79d5ad16f01925fd52d1da7",
43+
"calldata": [
44+
"0x1",
45+
"0x5f9211b05c9609d54a8bf5f9cfa4e2cd5a3cab3b5d79682c585575495a15dd1",
46+
"0x317eb442b72a9fae758d4fb26830ed0d9f31c8e7da4dbff4e8c59ea6a158e7f",
47+
"0x0",
48+
"0x4",
49+
"0x4",
50+
"0x447379c077035ef4f442411d0407ce9aa66c558f0060137f6455f4f230eabeb",
51+
"0x2",
52+
"0x6811b7755a7dd0ec1fb6f51a883e3f255368e2dfd497b5f6480c00cf9cd5a2e",
53+
"0x23b9e26720dd7aaf98c7cea56499f48f75dc1d4123f7e2d6c23bfc4d5f4a336"
54+
],
55+
"type": "INVOKE_FUNCTION"
56+
}
57+
],
58+
"timestamp": 1688044916,
59+
"sequencer_address": "0x1176a1bd84444c89232ec27754698e5d2e7e1a7f1539f12027f28b23ec9f3d8",
60+
"transaction_receipts": [
61+
{
62+
"execution_status": "SUCCEEDED",
63+
"transaction_index": 0,
64+
"transaction_hash": "0x2a648ab1aa6847eb38507fc842e050f256562bf87b26083c332f3f21318c2c3",
65+
"l2_to_l1_messages": [
66+
{
67+
"from_address": "0x332299dc083f3778122e5b7762bc9d399da18fefe93769aee67bb49f51c8d2",
68+
"to_address": "0xAf35eE8eD700ff132C5d1d298A73BECdA25ccDF9",
69+
"payload": [
70+
"0x6cd852fe1b2bbd8587bb0aaeb09813436c57c8ce21e75651e317273a1f22228",
71+
"0x58feb991988e53fffcba71f6df23c803fb062f1b3bab126d2c9ce574255b36e"
72+
]
73+
}
74+
],
75+
"events": [],
76+
"execution_resources": {
77+
"n_steps": 374,
78+
"builtin_instance_counter": {
79+
"range_check_builtin": 7
80+
},
81+
"n_memory_holes": 4,
82+
"data_availability": {
83+
"l1_gas": 1,
84+
"l1_data_gas": 2
85+
}
86+
},
87+
"actual_fee": "0x127089df3a1984"
88+
},
89+
{
90+
"execution_status": "SUCCEEDED",
91+
"transaction_index": 1,
92+
"transaction_hash": "0xbc984e8e1fe594dd518a3a51db4f338437a5d2fbdda772d4426b532a67ffff",
93+
"l2_to_l1_messages": [],
94+
"events": [],
95+
"execution_resources": {
96+
"n_steps": 307,
97+
"builtin_instance_counter": {
98+
"range_check_builtin": 9,
99+
"pedersen_builtin": 2
100+
},
101+
"n_memory_holes": 25,
102+
"data_availability": {
103+
"l1_gas": 2,
104+
"l1_data_gas": 3
105+
}
106+
},
107+
"actual_fee": "0x3b2d25cd7bccc"
108+
}
109+
],
110+
"starknet_version": "0.12.0"
111+
}

rpc/trace.go

+30
Original file line numberDiff line numberDiff line change
@@ -215,6 +215,36 @@ func (h *Handler) traceBlockTransactions(ctx context.Context, block *core.Block,
215215
} else if blockVer.LessThanEqual(traceFallbackVersion) && block.ProtocolVersion != excludedVersion {
216216
// version <= 0.13.1 and not 0.13.1.1 fetch blocks from feeder gateway
217217
result, err := h.fetchTraces(ctx, block.Hash)
218+
if err != nil {
219+
return nil, httpHeader, err
220+
}
221+
222+
if !v0_6Response {
223+
txDataAvailability := make(map[felt.Felt]vm.DataAvailability, len(block.Receipts))
224+
for _, receipt := range block.Receipts {
225+
if receipt.ExecutionResources == nil {
226+
continue
227+
}
228+
if receiptDA := receipt.ExecutionResources.DataAvailability; receiptDA != nil {
229+
da := vm.DataAvailability{
230+
L1Gas: receiptDA.L1Gas,
231+
L1DataGas: receiptDA.L1DataGas,
232+
}
233+
txDataAvailability[*receipt.TransactionHash] = da
234+
}
235+
}
236+
237+
// add execution resources on root level
238+
for index, trace := range result {
239+
executionResources := trace.TraceRoot.TotalExecutionResources()
240+
// fgw doesn't provide this data in traces endpoint
241+
// some receipts don't have data availability data in this case we don't
242+
da := txDataAvailability[*trace.TransactionHash]
243+
executionResources.DataAvailability = &da
244+
result[index].TraceRoot.ExecutionResources = executionResources
245+
}
246+
}
247+
218248
return result, httpHeader, err
219249
}
220250

0 commit comments

Comments
 (0)