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

Function segwit_addr_decode

common/bech32.c:193–210  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

191}
192
193int segwit_addr_decode(int* witver, uint8_t* witdata, size_t* witdata_len, const char* hrp, const char* addr) {
194 uint8_t data[84];
195 char hrp_actual[84];
196 size_t data_len;
197 bech32_encoding enc = bech32_decode(hrp_actual, data, &data_len, addr, 90);
198 if (enc == BECH32_ENCODING_NONE) return 0;
199 if (data_len == 0 || data_len > 65) return 0;
200 if (strncmp(hrp, hrp_actual, 84) != 0) return 0;
201 if (data[0] > 16) return 0;
202 if (data[0] == 0 && enc != BECH32_ENCODING_BECH32) return 0;
203 if (data[0] > 0 && enc != BECH32_ENCODING_BECH32M) return 0;
204 *witdata_len = 0;
205 if (!bech32_convert_bits(witdata, witdata_len, 8, data + 1, data_len - 1, 5, 0)) return 0;
206 if (*witdata_len < 2 || *witdata_len > 40) return 0;
207 if (data[0] == 0 && *witdata_len != 20 && *witdata_len != 32) return 0;
208 *witver = data[0];
209 return 1;
210}

Callers 5

segwit_addr_net_decodeFunction · 0.70
segwit_addr_net_decodeFunction · 0.70
segwit_addr_net_decodeFunction · 0.70
guess_to_remoteFunction · 0.50
runFunction · 0.50

Calls 2

bech32_convert_bitsFunction · 0.85
bech32_decodeFunction · 0.70

Tested by

no test coverage detected