@protokol/guardian-crypto
Version:
Transaction Builders For Guardian Transaction Types
38 lines • 1.51 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.permissionsSchema = exports.groupNameSchema = exports.vendorFieldSchema = exports.amountSchema = void 0;
const crypto_1 = require("@arkecosystem/crypto");
const defaults_1 = require("../../defaults");
exports.amountSchema = { bignumber: { minimum: 0, maximum: 0 } };
exports.vendorFieldSchema = { anyOf: [{ type: "null" }, { type: "string", format: "vendorField" }] };
exports.groupNameSchema = {
type: "string",
minLength: defaults_1.defaults.guardianGroupName.minLength,
maxLength: defaults_1.defaults.guardianGroupName.maxLength,
};
exports.permissionsSchema = {
type: "array",
uniqueItems: true,
items: {
type: "object",
required: ["transactionType", "transactionTypeGroup"],
properties: {
transactionType: { type: "integer", minimum: 0 },
transactionTypeGroup: { type: "integer", minimum: 0 },
},
},
};
crypto_1.Validation.validator.removeKeyword("uniqueAllowDeny");
crypto_1.Validation.validator.addKeyword("uniqueAllowDeny", {
compile: () => ({ allow, deny }) => {
if (!(allow && deny))
return true;
const isDuplicate = allow.some((a) => deny.some((d) => a.transactionType === d.transactionType && a.transactionTypeGroup === d.transactionTypeGroup));
return !isDuplicate;
},
errors: true,
metaSchema: {
type: "boolean",
},
});
//# sourceMappingURL=guardian-schemas.js.map