2020-12-25 05:33:37 +01:00
|
|
|
// Copyright (c) 2017 Pieter Wuille
|
|
|
|
// Distributed under the MIT software license, see the accompanying
|
|
|
|
// file COPYING or http://www.opensource.org/licenses/mit-license.php.
|
|
|
|
|
|
|
|
// Bech32 is a string encoding format used in newer address types.
|
|
|
|
// The output consists of a human-readable part (alphanumeric), a
|
|
|
|
// separator character (1), and a base32 data section, the last
|
|
|
|
// 6 characters of which are a checksum.
|
|
|
|
//
|
|
|
|
// For more information, see BIP 173.
|
|
|
|
|
|
|
|
#ifndef BITCOIN_BECH32_H
|
|
|
|
#define BITCOIN_BECH32_H
|
|
|
|
|
|
|
|
#include <stdint.h>
|
|
|
|
#include <string>
|
|
|
|
#include <vector>
|
|
|
|
|
|
|
|
namespace bech32
|
|
|
|
{
|
|
|
|
|
2019-09-05 13:30:59 +02:00
|
|
|
/** Encode a Bech32 string. If hrp contains uppercase characters, this will cause an assertion error. */
|
2020-12-25 05:33:37 +01:00
|
|
|
std::string Encode(const std::string& hrp, const std::vector<uint8_t>& values);
|
|
|
|
|
|
|
|
/** Decode a Bech32 string. Returns (hrp, data). Empty hrp means failure. */
|
|
|
|
std::pair<std::string, std::vector<uint8_t>> Decode(const std::string& str);
|
|
|
|
|
|
|
|
} // namespace bech32
|
|
|
|
|
|
|
|
#endif // BITCOIN_BECH32_H
|