MCPcopy Create free account
hub / github.com/ElementsProject/lightning / bitcoin_block_pull_dynafed_params

Function bitcoin_block_pull_dynafed_params

bitcoin/block.c:64–123  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

62}
63
64static void bitcoin_block_pull_dynafed_params(const u8 **cursor, size_t *len, struct sha256_ctx *shactx)
65{
66 u8 type;
67 u64 l1, l2;
68 pull(cursor, len, &type, 1);
69 sha256_update(shactx, &type, 1);
70 switch ((enum dynafed_params_type)type) {
71 case DYNAFED_PARAMS_NULL:
72 break;
73 case DYNAFED_PARAMS_COMPACT:
74 /* "scriptPubKey" used for block signing */
75 l1 = pull_varint(cursor, len);
76 sha256_varint(shactx, l1);
77 sha256_update(shactx, *cursor, l1);
78 pull(cursor, len, NULL, l1);
79
80 /* signblock_witness_limit */
81 sha256_update(shactx, *cursor, 4);
82 pull(cursor, len, NULL, 4);
83
84 /* Skip elided_root */
85 sha256_update(shactx, *cursor, 32);
86 pull(cursor, len, NULL, 32);
87 break;
88
89 case DYNAFED_PARAMS_FULL:
90 /* "scriptPubKey" used for block signing */
91 l1 = pull_varint(cursor, len);
92 sha256_varint(shactx, l1);
93 sha256_update(shactx, *cursor, l1);
94 pull(cursor, len, NULL, l1);
95
96 /* signblock_witness_limit */
97 sha256_update(shactx, *cursor, 4);
98 pull(cursor, len, NULL, 4);
99
100 /* fedpeg_program */
101 l1 = pull_varint(cursor, len);
102 sha256_varint(shactx, l1);
103 sha256_update(shactx, *cursor, l1);
104 pull(cursor, len, NULL, l1);
105
106 /* fedpegscript */
107 l1 = pull_varint(cursor, len);
108 sha256_varint(shactx, l1);
109 sha256_update(shactx, *cursor, l1);
110 pull(cursor, len, NULL, l1);
111
112 /* extension space */
113 l2 = pull_varint(cursor, len);
114 sha256_varint(shactx, l2);
115 for (size_t i = 0; i < l2; i++) {
116 l1 = pull_varint(cursor, len);
117 sha256_varint(shactx, l1);
118 sha256_update(shactx, *cursor, l1);
119 pull(cursor, len, NULL, l1);
120 }
121 break;

Callers 1

Calls 4

pullFunction · 0.85
sha256_updateFunction · 0.85
pull_varintFunction · 0.85
sha256_varintFunction · 0.85

Tested by

no test coverage detected