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

29 lines (28 loc) 1.01 kB
import { CustomError } from "@rarible/utils"; import { toLayerOneBlockchain, parseBlockchainSafe } from "../enum/utils.js"; import { contractAddressValidators } from "./validators.js"; export function toUnionContractAddress(value) { const safe = toUnionContractAddressSafe(value); if (!safe) throw new InvalidUnionContractAddressError(value); return safe; } export function toUnionContractAddressSafe(value) { if (isUnionContractAddress(value)) return value; return undefined; } export function isUnionContractAddress(value) { const parsed = parseBlockchainSafe(value); if (!parsed) return false; const [blockchain, address] = parsed; const layer1 = toLayerOneBlockchain(blockchain); const validator = contractAddressValidators[layer1]; return validator.validate(address); } export class InvalidUnionContractAddressError extends CustomError { constructor(address) { super(`Not a valid union contract address: ${address}`); } }