@mysten/bcs
Version:
BCS - Canonical Binary Serialization implementation for JavaScript
55 lines (54 loc) • 1.34 kB
JavaScript
import { fromBase58, fromBase64, fromHex, toBase58, toBase64, toHex } from "@mysten/utils";
function encodeStr(data, encoding) {
switch (encoding) {
case "base58":
return toBase58(data);
case "base64":
return toBase64(data);
case "hex":
return toHex(data);
default:
throw new Error("Unsupported encoding, supported values are: base64, hex");
}
}
function decodeStr(data, encoding) {
switch (encoding) {
case "base58":
return fromBase58(data);
case "base64":
return fromBase64(data);
case "hex":
return fromHex(data);
default:
throw new Error("Unsupported encoding, supported values are: base64, hex");
}
}
function splitGenericParameters(str, genericSeparators = ["<", ">"]) {
const [left, right] = genericSeparators;
const tok = [];
let word = "";
let nestedAngleBrackets = 0;
for (let i = 0; i < str.length; i++) {
const char = str[i];
if (char === left) {
nestedAngleBrackets++;
}
if (char === right) {
nestedAngleBrackets--;
}
if (nestedAngleBrackets === 0 && char === ",") {
tok.push(word.trim());
word = "";
continue;
}
word += char;
}
tok.push(word.trim());
return tok;
}
export {
decodeStr,
encodeStr,
splitGenericParameters
};
//# sourceMappingURL=utils.js.map