UNPKG

@dcspark/cip34-js

Version:

A Javascript library reference implementation for CIP34

87 lines (86 loc) 3.15 kB
"use strict"; var __create = Object.create; var __defProp = Object.defineProperty; var __getOwnPropDesc = Object.getOwnPropertyDescriptor; var __getOwnPropNames = Object.getOwnPropertyNames; var __getProtoOf = Object.getPrototypeOf; var __hasOwnProp = Object.prototype.hasOwnProperty; var __export = (target, all) => { for (var name in all) __defProp(target, name, { get: all[name], enumerable: true }); }; var __copyProps = (to, from, except, desc) => { if (from && typeof from === "object" || typeof from === "function") { for (let key of __getOwnPropNames(from)) if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable }); } return to; }; var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps( isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target, mod )); var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod); var esm_exports = {}; __export(esm_exports, { Errors: () => Errors, fromChainId: () => fromChainId, registry: () => import_registry.default, toChainId: () => toChainId, validateNetworkId: () => validateNetworkId, validateNetworkMagic: () => validateNetworkMagic }); module.exports = __toCommonJS(esm_exports); var import_registry = __toESM(require("./registry.js")); function toChainId(data) { if (!validateNetworkId(data.networkId)) throw new Error(Errors.NetworkIdRange(data.networkId)); if (!validateNetworkMagic(data.networkMagic)) throw new Error(Errors.NetworkMagicRange(data.networkMagic)); return `cip34:${data.networkId}-${data.networkMagic}`; } function fromChainId(chainId) { const regex = /^cip34:([0-9]{1,2})-([0-9]{1,10})$/g; const match = regex.exec(chainId); if (match == null || match.length < 2) { throw new Error(Errors.NoMatch(chainId)); } const networkId = Number.parseInt(match[1], 10); const networkMagic = Number.parseInt(match[2], 10); if (!validateNetworkId(networkId)) throw new Error(Errors.NetworkIdRange(networkId)); if (!validateNetworkMagic(networkMagic)) throw new Error(Errors.NetworkMagicRange(networkMagic)); return { networkMagic, networkId }; } const Errors = { NetworkIdRange: (networkId) => `Network ID out of range [0, 16). Got ${networkId}`, NetworkMagicRange: (networkMagic) => `Network magic out of range [0, 4_294_967_295). Got ${networkMagic}`, NoMatch: (chainId) => `Provided chain ID did not match required format. Got ${chainId}` }; function validateNetworkId(networkId) { if (networkId >= 16 || networkId < 0) { return false; } return true; } function validateNetworkMagic(networkMagic) { if (networkMagic >= 4294967295 || networkMagic < 0) { return false; } return true; } // Annotate the CommonJS export names for ESM import in node: 0 && (module.exports = { Errors, fromChainId, registry, toChainId, validateNetworkId, validateNetworkMagic }); //# sourceMappingURL=index.js.map