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

Function segwit_addr_encode

common/bech32.c:179–191  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

177}
178
179int segwit_addr_encode(char *output, const char *hrp, int witver, const uint8_t *witprog, size_t witprog_len) {
180 uint8_t data[65];
181 size_t datalen = 0;
182 bech32_encoding enc = BECH32_ENCODING_BECH32;
183 if (witver > 16) return 0;
184 if (witver == 0 && witprog_len != 20 && witprog_len != 32) return 0;
185 if (witprog_len < 2 || witprog_len > 40) return 0;
186 if (witver > 0) enc = BECH32_ENCODING_BECH32M;
187 data[0] = witver;
188 bech32_convert_bits(data + 1, &datalen, 5, witprog, witprog_len, 8, 1);
189 ++datalen;
190 return bech32_encode(output, hrp, data, datalen, 90, enc);
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];

Callers 7

encode_pubkey_to_addrFunction · 0.85
runFunction · 0.85
mainFunction · 0.85
test_encFunction · 0.85

Calls 2

bech32_convert_bitsFunction · 0.85
bech32_encodeFunction · 0.70

Tested by 1

test_encFunction · 0.68