@protokol/guardian-crypto
Version:
Transaction Builders For Guardian Transaction Types
38 lines • 1.37 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.deserializePermissions = exports.serializePermissions = exports.calculatePermissionsLength = void 0;
const calculatePermissionsLength = (permissions) => {
let permissionsLength = 1;
if (permissions) {
permissionsLength += permissions.length * 8;
}
return permissionsLength;
};
exports.calculatePermissionsLength = calculatePermissionsLength;
const serializePermissions = (buffer, permissions) => {
if (permissions) {
buffer.writeByte(permissions.length);
for (const permission of permissions) {
buffer.writeUint32(permission.transactionType);
buffer.writeUint32(permission.transactionTypeGroup);
}
}
else {
buffer.writeByte(0);
}
};
exports.serializePermissions = serializePermissions;
const deserializePermissions = (buf) => {
const numOfPermissions = buf.readUint8();
if (!numOfPermissions)
return;
const permissions = [];
for (let i = 0; i < numOfPermissions; i++) {
const transactionType = buf.readUInt32();
const transactionTypeGroup = buf.readUInt32();
permissions.push({ transactionType, transactionTypeGroup });
}
return permissions;
};
exports.deserializePermissions = deserializePermissions;
//# sourceMappingURL=serde.js.map