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

Function bitcoin_block_pull_dynafed_params

bitcoin/block.c:63–122  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

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