Encode a Bech32 string. */
| 145 | |
| 146 | /** Encode a Bech32 string. */ |
| 147 | std::string Encode(const std::string& hrp, const data& values) { |
| 148 | data checksum = CreateChecksum(hrp, values); |
| 149 | data combined = Cat(values, checksum); |
| 150 | std::string ret = hrp + '1'; |
| 151 | ret.reserve(ret.size() + combined.size()); |
| 152 | for (auto c : combined) { |
| 153 | ret += CHARSET[c]; |
| 154 | } |
| 155 | return ret; |
| 156 | } |
| 157 | |
| 158 | /** Decode a Bech32 string. */ |
| 159 | std::pair<std::string, data> Decode(const std::string& str) { |