@radixdlt/atom
Version:
Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger
36 lines • 1.96 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.tokenParticleProps = exports.withTokenParticleEquals = exports.tokenSerializationKeyValues = void 0;
const primitives_1 = require("@radixdlt/primitives");
const util_1 = require("@radixdlt/util");
const tokenPermissions_1 = require("../../tokenPermissions");
const particle_1 = require("./particle");
const withNonce = (input) => {
var _a;
return (Object.assign(Object.assign({}, input), { nonce: (_a = input.nonce) !== null && _a !== void 0 ? _a : primitives_1.randomNonce() }));
};
const withAmount = (input) => (Object.assign(Object.assign({}, input), { amount: input.amount }));
const withPermissions = (input) => (Object.assign(Object.assign({}, input), { permissions: input.permissions
? tokenPermissions_1.makeTokenPermissions(input.permissions)
: tokenPermissions_1.tokenPermissionsAll }));
const withGranularity = (input) => {
var _a;
return (Object.assign(Object.assign({}, input), { granularity: (_a = input.granularity) !== null && _a !== void 0 ? _a : primitives_1.granularityDefault }));
};
const tokenSerializationKeyValues = (input) => ({
tokenDefinitionReference: input.resourceIdentifier,
granularity: input.granularity,
permissions: input.permissions,
nonce: input.nonce,
amount: input.amount,
});
exports.tokenSerializationKeyValues = tokenSerializationKeyValues;
exports.withTokenParticleEquals = particle_1.withParticleEquals.bind(null, (p1, p2) => p1.resourceIdentifier.equals(p2.resourceIdentifier) &&
p1.amount.equals(p2.amount) &&
p1.granularity.equals(p2.granularity) &&
p1.permissions.equals(p2.permissions));
const tokenParticleProps = (input) =>
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
util_1.pipe(withNonce, withAmount, withPermissions, withGranularity)(input);
exports.tokenParticleProps = tokenParticleProps;
//# sourceMappingURL=tokenParticle.js.map