UNPKG

@radixdlt/application

Version:

A JavaScript client library for interacting with the Radix Distributed Ledger.

86 lines 4.63 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.addressRegexDecoder = exports.addressFromUnsafe = exports.validatorAddressObjectDecoder = exports.addressObjectDecoder = exports.validatorAddressDecoder = exports.addressDecoder = exports.networkDecoder = exports.transactionIdentifierDecoder = exports.URLDecoder = exports.RRIDecoder = exports.dateDecoder = exports.amountDecoder = void 0; const data_formats_1 = require("../../../data-formats"); const neverthrow_1 = require("neverthrow"); const account_1 = require("@radixdlt/account"); const primitives_1 = require("../../../primitives"); const util_1 = require("../../../util"); const dto_1 = require("../dto"); const amountDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isString)(value) ? primitives_1.Amount.fromUnsafe(value) : undefined); exports.amountDecoder = amountDecoder; const dateDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isString)(value) ? (0, neverthrow_1.ok)(new Date(value)) : undefined); exports.dateDecoder = dateDecoder; const RRIDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isString)(value) ? account_1.ResourceIdentifier.fromUnsafe(value) : undefined); exports.RRIDecoder = RRIDecoder; const URLDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => { if (key !== undefined && keys.includes(key) && (0, util_1.isString)(value)) { try { return (0, neverthrow_1.ok)(new URL(value)); } catch (_a) { return undefined; } } return undefined; }); exports.URLDecoder = URLDecoder; const transactionIdentifierDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isString)(value) ? dto_1.TransactionIdentifier.create(value) : undefined); exports.transactionIdentifierDecoder = transactionIdentifierDecoder; const networkDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && typeof value === 'number' && Object.keys(primitives_1.NetworkId).includes(value.toString()) ? // @ts-ignore (0, neverthrow_1.ok)(primitives_1.NetworkId[value.toString()]) : undefined); exports.networkDecoder = networkDecoder; const addressDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isString)(value) ? account_1.AccountAddress.fromUnsafe(value) : undefined); exports.addressDecoder = addressDecoder; const validatorAddressDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isString)(value) ? account_1.ValidatorAddress.fromUnsafe(value) : undefined); exports.validatorAddressDecoder = validatorAddressDecoder; const addressObjectDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isObject)(value) && value['address'] ? account_1.AccountAddress.fromUnsafe(value['address']) : undefined); exports.addressObjectDecoder = addressObjectDecoder; const validatorAddressObjectDecoder = (...keys) => (0, data_formats_1.decoder)((value, key) => key !== undefined && keys.includes(key) && (0, util_1.isObject)(value) && value['address'] ? account_1.ValidatorAddress.fromUnsafe(value['address']) : undefined); exports.validatorAddressObjectDecoder = validatorAddressObjectDecoder; const validatorAddressPattern = /^(r|t|d)v[0-9]?1[023456789ACDEFGHJKLMNPQRSTUVWXYZacdefghjklmnpqrstuvwxyz]{6,69}$/; const accountAddressPattern = /^(r|t|d)dx[0-9]?1[023456789ACDEFGHJKLMNPQRSTUVWXYZacdefghjklmnpqrstuvwxyz]{6,69}$/; const addressFromUnsafe = (address) => validatorAddressPattern.test(address) ? account_1.ValidatorAddress.fromUnsafe(address) : accountAddressPattern.test(address) ? account_1.AccountAddress.fromUnsafe(address) : undefined; exports.addressFromUnsafe = addressFromUnsafe; const addressRegexDecoder = (...keys) => // @ts-ignore (0, data_formats_1.decoder)((value, key) => { const isValidString = key !== undefined && keys.includes(key) && (0, util_1.isString)(value); if (!isValidString) { return undefined; } return (0, exports.addressFromUnsafe)(value); }); exports.addressRegexDecoder = addressRegexDecoder; //# sourceMappingURL=decoders.js.map