Line data Source code
1 : /* Automatically generated by fd_pb_gen.py. Do not edit. */
2 :
3 : #include "txn.pb.h"
4 :
5 : static int
6 : fd_exec_test_message_header_encode( fd_pb_encoder_t * enc,
7 0 : void const * msg_ ) {
8 0 : fd_exec_test_message_header_t const * msg = msg_;
9 0 : if( msg->num_required_signatures && FD_UNLIKELY( !fd_pb_push_uint32( enc, 1U, msg->num_required_signatures ) ) ) return 0;
10 0 : if( msg->num_readonly_signed_accounts && FD_UNLIKELY( !fd_pb_push_uint32( enc, 2U, msg->num_readonly_signed_accounts ) ) ) return 0;
11 0 : if( msg->num_readonly_unsigned_accounts && FD_UNLIKELY( !fd_pb_push_uint32( enc, 3U, msg->num_readonly_unsigned_accounts ) ) ) return 0;
12 0 : return 1;
13 0 : }
14 :
15 : static int
16 : fd_exec_test_message_header_decode( fd_pb_inbuf_t * in,
17 : void * msg_,
18 0 : fd_spad_t * spad FD_PARAM_UNUSED ) {
19 0 : fd_exec_test_message_header_t * msg = msg_;
20 0 : while( fd_pb_inbuf_sz( in ) ) {
21 0 : fd_pb_tlv_t tlv[1];
22 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
23 0 : switch( tlv->field_id ) {
24 0 : case 1:
25 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->num_required_signatures ) ) ) return 0;
26 0 : break;
27 0 : case 2:
28 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->num_readonly_signed_accounts ) ) ) return 0;
29 0 : break;
30 0 : case 3:
31 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->num_readonly_unsigned_accounts ) ) ) return 0;
32 0 : break;
33 0 : default:
34 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
35 0 : break;
36 0 : }
37 0 : }
38 0 : return 1;
39 0 : }
40 :
41 : fd_pb_msgdesc_t const fd_exec_test_message_header_desc = {
42 : .encode = fd_exec_test_message_header_encode,
43 : .decode = fd_exec_test_message_header_decode
44 : };
45 :
46 : static int
47 : fd_exec_test_compiled_instruction_encode( fd_pb_encoder_t * enc,
48 0 : void const * msg_ ) {
49 0 : fd_exec_test_compiled_instruction_t const * msg = msg_;
50 0 : if( msg->program_id_index && FD_UNLIKELY( !fd_pb_push_uint32( enc, 1U, msg->program_id_index ) ) ) return 0;
51 0 : if( FD_UNLIKELY( !fd_pb_enc_packed( enc, 2U, FD_PB_GEN_UINT32, msg->accounts, msg->accounts_count ) ) ) return 0;
52 0 : if( msg->data && msg->data->size && FD_UNLIKELY( !fd_pb_push_bytes( enc, 3U, msg->data->bytes, msg->data->size ) ) ) return 0;
53 0 : return 1;
54 0 : }
55 :
56 : static int
57 : fd_exec_test_compiled_instruction_decode( fd_pb_inbuf_t * in,
58 : void * msg_,
59 0 : fd_spad_t * spad ) {
60 0 : fd_exec_test_compiled_instruction_t * msg = msg_;
61 0 : while( fd_pb_inbuf_sz( in ) ) {
62 0 : fd_pb_tlv_t tlv[1];
63 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
64 0 : switch( tlv->field_id ) {
65 0 : case 1:
66 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->program_id_index ) ) ) return 0;
67 0 : break;
68 0 : case 2:
69 0 : if( FD_UNLIKELY( !fd_pb_dec_repeated( in, tlv, spad, FD_PB_GEN_UINT32, &msg->accounts, &msg->accounts_count ) ) ) return 0;
70 0 : break;
71 0 : case 3:
72 0 : if( FD_UNLIKELY( !fd_pb_dec_bytes_ptr( in, tlv, spad, &msg->data ) ) ) return 0;
73 0 : break;
74 0 : default:
75 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
76 0 : break;
77 0 : }
78 0 : }
79 0 : return 1;
80 0 : }
81 :
82 : fd_pb_msgdesc_t const fd_exec_test_compiled_instruction_desc = {
83 : .encode = fd_exec_test_compiled_instruction_encode,
84 : .decode = fd_exec_test_compiled_instruction_decode
85 : };
86 :
87 : static int
88 : fd_exec_test_message_address_table_lookup_encode( fd_pb_encoder_t * enc,
89 0 : void const * msg_ ) {
90 0 : fd_exec_test_message_address_table_lookup_t const * msg = msg_;
91 0 : if( FD_UNLIKELY( !fd_pb_push_bytes( enc, 1U, msg->account_key, 32UL ) ) ) return 0;
92 0 : if( FD_UNLIKELY( !fd_pb_enc_packed( enc, 2U, FD_PB_GEN_UINT32, msg->writable_indexes, msg->writable_indexes_count ) ) ) return 0;
93 0 : if( FD_UNLIKELY( !fd_pb_enc_packed( enc, 3U, FD_PB_GEN_UINT32, msg->readonly_indexes, msg->readonly_indexes_count ) ) ) return 0;
94 0 : return 1;
95 0 : }
96 :
97 : static int
98 : fd_exec_test_message_address_table_lookup_decode( fd_pb_inbuf_t * in,
99 : void * msg_,
100 0 : fd_spad_t * spad ) {
101 0 : fd_exec_test_message_address_table_lookup_t * msg = msg_;
102 0 : while( fd_pb_inbuf_sz( in ) ) {
103 0 : fd_pb_tlv_t tlv[1];
104 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
105 0 : switch( tlv->field_id ) {
106 0 : case 1:
107 0 : if( FD_UNLIKELY( !fd_pb_dec_bytes_fixed( in, tlv, msg->account_key, 32UL ) ) ) return 0;
108 0 : break;
109 0 : case 2:
110 0 : if( FD_UNLIKELY( !fd_pb_dec_repeated( in, tlv, spad, FD_PB_GEN_UINT32, &msg->writable_indexes, &msg->writable_indexes_count ) ) ) return 0;
111 0 : break;
112 0 : case 3:
113 0 : if( FD_UNLIKELY( !fd_pb_dec_repeated( in, tlv, spad, FD_PB_GEN_UINT32, &msg->readonly_indexes, &msg->readonly_indexes_count ) ) ) return 0;
114 0 : break;
115 0 : default:
116 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
117 0 : break;
118 0 : }
119 0 : }
120 0 : return 1;
121 0 : }
122 :
123 : fd_pb_msgdesc_t const fd_exec_test_message_address_table_lookup_desc = {
124 : .encode = fd_exec_test_message_address_table_lookup_encode,
125 : .decode = fd_exec_test_message_address_table_lookup_decode
126 : };
127 :
128 : static int
129 : fd_exec_test_transaction_config_encode( fd_pb_encoder_t * enc,
130 0 : void const * msg_ ) {
131 0 : fd_exec_test_transaction_config_t const * msg = msg_;
132 0 : if( msg->has_priority_fee && FD_UNLIKELY( !fd_pb_push_uint64( enc, 1U, msg->priority_fee ) ) ) return 0;
133 0 : if( msg->has_compute_unit_limit && FD_UNLIKELY( !fd_pb_push_uint32( enc, 2U, msg->compute_unit_limit ) ) ) return 0;
134 0 : if( msg->has_loaded_accounts_data_size_limit && FD_UNLIKELY( !fd_pb_push_uint32( enc, 3U, msg->loaded_accounts_data_size_limit ) ) ) return 0;
135 0 : if( msg->has_heap_size && FD_UNLIKELY( !fd_pb_push_uint32( enc, 4U, msg->heap_size ) ) ) return 0;
136 0 : return 1;
137 0 : }
138 :
139 : static int
140 : fd_exec_test_transaction_config_decode( fd_pb_inbuf_t * in,
141 : void * msg_,
142 0 : fd_spad_t * spad FD_PARAM_UNUSED ) {
143 0 : fd_exec_test_transaction_config_t * msg = msg_;
144 0 : while( fd_pb_inbuf_sz( in ) ) {
145 0 : fd_pb_tlv_t tlv[1];
146 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
147 0 : switch( tlv->field_id ) {
148 0 : case 1:
149 0 : if( FD_UNLIKELY( !fd_pb_dec_uint64( tlv, &msg->priority_fee ) ) ) return 0;
150 0 : msg->has_priority_fee = 1;
151 0 : break;
152 0 : case 2:
153 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->compute_unit_limit ) ) ) return 0;
154 0 : msg->has_compute_unit_limit = 1;
155 0 : break;
156 0 : case 3:
157 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->loaded_accounts_data_size_limit ) ) ) return 0;
158 0 : msg->has_loaded_accounts_data_size_limit = 1;
159 0 : break;
160 0 : case 4:
161 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->heap_size ) ) ) return 0;
162 0 : msg->has_heap_size = 1;
163 0 : break;
164 0 : default:
165 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
166 0 : break;
167 0 : }
168 0 : }
169 0 : return 1;
170 0 : }
171 :
172 : fd_pb_msgdesc_t const fd_exec_test_transaction_config_desc = {
173 : .encode = fd_exec_test_transaction_config_encode,
174 : .decode = fd_exec_test_transaction_config_decode
175 : };
176 :
177 : static int
178 : fd_exec_test_transaction_message_encode( fd_pb_encoder_t * enc,
179 0 : void const * msg_ ) {
180 0 : fd_exec_test_transaction_message_t const * msg = msg_;
181 0 : if( msg->has_header && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 2U, &fd_exec_test_message_header_desc, &msg->header ) ) ) return 0;
182 0 : for( ulong i=0UL; i<msg->account_keys_count; i++ ) {
183 0 : if( FD_UNLIKELY( !fd_pb_enc_bytes_ptr( enc, 3U, msg->account_keys[ i ] ) ) ) return 0;
184 0 : }
185 0 : if( FD_UNLIKELY( !fd_pb_push_bytes( enc, 5U, msg->recent_blockhash, 32UL ) ) ) return 0;
186 0 : for( ulong i=0UL; i<msg->instructions_count; i++ ) {
187 0 : if( FD_UNLIKELY( !fd_pb_enc_submsg( enc, 6U, &fd_exec_test_compiled_instruction_desc, &msg->instructions[ i ] ) ) ) return 0;
188 0 : }
189 0 : for( ulong i=0UL; i<msg->address_table_lookups_count; i++ ) {
190 0 : if( FD_UNLIKELY( !fd_pb_enc_submsg( enc, 7U, &fd_exec_test_message_address_table_lookup_desc, &msg->address_table_lookups[ i ] ) ) ) return 0;
191 0 : }
192 0 : if( msg->version && FD_UNLIKELY( !fd_pb_push_int64( enc, 8U, (long)msg->version ) ) ) return 0;
193 0 : if( msg->has_v1_config && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 9U, &fd_exec_test_transaction_config_desc, &msg->v1_config ) ) ) return 0;
194 0 : return 1;
195 0 : }
196 :
197 : static int
198 : fd_exec_test_transaction_message_decode( fd_pb_inbuf_t * in,
199 : void * msg_,
200 0 : fd_spad_t * spad ) {
201 0 : fd_exec_test_transaction_message_t * msg = msg_;
202 0 : while( fd_pb_inbuf_sz( in ) ) {
203 0 : fd_pb_tlv_t tlv[1];
204 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
205 0 : switch( tlv->field_id ) {
206 0 : case 2:
207 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_message_header_desc, &msg->header ) ) ) return 0;
208 0 : msg->has_header = 1;
209 0 : break;
210 0 : case 3:
211 0 : {
212 0 : fd_pb_bytes_array_t ** ele = fd_pb_dec_grow( spad, &msg->account_keys, &msg->account_keys_count, alignof(fd_pb_bytes_array_t *), sizeof(fd_pb_bytes_array_t *) );
213 0 : if( FD_UNLIKELY( !ele ) ) return 0;
214 0 : if( FD_UNLIKELY( !fd_pb_dec_bytes_ptr( in, tlv, spad, ele ) ) ) return 0;
215 0 : }
216 0 : break;
217 0 : case 5:
218 0 : if( FD_UNLIKELY( !fd_pb_dec_bytes_fixed( in, tlv, msg->recent_blockhash, 32UL ) ) ) return 0;
219 0 : break;
220 0 : case 6:
221 0 : {
222 0 : void * ele = fd_pb_dec_grow( spad, &msg->instructions, &msg->instructions_count, alignof(fd_exec_test_compiled_instruction_t), sizeof(fd_exec_test_compiled_instruction_t) );
223 0 : if( FD_UNLIKELY( !ele ) ) return 0;
224 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_compiled_instruction_desc, ele ) ) ) return 0;
225 0 : }
226 0 : break;
227 0 : case 7:
228 0 : {
229 0 : void * ele = fd_pb_dec_grow( spad, &msg->address_table_lookups, &msg->address_table_lookups_count, alignof(fd_exec_test_message_address_table_lookup_t), sizeof(fd_exec_test_message_address_table_lookup_t) );
230 0 : if( FD_UNLIKELY( !ele ) ) return 0;
231 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_message_address_table_lookup_desc, ele ) ) ) return 0;
232 0 : }
233 0 : break;
234 0 : case 8:
235 0 : if( FD_UNLIKELY( !fd_pb_dec_int32( tlv, (int *)&msg->version ) ) ) return 0;
236 0 : break;
237 0 : case 9:
238 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_transaction_config_desc, &msg->v1_config ) ) ) return 0;
239 0 : msg->has_v1_config = 1;
240 0 : break;
241 0 : default:
242 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
243 0 : break;
244 0 : }
245 0 : }
246 0 : return 1;
247 0 : }
248 :
249 : fd_pb_msgdesc_t const fd_exec_test_transaction_message_desc = {
250 : .encode = fd_exec_test_transaction_message_encode,
251 : .decode = fd_exec_test_transaction_message_decode
252 : };
253 :
254 : static int
255 : fd_exec_test_sanitized_transaction_encode( fd_pb_encoder_t * enc,
256 0 : void const * msg_ ) {
257 0 : fd_exec_test_sanitized_transaction_t const * msg = msg_;
258 0 : if( msg->has_message && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 1U, &fd_exec_test_transaction_message_desc, &msg->message ) ) ) return 0;
259 0 : if( FD_UNLIKELY( !fd_pb_push_bytes( enc, 2U, msg->message_hash, 32UL ) ) ) return 0;
260 0 : for( ulong i=0UL; i<msg->signatures_count; i++ ) {
261 0 : if( FD_UNLIKELY( !fd_pb_enc_bytes_ptr( enc, 4U, msg->signatures[ i ] ) ) ) return 0;
262 0 : }
263 0 : return 1;
264 0 : }
265 :
266 : static int
267 : fd_exec_test_sanitized_transaction_decode( fd_pb_inbuf_t * in,
268 : void * msg_,
269 0 : fd_spad_t * spad ) {
270 0 : fd_exec_test_sanitized_transaction_t * msg = msg_;
271 0 : while( fd_pb_inbuf_sz( in ) ) {
272 0 : fd_pb_tlv_t tlv[1];
273 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
274 0 : switch( tlv->field_id ) {
275 0 : case 1:
276 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_transaction_message_desc, &msg->message ) ) ) return 0;
277 0 : msg->has_message = 1;
278 0 : break;
279 0 : case 2:
280 0 : if( FD_UNLIKELY( !fd_pb_dec_bytes_fixed( in, tlv, msg->message_hash, 32UL ) ) ) return 0;
281 0 : break;
282 0 : case 4:
283 0 : {
284 0 : fd_pb_bytes_array_t ** ele = fd_pb_dec_grow( spad, &msg->signatures, &msg->signatures_count, alignof(fd_pb_bytes_array_t *), sizeof(fd_pb_bytes_array_t *) );
285 0 : if( FD_UNLIKELY( !ele ) ) return 0;
286 0 : if( FD_UNLIKELY( !fd_pb_dec_bytes_ptr( in, tlv, spad, ele ) ) ) return 0;
287 0 : }
288 0 : break;
289 0 : default:
290 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
291 0 : break;
292 0 : }
293 0 : }
294 0 : return 1;
295 0 : }
296 :
297 : fd_pb_msgdesc_t const fd_exec_test_sanitized_transaction_desc = {
298 : .encode = fd_exec_test_sanitized_transaction_encode,
299 : .decode = fd_exec_test_sanitized_transaction_decode
300 : };
301 :
302 : static int
303 : fd_exec_test_txn_bank_encode( fd_pb_encoder_t * enc,
304 0 : void const * msg_ ) {
305 0 : fd_exec_test_txn_bank_t const * msg = msg_;
306 0 : for( ulong i=0UL; i<msg->blockhash_queue_count; i++ ) {
307 0 : if( FD_UNLIKELY( !fd_pb_enc_submsg( enc, 1U, &fd_exec_test_blockhash_queue_entry_desc, &msg->blockhash_queue[ i ] ) ) ) return 0;
308 0 : }
309 0 : if( msg->rbh_lamports_per_signature && FD_UNLIKELY( !fd_pb_push_uint32( enc, 2U, msg->rbh_lamports_per_signature ) ) ) return 0;
310 0 : if( msg->has_fee_rate_governor && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 3U, &fd_exec_test_fee_rate_governor_desc, &msg->fee_rate_governor ) ) ) return 0;
311 0 : if( msg->total_epoch_stake && FD_UNLIKELY( !fd_pb_push_uint64( enc, 4U, msg->total_epoch_stake ) ) ) return 0;
312 0 : if( msg->has_features && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 7U, &fd_exec_test_feature_set_desc, &msg->features ) ) ) return 0;
313 0 : return 1;
314 0 : }
315 :
316 : static int
317 : fd_exec_test_txn_bank_decode( fd_pb_inbuf_t * in,
318 : void * msg_,
319 0 : fd_spad_t * spad ) {
320 0 : fd_exec_test_txn_bank_t * msg = msg_;
321 0 : while( fd_pb_inbuf_sz( in ) ) {
322 0 : fd_pb_tlv_t tlv[1];
323 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
324 0 : switch( tlv->field_id ) {
325 0 : case 1:
326 0 : {
327 0 : void * ele = fd_pb_dec_grow( spad, &msg->blockhash_queue, &msg->blockhash_queue_count, alignof(fd_exec_test_blockhash_queue_entry_t), sizeof(fd_exec_test_blockhash_queue_entry_t) );
328 0 : if( FD_UNLIKELY( !ele ) ) return 0;
329 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_blockhash_queue_entry_desc, ele ) ) ) return 0;
330 0 : }
331 0 : break;
332 0 : case 2:
333 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->rbh_lamports_per_signature ) ) ) return 0;
334 0 : break;
335 0 : case 3:
336 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_fee_rate_governor_desc, &msg->fee_rate_governor ) ) ) return 0;
337 0 : msg->has_fee_rate_governor = 1;
338 0 : break;
339 0 : case 4:
340 0 : if( FD_UNLIKELY( !fd_pb_dec_uint64( tlv, &msg->total_epoch_stake ) ) ) return 0;
341 0 : break;
342 0 : case 7:
343 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_feature_set_desc, &msg->features ) ) ) return 0;
344 0 : msg->has_features = 1;
345 0 : break;
346 0 : default:
347 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
348 0 : break;
349 0 : }
350 0 : }
351 0 : return 1;
352 0 : }
353 :
354 : fd_pb_msgdesc_t const fd_exec_test_txn_bank_desc = {
355 : .encode = fd_exec_test_txn_bank_encode,
356 : .decode = fd_exec_test_txn_bank_decode
357 : };
358 :
359 : static int
360 : fd_exec_test_txn_context_encode( fd_pb_encoder_t * enc,
361 0 : void const * msg_ ) {
362 0 : fd_exec_test_txn_context_t const * msg = msg_;
363 0 : if( msg->has_tx && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 1U, &fd_exec_test_sanitized_transaction_desc, &msg->tx ) ) ) return 0;
364 0 : for( ulong i=0UL; i<msg->account_shared_data_count; i++ ) {
365 0 : if( FD_UNLIKELY( !fd_pb_enc_submsg( enc, 2U, &fd_exec_test_acct_state_desc, &msg->account_shared_data[ i ] ) ) ) return 0;
366 0 : }
367 0 : if( msg->has_bank && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 6U, &fd_exec_test_txn_bank_desc, &msg->bank ) ) ) return 0;
368 0 : return 1;
369 0 : }
370 :
371 : static int
372 : fd_exec_test_txn_context_decode( fd_pb_inbuf_t * in,
373 : void * msg_,
374 0 : fd_spad_t * spad ) {
375 0 : fd_exec_test_txn_context_t * msg = msg_;
376 0 : while( fd_pb_inbuf_sz( in ) ) {
377 0 : fd_pb_tlv_t tlv[1];
378 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
379 0 : switch( tlv->field_id ) {
380 0 : case 1:
381 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_sanitized_transaction_desc, &msg->tx ) ) ) return 0;
382 0 : msg->has_tx = 1;
383 0 : break;
384 0 : case 2:
385 0 : {
386 0 : void * ele = fd_pb_dec_grow( spad, &msg->account_shared_data, &msg->account_shared_data_count, alignof(fd_exec_test_acct_state_t), sizeof(fd_exec_test_acct_state_t) );
387 0 : if( FD_UNLIKELY( !ele ) ) return 0;
388 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_acct_state_desc, ele ) ) ) return 0;
389 0 : }
390 0 : break;
391 0 : case 6:
392 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_txn_bank_desc, &msg->bank ) ) ) return 0;
393 0 : msg->has_bank = 1;
394 0 : break;
395 0 : default:
396 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
397 0 : break;
398 0 : }
399 0 : }
400 0 : return 1;
401 0 : }
402 :
403 : fd_pb_msgdesc_t const fd_exec_test_txn_context_desc = {
404 : .encode = fd_exec_test_txn_context_encode,
405 : .decode = fd_exec_test_txn_context_decode
406 : };
407 :
408 : static int
409 : fd_exec_test_fee_details_encode( fd_pb_encoder_t * enc,
410 0 : void const * msg_ ) {
411 0 : fd_exec_test_fee_details_t const * msg = msg_;
412 0 : if( msg->transaction_fee && FD_UNLIKELY( !fd_pb_push_uint64( enc, 1U, msg->transaction_fee ) ) ) return 0;
413 0 : if( msg->prioritization_fee && FD_UNLIKELY( !fd_pb_push_uint64( enc, 2U, msg->prioritization_fee ) ) ) return 0;
414 0 : return 1;
415 0 : }
416 :
417 : static int
418 : fd_exec_test_fee_details_decode( fd_pb_inbuf_t * in,
419 : void * msg_,
420 0 : fd_spad_t * spad FD_PARAM_UNUSED ) {
421 0 : fd_exec_test_fee_details_t * msg = msg_;
422 0 : while( fd_pb_inbuf_sz( in ) ) {
423 0 : fd_pb_tlv_t tlv[1];
424 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
425 0 : switch( tlv->field_id ) {
426 0 : case 1:
427 0 : if( FD_UNLIKELY( !fd_pb_dec_uint64( tlv, &msg->transaction_fee ) ) ) return 0;
428 0 : break;
429 0 : case 2:
430 0 : if( FD_UNLIKELY( !fd_pb_dec_uint64( tlv, &msg->prioritization_fee ) ) ) return 0;
431 0 : break;
432 0 : default:
433 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
434 0 : break;
435 0 : }
436 0 : }
437 0 : return 1;
438 0 : }
439 :
440 : fd_pb_msgdesc_t const fd_exec_test_fee_details_desc = {
441 : .encode = fd_exec_test_fee_details_encode,
442 : .decode = fd_exec_test_fee_details_decode
443 : };
444 :
445 : static int
446 : fd_exec_test_txn_result_encode( fd_pb_encoder_t * enc,
447 0 : void const * msg_ ) {
448 0 : fd_exec_test_txn_result_t const * msg = msg_;
449 0 : if( msg->executed && FD_UNLIKELY( !fd_pb_push_bool( enc, 1U, msg->executed ) ) ) return 0;
450 0 : if( msg->txn_error && FD_UNLIKELY( !fd_pb_push_uint32( enc, 6U, msg->txn_error ) ) ) return 0;
451 0 : if( msg->instruction_error && FD_UNLIKELY( !fd_pb_push_uint32( enc, 7U, msg->instruction_error ) ) ) return 0;
452 0 : if( msg->instruction_error_index && FD_UNLIKELY( !fd_pb_push_uint32( enc, 8U, msg->instruction_error_index ) ) ) return 0;
453 0 : if( msg->custom_error && FD_UNLIKELY( !fd_pb_push_uint32( enc, 9U, msg->custom_error ) ) ) return 0;
454 0 : if( msg->executed_units && FD_UNLIKELY( !fd_pb_push_uint64( enc, 11U, msg->executed_units ) ) ) return 0;
455 0 : if( msg->has_fee_details && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 12U, &fd_exec_test_fee_details_desc, &msg->fee_details ) ) ) return 0;
456 0 : if( msg->loaded_accounts_data_size && FD_UNLIKELY( !fd_pb_push_uint64( enc, 13U, msg->loaded_accounts_data_size ) ) ) return 0;
457 0 : for( ulong i=0UL; i<msg->modified_accounts_count; i++ ) {
458 0 : if( FD_UNLIKELY( !fd_pb_enc_submsg( enc, 14U, &fd_exec_test_acct_state_desc, &msg->modified_accounts[ i ] ) ) ) return 0;
459 0 : }
460 0 : for( ulong i=0UL; i<msg->rollback_accounts_count; i++ ) {
461 0 : if( FD_UNLIKELY( !fd_pb_enc_submsg( enc, 15U, &fd_exec_test_acct_state_desc, &msg->rollback_accounts[ i ] ) ) ) return 0;
462 0 : }
463 0 : if( msg->return_data_hash && FD_UNLIKELY( !fd_pb_push_fixed64( enc, 16U, msg->return_data_hash ) ) ) return 0;
464 0 : return 1;
465 0 : }
466 :
467 : static int
468 : fd_exec_test_txn_result_decode( fd_pb_inbuf_t * in,
469 : void * msg_,
470 0 : fd_spad_t * spad ) {
471 0 : fd_exec_test_txn_result_t * msg = msg_;
472 0 : while( fd_pb_inbuf_sz( in ) ) {
473 0 : fd_pb_tlv_t tlv[1];
474 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
475 0 : switch( tlv->field_id ) {
476 0 : case 1:
477 0 : if( FD_UNLIKELY( !fd_pb_dec_bool( tlv, &msg->executed ) ) ) return 0;
478 0 : break;
479 0 : case 6:
480 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->txn_error ) ) ) return 0;
481 0 : break;
482 0 : case 7:
483 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->instruction_error ) ) ) return 0;
484 0 : break;
485 0 : case 8:
486 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->instruction_error_index ) ) ) return 0;
487 0 : break;
488 0 : case 9:
489 0 : if( FD_UNLIKELY( !fd_pb_dec_uint32( tlv, &msg->custom_error ) ) ) return 0;
490 0 : break;
491 0 : case 16:
492 0 : if( FD_UNLIKELY( !fd_pb_dec_fixed64( tlv, &msg->return_data_hash ) ) ) return 0;
493 0 : break;
494 0 : case 11:
495 0 : if( FD_UNLIKELY( !fd_pb_dec_uint64( tlv, &msg->executed_units ) ) ) return 0;
496 0 : break;
497 0 : case 12:
498 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_fee_details_desc, &msg->fee_details ) ) ) return 0;
499 0 : msg->has_fee_details = 1;
500 0 : break;
501 0 : case 13:
502 0 : if( FD_UNLIKELY( !fd_pb_dec_uint64( tlv, &msg->loaded_accounts_data_size ) ) ) return 0;
503 0 : break;
504 0 : case 14:
505 0 : {
506 0 : void * ele = fd_pb_dec_grow( spad, &msg->modified_accounts, &msg->modified_accounts_count, alignof(fd_exec_test_acct_state_t), sizeof(fd_exec_test_acct_state_t) );
507 0 : if( FD_UNLIKELY( !ele ) ) return 0;
508 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_acct_state_desc, ele ) ) ) return 0;
509 0 : }
510 0 : break;
511 0 : case 15:
512 0 : {
513 0 : void * ele = fd_pb_dec_grow( spad, &msg->rollback_accounts, &msg->rollback_accounts_count, alignof(fd_exec_test_acct_state_t), sizeof(fd_exec_test_acct_state_t) );
514 0 : if( FD_UNLIKELY( !ele ) ) return 0;
515 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_acct_state_desc, ele ) ) ) return 0;
516 0 : }
517 0 : break;
518 0 : default:
519 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
520 0 : break;
521 0 : }
522 0 : }
523 0 : return 1;
524 0 : }
525 :
526 : fd_pb_msgdesc_t const fd_exec_test_txn_result_desc = {
527 : .encode = fd_exec_test_txn_result_encode,
528 : .decode = fd_exec_test_txn_result_decode
529 : };
530 :
531 : static int
532 : fd_exec_test_txn_fixture_encode( fd_pb_encoder_t * enc,
533 0 : void const * msg_ ) {
534 0 : fd_exec_test_txn_fixture_t const * msg = msg_;
535 0 : if( msg->has_metadata && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 1U, &fd_exec_test_fixture_metadata_desc, &msg->metadata ) ) ) return 0;
536 0 : if( msg->has_input && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 2U, &fd_exec_test_txn_context_desc, &msg->input ) ) ) return 0;
537 0 : if( msg->has_output && FD_UNLIKELY( !fd_pb_enc_submsg( enc, 3U, &fd_exec_test_txn_result_desc, &msg->output ) ) ) return 0;
538 0 : return 1;
539 0 : }
540 :
541 : static int
542 : fd_exec_test_txn_fixture_decode( fd_pb_inbuf_t * in,
543 : void * msg_,
544 0 : fd_spad_t * spad ) {
545 0 : fd_exec_test_txn_fixture_t * msg = msg_;
546 0 : while( fd_pb_inbuf_sz( in ) ) {
547 0 : fd_pb_tlv_t tlv[1];
548 0 : if( FD_UNLIKELY( !fd_pb_dec_tlv( in, tlv ) ) ) return 0;
549 0 : switch( tlv->field_id ) {
550 0 : case 1:
551 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_fixture_metadata_desc, &msg->metadata ) ) ) return 0;
552 0 : msg->has_metadata = 1;
553 0 : break;
554 0 : case 2:
555 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_txn_context_desc, &msg->input ) ) ) return 0;
556 0 : msg->has_input = 1;
557 0 : break;
558 0 : case 3:
559 0 : if( FD_UNLIKELY( !fd_pb_dec_submsg( in, tlv, spad, &fd_exec_test_txn_result_desc, &msg->output ) ) ) return 0;
560 0 : msg->has_output = 1;
561 0 : break;
562 0 : default:
563 0 : if( FD_UNLIKELY( !fd_pb_dec_skip( in, tlv ) ) ) return 0;
564 0 : break;
565 0 : }
566 0 : }
567 0 : return 1;
568 0 : }
569 :
570 : fd_pb_msgdesc_t const fd_exec_test_txn_fixture_desc = {
571 : .encode = fd_exec_test_txn_fixture_encode,
572 : .decode = fd_exec_test_txn_fixture_decode
573 : };
574 :
|