PHP WebShell
Текущая директория: /usr/lib/node_modules/bitgo/node_modules/@stacks/transactions/dist/clarity
Просмотр файла: deserialize.js
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
const common_1 = require("@stacks/common");
const _1 = require(".");
const bufferReader_1 = require("../bufferReader");
const types_1 = require("../types");
const errors_1 = require("../errors");
const stringCV_1 = require("./types/stringCV");
function deserializeCV(serializedClarityValue) {
let bufferReader;
if (typeof serializedClarityValue === 'string') {
const hasHexPrefix = serializedClarityValue.slice(0, 2).toLowerCase() === '0x';
bufferReader = new bufferReader_1.BufferReader(common_1.Buffer.from(hasHexPrefix ? serializedClarityValue.slice(2) : serializedClarityValue, 'hex'));
}
else if (common_1.Buffer.isBuffer(serializedClarityValue)) {
bufferReader = new bufferReader_1.BufferReader(serializedClarityValue);
}
else {
bufferReader = serializedClarityValue;
}
const type = bufferReader.readUInt8Enum(_1.ClarityType, n => {
throw new errors_1.DeserializationError(`Cannot recognize Clarity Type: ${n}`);
});
switch (type) {
case _1.ClarityType.Int:
return _1.intCV(bufferReader.readBuffer(16));
case _1.ClarityType.UInt:
return _1.uintCV(bufferReader.readBuffer(16));
case _1.ClarityType.Buffer:
const bufferLength = bufferReader.readUInt32BE();
return _1.bufferCV(bufferReader.readBuffer(bufferLength));
case _1.ClarityType.BoolTrue:
return _1.trueCV();
case _1.ClarityType.BoolFalse:
return _1.falseCV();
case _1.ClarityType.PrincipalStandard:
const sAddress = types_1.deserializeAddress(bufferReader);
return _1.standardPrincipalCVFromAddress(sAddress);
case _1.ClarityType.PrincipalContract:
const cAddress = types_1.deserializeAddress(bufferReader);
const contractName = types_1.deserializeLPString(bufferReader);
return _1.contractPrincipalCVFromAddress(cAddress, contractName);
case _1.ClarityType.ResponseOk:
return _1.responseOkCV(deserializeCV(bufferReader));
case _1.ClarityType.ResponseErr:
return _1.responseErrorCV(deserializeCV(bufferReader));
case _1.ClarityType.OptionalNone:
return _1.noneCV();
case _1.ClarityType.OptionalSome:
return _1.someCV(deserializeCV(bufferReader));
case _1.ClarityType.List:
const listLength = bufferReader.readUInt32BE();
const listContents = [];
for (let i = 0; i < listLength; i++) {
listContents.push(deserializeCV(bufferReader));
}
return _1.listCV(listContents);
case _1.ClarityType.Tuple:
const tupleLength = bufferReader.readUInt32BE();
const tupleContents = {};
for (let i = 0; i < tupleLength; i++) {
const clarityName = types_1.deserializeLPString(bufferReader).content;
if (clarityName === undefined) {
throw new errors_1.DeserializationError('"content" is undefined');
}
tupleContents[clarityName] = deserializeCV(bufferReader);
}
return _1.tupleCV(tupleContents);
case _1.ClarityType.StringASCII:
const asciiStrLen = bufferReader.readUInt32BE();
const asciiStr = bufferReader.readBuffer(asciiStrLen).toString('ascii');
return stringCV_1.stringAsciiCV(asciiStr);
case _1.ClarityType.StringUTF8:
const utf8StrLen = bufferReader.readUInt32BE();
const utf8Str = bufferReader.readBuffer(utf8StrLen).toString('utf8');
return stringCV_1.stringUtf8CV(utf8Str);
default:
throw new errors_1.DeserializationError('Unable to deserialize Clarity Value from buffer. Could not find valid Clarity Type.');
}
}
exports.default = deserializeCV;
//# sourceMappingURL=deserialize.js.mapВыполнить команду
Для локальной разработки. Не используйте в интернете!