@radixdlt/application
Version:
A JavaScript client library for interacting with the Radix Distributed Ledger.
86 lines • 4.63 kB
JavaScript
;
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