* Encode a cashaddr string. */
| 196 | * Encode a cashaddr string. |
| 197 | */ |
| 198 | std::string Encode(const std::string &prefix, const data &payload) { |
| 199 | data checksum = CreateChecksum(prefix, payload); |
| 200 | data combined = Cat(payload, checksum); |
| 201 | std::string ret = prefix + ':'; |
| 202 | |
| 203 | ret.reserve(ret.size() + combined.size()); |
| 204 | for (uint8_t c : combined) { |
| 205 | ret += CHARSET[c]; |
| 206 | } |
| 207 | |
| 208 | return ret; |
| 209 | } |
| 210 | |
| 211 | /** |
| 212 | * Decode a cashaddr string. |