UNPKG

@radixdlt/atom

Version:

Container for CRUD instructions known as 'Particles' that are sent to the Radix decentralized ledger

36 lines 1.96 kB
"use strict"; 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