PHP WebShell

Текущая директория: /opt/BitGoJS/node_modules/@stacks/transactions/dist/clarity

Просмотр файла: clarityValue.js

"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
exports.getCVTypeString = exports.cvToJSON = exports.cvToValue = exports.cvToString = exports.ClarityType = void 0;
const common_1 = require("@stacks/common");
const principalCV_1 = require("./types/principalCV");
var ClarityType;
(function (ClarityType) {
    ClarityType[ClarityType["Int"] = 0] = "Int";
    ClarityType[ClarityType["UInt"] = 1] = "UInt";
    ClarityType[ClarityType["Buffer"] = 2] = "Buffer";
    ClarityType[ClarityType["BoolTrue"] = 3] = "BoolTrue";
    ClarityType[ClarityType["BoolFalse"] = 4] = "BoolFalse";
    ClarityType[ClarityType["PrincipalStandard"] = 5] = "PrincipalStandard";
    ClarityType[ClarityType["PrincipalContract"] = 6] = "PrincipalContract";
    ClarityType[ClarityType["ResponseOk"] = 7] = "ResponseOk";
    ClarityType[ClarityType["ResponseErr"] = 8] = "ResponseErr";
    ClarityType[ClarityType["OptionalNone"] = 9] = "OptionalNone";
    ClarityType[ClarityType["OptionalSome"] = 10] = "OptionalSome";
    ClarityType[ClarityType["List"] = 11] = "List";
    ClarityType[ClarityType["Tuple"] = 12] = "Tuple";
    ClarityType[ClarityType["StringASCII"] = 13] = "StringASCII";
    ClarityType[ClarityType["StringUTF8"] = 14] = "StringUTF8";
})(ClarityType = exports.ClarityType || (exports.ClarityType = {}));
function cvToString(val, encoding = 'hex') {
    switch (val.type) {
        case ClarityType.BoolTrue:
            return 'true';
        case ClarityType.BoolFalse:
            return 'false';
        case ClarityType.Int:
            return val.value.toString();
        case ClarityType.UInt:
            return `u${val.value.toString()}`;
        case ClarityType.Buffer:
            if (encoding === 'tryAscii') {
                const str = val.buffer.toString('ascii');
                if (/[ -~]/.test(str)) {
                    return JSON.stringify(str);
                }
            }
            return `0x${val.buffer.toString('hex')}`;
        case ClarityType.OptionalNone:
            return 'none';
        case ClarityType.OptionalSome:
            return `(some ${cvToString(val.value, encoding)})`;
        case ClarityType.ResponseErr:
            return `(err ${cvToString(val.value, encoding)})`;
        case ClarityType.ResponseOk:
            return `(ok ${cvToString(val.value, encoding)})`;
        case ClarityType.PrincipalStandard:
        case ClarityType.PrincipalContract:
            return principalCV_1.principalToString(val);
        case ClarityType.List:
            return `(list ${val.list.map(v => cvToString(v, encoding)).join(' ')})`;
        case ClarityType.Tuple:
            return `(tuple ${Object.keys(val.data)
                .map(key => `(${key} ${cvToString(val.data[key], encoding)})`)
                .join(' ')})`;
        case ClarityType.StringASCII:
            return `"${val.data}"`;
        case ClarityType.StringUTF8:
            return `u"${val.data}"`;
    }
}
exports.cvToString = cvToString;
function cvToValue(val, strictJsonCompat = false) {
    switch (val.type) {
        case ClarityType.BoolTrue:
            return true;
        case ClarityType.BoolFalse:
            return false;
        case ClarityType.Int:
        case ClarityType.UInt:
            if (strictJsonCompat) {
                return val.value.toString();
            }
            else {
                return val.value;
            }
        case ClarityType.Buffer:
            return `0x${val.buffer.toString('hex')}`;
        case ClarityType.OptionalNone:
            return null;
        case ClarityType.OptionalSome:
            return cvToJSON(val.value);
        case ClarityType.ResponseErr:
            return cvToJSON(val.value);
        case ClarityType.ResponseOk:
            return cvToJSON(val.value);
        case ClarityType.PrincipalStandard:
        case ClarityType.PrincipalContract:
            return principalCV_1.principalToString(val);
        case ClarityType.List:
            return val.list.map(v => cvToJSON(v));
        case ClarityType.Tuple:
            const result = {};
            Object.keys(val.data).forEach(key => {
                result[key] = cvToJSON(val.data[key]);
            });
            return result;
        case ClarityType.StringASCII:
            return val.data;
        case ClarityType.StringUTF8:
            return val.data;
    }
}
exports.cvToValue = cvToValue;
function cvToJSON(val) {
    switch (val.type) {
        case ClarityType.ResponseErr:
            return { type: getCVTypeString(val), value: cvToValue(val, true), success: false };
        case ClarityType.ResponseOk:
            return { type: getCVTypeString(val), value: cvToValue(val, true), success: true };
        default:
            return { type: getCVTypeString(val), value: cvToValue(val, true) };
    }
}
exports.cvToJSON = cvToJSON;
function getCVTypeString(val) {
    switch (val.type) {
        case ClarityType.BoolTrue:
        case ClarityType.BoolFalse:
            return 'bool';
        case ClarityType.Int:
            return 'int';
        case ClarityType.UInt:
            return 'uint';
        case ClarityType.Buffer:
            return `(buff ${val.buffer.length})`;
        case ClarityType.OptionalNone:
            return '(optional none)';
        case ClarityType.OptionalSome:
            return `(optional ${getCVTypeString(val.value)})`;
        case ClarityType.ResponseErr:
            return `(response UnknownType ${getCVTypeString(val.value)})`;
        case ClarityType.ResponseOk:
            return `(response ${getCVTypeString(val.value)} UnknownType)`;
        case ClarityType.PrincipalStandard:
        case ClarityType.PrincipalContract:
            return 'principal';
        case ClarityType.List:
            return `(list ${val.list.length} ${val.list.length ? getCVTypeString(val.list[0]) : 'UnknownType'})`;
        case ClarityType.Tuple:
            return `(tuple ${Object.keys(val.data)
                .map(key => `(${key} ${getCVTypeString(val.data[key])})`)
                .join(' ')})`;
        case ClarityType.StringASCII:
            return `(string-ascii ${common_1.Buffer.from(val.data, 'ascii').length})`;
        case ClarityType.StringUTF8:
            return `(string-utf8 ${common_1.Buffer.from(val.data, 'utf8').length})`;
    }
}
exports.getCVTypeString = getCVTypeString;
//# sourceMappingURL=clarityValue.js.map

Выполнить команду


Для локальной разработки. Не используйте в интернете!