UNPKG

@rarible/types

Version:

`@rarible/types` is a TypeScript library that provides type definitions and interfaces for the Rarible ecosystem. This package is designed to facilitate seamless integration with Rarible's APIs and services, ensuring type safety and improved developer exp

36 lines (35 loc) 1.48 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.InvalidUnionContractAddressError = exports.isUnionContractAddress = exports.toUnionContractAddressSafe = exports.toUnionContractAddress = void 0; const utils_1 = require("@rarible/utils"); const utils_js_1 = require("../enum/utils.js"); const validators_js_1 = require("./validators.js"); function toUnionContractAddress(value) { const safe = toUnionContractAddressSafe(value); if (!safe) throw new InvalidUnionContractAddressError(value); return safe; } exports.toUnionContractAddress = toUnionContractAddress; function toUnionContractAddressSafe(value) { if (isUnionContractAddress(value)) return value; return undefined; } exports.toUnionContractAddressSafe = toUnionContractAddressSafe; function isUnionContractAddress(value) { const parsed = (0, utils_js_1.parseBlockchainSafe)(value); if (!parsed) return false; const [blockchain, address] = parsed; const layer1 = (0, utils_js_1.toLayerOneBlockchain)(blockchain); const validator = validators_js_1.contractAddressValidators[layer1]; return validator.validate(address); } exports.isUnionContractAddress = isUnionContractAddress; class InvalidUnionContractAddressError extends utils_1.CustomError { constructor(address) { super(`Not a valid union contract address: ${address}`); } } exports.InvalidUnionContractAddressError = InvalidUnionContractAddressError;