PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/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Выполнить команду
Для локальной разработки. Не используйте в интернете!