Line data Source code
1 : #ifndef HEADER_fd_src_discof_rpcserver_fd_block_to_json_h
2 : #define HEADER_fd_src_discof_rpcserver_fd_block_to_json_h
3 :
4 : #include "../replay/fd_replay_tile.h"
5 : #include "../../ballet/txn/fd_txn.h"
6 : #include "../../flamenco/accdb/fd_accdb_ref.h"
7 :
8 : typedef struct fd_webserver fd_webserver_t;
9 :
10 : /* Rewards assigned after block is executed */
11 :
12 : struct fd_block_rewards {
13 : ulong collected_fees;
14 : fd_hash_t leader;
15 : ulong post_balance;
16 : };
17 : typedef struct fd_block_rewards fd_block_rewards_t;
18 :
19 : typedef enum {
20 : FD_ENC_BASE58, FD_ENC_BASE64, FD_ENC_BASE64_ZSTD, FD_ENC_JSON, FD_ENC_JSON_PARSED
21 : } fd_rpc_encoding_t;
22 :
23 : enum fd_block_detail { FD_BLOCK_DETAIL_FULL, FD_BLOCK_DETAIL_ACCTS, FD_BLOCK_DETAIL_SIGS, FD_BLOCK_DETAIL_NONE };
24 :
25 : const char* fd_txn_meta_to_json( fd_webserver_t * ws,
26 : const void * meta_raw,
27 : ulong meta_raw_sz );
28 :
29 : const char* fd_txn_to_json( fd_webserver_t * ws,
30 : fd_txn_t* txn,
31 : const uchar* raw,
32 : ulong raw_sz,
33 : fd_rpc_encoding_t encoding,
34 : long maxvers,
35 : enum fd_block_detail detail,
36 : fd_spad_t * spad );
37 :
38 : const char* fd_block_to_json( fd_webserver_t * ws,
39 : const char * call_id,
40 : const uchar * blk_data,
41 : ulong blk_sz,
42 : fd_replay_slot_completed_t * info,
43 : fd_replay_slot_completed_t * parent_info,
44 : fd_rpc_encoding_t encoding,
45 : long maxvers,
46 : enum fd_block_detail detail,
47 : fd_block_rewards_t * rewards,
48 : fd_spad_t * spad );
49 :
50 0 : #define FD_LONG_UNSET (1L << 63L)
51 :
52 : char const *
53 : fd_account_to_json( fd_webserver_t * ws,
54 : fd_pubkey_t acct,
55 : fd_rpc_encoding_t enc,
56 : fd_accdb_ro_t const * ro,
57 : long off,
58 : long len,
59 : fd_spad_t * spad );
60 :
61 : #endif /* HEADER_fd_src_discof_rpcserver_fd_block_to_json_h */
|