@thenamespace/ens-components 0.28.0 → 0.29.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import * as viem from 'viem';
2
2
  import { parseAbi, UserRejectedRequestError, isAddress as isAddress$1, namehash, encodeFunctionData, toHex, toBytes as toBytes$1, pad, ContractFunctionExecutionError, keccak256, formatEther, zeroAddress, zeroHash } from 'viem';
3
- import * as chains$1 from 'viem/chains';
3
+ import * as chains$2 from 'viem/chains';
4
4
  import { zoraSepolia, zora, celoAlfajores, celo, polygonMumbai, polygon, arbitrumSepolia, arbitrum, optimismSepolia, optimism as optimism$1, baseSepolia as baseSepolia$1, base as base$5, sepolia as sepolia$1, mainnet as mainnet$1 } from 'viem/chains';
5
5
  import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
6
  import * as React52 from 'react';
@@ -17148,7 +17148,7 @@ function checksum(len, fn) {
17148
17148
  };
17149
17149
  }
17150
17150
  // prettier-ignore
17151
- const utils$4 = {
17151
+ const utils$5 = {
17152
17152
  alphabet: alphabet$2, chain, checksum, convertRadix, convertRadix2, radix, radix2, join, padding,
17153
17153
  };
17154
17154
  /**
@@ -17389,7 +17389,7 @@ const createBase58VersionedDecoder = (p2pkhVersions, p2shVersions) => (source) =
17389
17389
  throw new Error("Unrecognised address format");
17390
17390
  };
17391
17391
 
17392
- const eosChecksum = utils$4.checksum(4, ripemd160$1);
17392
+ const eosChecksum = utils$5.checksum(4, ripemd160$1);
17393
17393
  const createEosEncoder = (prefix) => (source) => {
17394
17394
  const point = secp256k1$1.ProjectivePoint.fromHex(source);
17395
17395
  const checksummed = eosChecksum.encode(point.toRawBytes(true));
@@ -18177,14 +18177,14 @@ const sha512_256 = sha512_256$1;
18177
18177
 
18178
18178
  const base32Encode = base32$4.encode;
18179
18179
  const base32Decode = base32$4.decode;
18180
- const base32Unpadded = utils$4.chain(utils$4.radix2(5), utils$4.alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"), utils$4.join(""));
18180
+ const base32Unpadded = utils$5.chain(utils$5.radix2(5), utils$5.alphabet("ABCDEFGHIJKLMNOPQRSTUVWXYZ234567"), utils$5.join(""));
18181
18181
  const base32UnpaddedEncode = base32Unpadded.encode;
18182
18182
  const base32UnpaddedDecode = base32Unpadded.decode;
18183
18183
  const base32CrockfordNormalise = (source) => source.toUpperCase().replace(/O/g, "0").replace(/[IL]/g, "1");
18184
18184
 
18185
18185
  const name$1P = "algo";
18186
18186
  const coinType$1P = 283;
18187
- const algoChecksum = utils$4.checksum(4, (data) => sha512_256(data).slice(-4));
18187
+ const algoChecksum = utils$5.checksum(4, (data) => sha512_256(data).slice(-4));
18188
18188
  const encodeAlgoAddress = (source) => {
18189
18189
  const checksum = algoChecksum.encode(source);
18190
18190
  return base32UnpaddedEncode(checksum);
@@ -18388,8 +18388,8 @@ const prefix$7 = "bitcoincash";
18388
18388
  const prefixBytes = new Uint8Array([2, 9, 20, 3, 15, 9, 14, 3, 1, 19, 8, 0]); // bitcoincash + 0x00
18389
18389
  const hashSize = [160, 192, 224, 256, 320, 384, 448, 512];
18390
18390
  const hashSizeLookup = Object.fromEntries(hashSize.map((size, index) => [size, index]));
18391
- const radix5 = utils$4.radix2(5);
18392
- const bchBase32 = utils$4.chain(utils$4.alphabet("qpzry9x8gf2tvdw0s3jn54khce6mua7l"), utils$4.join(""));
18391
+ const radix5 = utils$5.radix2(5);
18392
+ const bchBase32 = utils$5.chain(utils$5.alphabet("qpzry9x8gf2tvdw0s3jn54khce6mua7l"), utils$5.join(""));
18393
18393
  const checksumToUint5Array = (checksum) => {
18394
18394
  const result = new Uint8Array(8);
18395
18395
  for (let i = 0; i < 8; i++) {
@@ -18730,7 +18730,7 @@ const xmr$1 = {
18730
18730
 
18731
18731
  const name$1G = "bcn";
18732
18732
  const coinType$1G = 204;
18733
- const bcnChecksum = utils$4.checksum(4, keccak_256);
18733
+ const bcnChecksum = utils$5.checksum(4, keccak_256);
18734
18734
  const encodeBcnAddress = (source) => {
18735
18735
  const checksum = keccak_256(source).slice(0, 4);
18736
18736
  return encodeXmrAddress(concatBytes(source, checksum));
@@ -19492,7 +19492,7 @@ const eth$1 = {
19492
19492
  const name$1h = "etn";
19493
19493
  const coinType$1h = 415;
19494
19494
  const type$1 = 18;
19495
- const etnChecksum = utils$4.checksum(4, keccak_256);
19495
+ const etnChecksum = utils$5.checksum(4, keccak_256);
19496
19496
  const encodeEtnAddress = (source) => {
19497
19497
  const sourceWithType = concatBytes(new Uint8Array([type$1]), source);
19498
19498
  const checksummed = etnChecksum.encode(sourceWithType);
@@ -20222,7 +20222,7 @@ const radixNano = {
20222
20222
  return Uint8Array.from(result);
20223
20223
  },
20224
20224
  };
20225
- const base32Nano = utils$4.chain(radixNano, utils$4.alphabet("13456789abcdefghijkmnopqrstuwxyz"), utils$4.join(""));
20225
+ const base32Nano = utils$5.chain(radixNano, utils$5.alphabet("13456789abcdefghijkmnopqrstuwxyz"), utils$5.join(""));
20226
20226
  const encodeNanoAddress = (source) => {
20227
20227
  const encoded = base32Nano.encode(source);
20228
20228
  const checksum = blake2b$1(source, { dkLen: 5 }).reverse();
@@ -20242,7 +20242,7 @@ const nano$1 = {
20242
20242
 
20243
20243
  const name$N = "nas";
20244
20244
  const coinType$N = 2718;
20245
- const nasChecksum = utils$4.checksum(4, sha3_256);
20245
+ const nasChecksum = utils$5.checksum(4, sha3_256);
20246
20246
  const encodeNasAddress = (source) => {
20247
20247
  const checksummed = nasChecksum.encode(source);
20248
20248
  return base58UncheckedEncode(checksummed);
@@ -20329,7 +20329,7 @@ const ibanCheck = (data) => {
20329
20329
  const nimChecksum = (source) => {
20330
20330
  return ("00" + (98 - ibanCheck(source + CCODE + "00"))).slice(-2);
20331
20331
  };
20332
- const base32Nim = utils$4.chain(utils$4.radix2(5), utils$4.alphabet("0123456789ABCDEFGHJKLMNPQRSTUVXY"), utils$4.padding(5), utils$4.join(""));
20332
+ const base32Nim = utils$5.chain(utils$5.radix2(5), utils$5.alphabet("0123456789ABCDEFGHJKLMNPQRSTUVXY"), utils$5.padding(5), utils$5.join(""));
20333
20333
  const encodeNimAddress = (source) => {
20334
20334
  const base32Part = base32Nim.encode(source);
20335
20335
  const checksummed = nimChecksum(base32Part);
@@ -20737,7 +20737,7 @@ const convertRadixStx = (data, from, to, padding) => {
20737
20737
  res.unshift(carry >>> 0);
20738
20738
  return res;
20739
20739
  };
20740
- const base32Stx = utils$4.chain(radixStx, utils$4.alphabet("0123456789ABCDEFGHJKMNPQRSTVWXYZ"), utils$4.join(""));
20740
+ const base32Stx = utils$5.chain(radixStx, utils$5.alphabet("0123456789ABCDEFGHJKMNPQRSTVWXYZ"), utils$5.join(""));
20741
20741
  const stxChecksum = (data) => sha256$1(sha256$1(data)).slice(0, checkumLength);
20742
20742
  const encodeStxAddress = (source) => {
20743
20743
  if (source.length !== length$3 + checkumLength)
@@ -21010,7 +21010,7 @@ const name$b = "waves";
21010
21010
  const coinType$b = 5741564;
21011
21011
  const checksumFn = (source) => keccak_256(blake2b$1(source, { dkLen: 32 }));
21012
21012
  const checksumLength = 4;
21013
- const wavesChecksum = utils$4.checksum(checksumLength, checksumFn);
21013
+ const wavesChecksum = utils$5.checksum(checksumLength, checksumFn);
21014
21014
  const encodeWavesAddress = base58UncheckedEncode;
21015
21015
  const decodeWavesAddress = (source) => {
21016
21016
  const decoded = base58UncheckedDecode(source);
@@ -21133,7 +21133,7 @@ const xlm$1 = {
21133
21133
 
21134
21134
  const name$5 = "xrp";
21135
21135
  const coinType$5 = 144;
21136
- const base58XrpCheck = utils$4.chain(utils$4.checksum(4, (data) => sha256$1(sha256$1(data))), base58xrp);
21136
+ const base58XrpCheck = utils$5.chain(utils$5.checksum(4, (data) => sha256$1(sha256$1(data))), base58xrp);
21137
21137
  const encodeXrpAddress = base58XrpCheck.encode;
21138
21138
  const decodeXrpAddress = base58XrpCheck.decode;
21139
21139
  const xrp$1 = {
@@ -21640,14 +21640,14 @@ const base58btc$1 = createMultibaseCoder({
21640
21640
  encode: base58$2.encode,
21641
21641
  decode: base58$2.decode,
21642
21642
  });
21643
- const customBase32 = utils$4.chain(utils$4.radix2(5), utils$4.alphabet("abcdefghijklmnopqrstuvwxyz234567"), utils$4.join(""));
21643
+ const customBase32 = utils$5.chain(utils$5.radix2(5), utils$5.alphabet("abcdefghijklmnopqrstuvwxyz234567"), utils$5.join(""));
21644
21644
  const base32$3 = createMultibaseCoder({
21645
21645
  name: "base32",
21646
21646
  prefix: "b",
21647
21647
  encode: (bytes) => customBase32.encode(bytes),
21648
21648
  decode: (multibase) => customBase32.decode(multibase),
21649
21649
  });
21650
- const base36Chain = utils$4.chain(utils$4.radix(36), utils$4.alphabet("0123456789abcdefghijklmnopqrstuvwxyz"), utils$4.join(""));
21650
+ const base36Chain = utils$5.chain(utils$5.radix(36), utils$5.alphabet("0123456789abcdefghijklmnopqrstuvwxyz"), utils$5.join(""));
21651
21651
  const base36$2 = createMultibaseCoder({
21652
21652
  name: "base36",
21653
21653
  prefix: "k",
@@ -24231,7 +24231,7 @@ const SelectRecordsForm = ({
24231
24231
 
24232
24232
  var img$1 = "data:image/png;base64,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";
24233
24233
 
24234
- var dist$1 = {};
24234
+ var dist$2 = {};
24235
24235
 
24236
24236
  var addresses = {};
24237
24237
 
@@ -24320,11 +24320,11 @@ function requireAddresses () {
24320
24320
  return addresses;
24321
24321
  }
24322
24322
 
24323
- var hasRequiredDist$1;
24323
+ var hasRequiredDist$2;
24324
24324
 
24325
- function requireDist$1 () {
24326
- if (hasRequiredDist$1) return dist$1;
24327
- hasRequiredDist$1 = 1;
24325
+ function requireDist$2 () {
24326
+ if (hasRequiredDist$2) return dist$2;
24327
+ hasRequiredDist$2 = 1;
24328
24328
  (function (exports) {
24329
24329
  Object.defineProperty(exports, "__esModule", { value: true });
24330
24330
  exports.getEnsContracts = exports.getL2NamespaceContracts = exports.getL1NamespaceContracts = void 0;
@@ -24332,11 +24332,11 @@ function requireDist$1 () {
24332
24332
  Object.defineProperty(exports, "getL1NamespaceContracts", { enumerable: true, get: function () { return addresses_1.getL1NamespaceContracts; } });
24333
24333
  Object.defineProperty(exports, "getL2NamespaceContracts", { enumerable: true, get: function () { return addresses_1.getL2NamespaceContracts; } });
24334
24334
  Object.defineProperty(exports, "getEnsContracts", { enumerable: true, get: function () { return addresses_1.getEnsContracts; } });
24335
- } (dist$1));
24336
- return dist$1;
24335
+ } (dist$2));
24336
+ return dist$2;
24337
24337
  }
24338
24338
 
24339
- var distExports$1 = requireDist$1();
24339
+ var distExports$2 = requireDist$2();
24340
24340
 
24341
24341
  var ETH_REGISTRAR_CONTOLLER = [
24342
24342
  {
@@ -26058,13 +26058,13 @@ const useRegisterENS = ({ isTestnet }) => {
26058
26058
  };
26059
26059
  };
26060
26060
  const getEthController = () => {
26061
- return distExports$1.getEnsContracts(isTestnet).ethRegistrarController;
26061
+ return distExports$2.getEnsContracts(isTestnet).ethRegistrarController;
26062
26062
  };
26063
26063
  const getEnsRegistry = () => {
26064
- return distExports$1.getEnsContracts(isTestnet).ensRegistry;
26064
+ return distExports$2.getEnsContracts(isTestnet).ensRegistry;
26065
26065
  };
26066
26066
  const getPublicResolver = () => {
26067
- return distExports$1.getEnsContracts(isTestnet).publicResolver;
26067
+ return distExports$2.getEnsContracts(isTestnet).publicResolver;
26068
26068
  };
26069
26069
  const getRegReferrer = (request) => {
26070
26070
  const referrerAddress = request.referrer && isAddress$1(request.referrer) ? request.referrer : NAMESPACE_REFERRER_ADDRESS;
@@ -26201,10 +26201,10 @@ const useENSResolver = ({
26201
26201
  }
26202
26202
  };
26203
26203
  const getEnsRegistry = () => {
26204
- return distExports$1.getEnsContracts(isTestnet).ensRegistry;
26204
+ return distExports$2.getEnsContracts(isTestnet).ensRegistry;
26205
26205
  };
26206
26206
  const getEnsPublicResolver = () => {
26207
- return distExports$1.getEnsContracts(isTestnet).publicResolver;
26207
+ return distExports$2.getEnsContracts(isTestnet).publicResolver;
26208
26208
  };
26209
26209
  return {
26210
26210
  getResolverAddress,
@@ -26213,7 +26213,7 @@ const useENSResolver = ({
26213
26213
  };
26214
26214
  };
26215
26215
 
26216
- var dist = {};
26216
+ var dist$1 = {};
26217
26217
 
26218
26218
  var mintClient = {};
26219
26219
 
@@ -30157,17 +30157,17 @@ function requireEnv () {
30157
30157
  return env;
30158
30158
  }
30159
30159
 
30160
- var chains = {};
30160
+ var chains$1 = {};
30161
30161
 
30162
- var hasRequiredChains;
30162
+ var hasRequiredChains$1;
30163
30163
 
30164
- function requireChains () {
30165
- if (hasRequiredChains) return chains;
30166
- hasRequiredChains = 1;
30164
+ function requireChains$1 () {
30165
+ if (hasRequiredChains$1) return chains$1;
30166
+ hasRequiredChains$1 = 1;
30167
30167
  (function (exports) {
30168
30168
  Object.defineProperty(exports, "__esModule", { value: true });
30169
30169
  exports.getChainName = exports.getChain = exports.getChainId = exports.ListingChain = void 0;
30170
- const chains_1 = chains$1;
30170
+ const chains_1 = chains$2;
30171
30171
  /**
30172
30172
  * Supported networks for listing/minting operations.
30173
30173
  */
@@ -30208,8 +30208,8 @@ function requireChains () {
30208
30208
  throw new Error("Unsupported chain provided: " + chainId);
30209
30209
  };
30210
30210
  exports.getChainName = getChainName;
30211
- } (chains));
30212
- return chains;
30211
+ } (chains$1));
30212
+ return chains$1;
30213
30213
  }
30214
30214
 
30215
30215
  var abi = {};
@@ -31674,7 +31674,7 @@ function requireAbi () {
31674
31674
  return abi;
31675
31675
  }
31676
31676
 
31677
- var utils$3 = {};
31677
+ var utils$4 = {};
31678
31678
 
31679
31679
  var cjs = {};
31680
31680
 
@@ -31690,7 +31690,7 @@ var sha2 = {};
31690
31690
 
31691
31691
  var _md = {};
31692
31692
 
31693
- var utils$2 = {};
31693
+ var utils$3 = {};
31694
31694
 
31695
31695
  var crypto = {};
31696
31696
 
@@ -31706,11 +31706,11 @@ function requireCrypto () {
31706
31706
  return crypto;
31707
31707
  }
31708
31708
 
31709
- var hasRequiredUtils$3;
31709
+ var hasRequiredUtils$4;
31710
31710
 
31711
- function requireUtils$3 () {
31712
- if (hasRequiredUtils$3) return utils$2;
31713
- hasRequiredUtils$3 = 1;
31711
+ function requireUtils$4 () {
31712
+ if (hasRequiredUtils$4) return utils$3;
31713
+ hasRequiredUtils$4 = 1;
31714
31714
  (function (exports) {
31715
31715
  /**
31716
31716
  * Utilities for hex, bytes, CSPRNG.
@@ -32024,8 +32024,8 @@ function requireUtils$3 () {
32024
32024
  throw new Error('crypto.getRandomValues must be defined');
32025
32025
  }
32026
32026
 
32027
- } (utils$2));
32028
- return utils$2;
32027
+ } (utils$3));
32028
+ return utils$3;
32029
32029
  }
32030
32030
 
32031
32031
  var hasRequired_md;
@@ -32042,7 +32042,7 @@ function require_md () {
32042
32042
  * Internal Merkle-Damgard hash utils.
32043
32043
  * @module
32044
32044
  */
32045
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
32045
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
32046
32046
  /** Polyfill for Safari 14. https://caniuse.com/mdn-javascript_builtins_dataview_setbiguint64 */
32047
32047
  function setBigUint64(view, byteOffset, value, isLE) {
32048
32048
  if (typeof view.setBigUint64 === 'function')
@@ -32312,7 +32312,7 @@ function requireSha2 () {
32312
32312
  */
32313
32313
  const _md_ts_1 = require_md();
32314
32314
  const u64 = require_u64();
32315
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
32315
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
32316
32316
  /**
32317
32317
  * Round constants:
32318
32318
  * First 32 bits of fractional parts of the cube roots of the first 64 primes 2..311)
@@ -32705,7 +32705,7 @@ function requireHmac () {
32705
32705
  * HMAC: RFC2104 message authentication code.
32706
32706
  * @module
32707
32707
  */
32708
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
32708
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
32709
32709
  class HMAC extends utils_ts_1.Hash {
32710
32710
  constructor(hash, _key) {
32711
32711
  super();
@@ -32793,13 +32793,13 @@ function requireHmac () {
32793
32793
  return hmac;
32794
32794
  }
32795
32795
 
32796
- var utils$1 = {};
32796
+ var utils$2 = {};
32797
32797
 
32798
- var hasRequiredUtils$2;
32798
+ var hasRequiredUtils$3;
32799
32799
 
32800
- function requireUtils$2 () {
32801
- if (hasRequiredUtils$2) return utils$1;
32802
- hasRequiredUtils$2 = 1;
32800
+ function requireUtils$3 () {
32801
+ if (hasRequiredUtils$3) return utils$2;
32802
+ hasRequiredUtils$3 = 1;
32803
32803
  (function (exports) {
32804
32804
  Object.defineProperty(exports, "__esModule", { value: true });
32805
32805
  exports.notImplemented = exports.bitMask = exports.utf8ToBytes = exports.randomBytes = exports.isBytes = exports.hexToBytes = exports.concatBytes = exports.bytesToUtf8 = exports.bytesToHex = exports.anumber = exports.abytes = void 0;
@@ -32832,8 +32832,8 @@ function requireUtils$2 () {
32832
32832
  * @module
32833
32833
  */
32834
32834
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
32835
- const utils_js_1 = /*@__PURE__*/ requireUtils$3();
32836
- var utils_js_2 = /*@__PURE__*/ requireUtils$3();
32835
+ const utils_js_1 = /*@__PURE__*/ requireUtils$4();
32836
+ var utils_js_2 = /*@__PURE__*/ requireUtils$4();
32837
32837
  Object.defineProperty(exports, "abytes", { enumerable: true, get: function () { return utils_js_2.abytes; } });
32838
32838
  Object.defineProperty(exports, "anumber", { enumerable: true, get: function () { return utils_js_2.anumber; } });
32839
32839
  Object.defineProperty(exports, "bytesToHex", { enumerable: true, get: function () { return utils_js_2.bytesToHex; } });
@@ -33160,8 +33160,8 @@ function requireUtils$2 () {
33160
33160
  };
33161
33161
  }
33162
33162
 
33163
- } (utils$1));
33164
- return utils$1;
33163
+ } (utils$2));
33164
+ return utils$2;
33165
33165
  }
33166
33166
 
33167
33167
  var curve = {};
@@ -33202,7 +33202,7 @@ function requireModular () {
33202
33202
  * @module
33203
33203
  */
33204
33204
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
33205
- const utils_ts_1 = requireUtils$2();
33205
+ const utils_ts_1 = requireUtils$3();
33206
33206
  // prettier-ignore
33207
33207
  const _0n = BigInt(0), _1n = BigInt(1), _2n = /* @__PURE__ */ BigInt(2), _3n = /* @__PURE__ */ BigInt(3);
33208
33208
  // prettier-ignore
@@ -33748,7 +33748,7 @@ function requireCurve () {
33748
33748
  * @module
33749
33749
  */
33750
33750
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
33751
- const utils_ts_1 = requireUtils$2();
33751
+ const utils_ts_1 = requireUtils$3();
33752
33752
  const modular_ts_1 = requireModular();
33753
33753
  const _0n = BigInt(0);
33754
33754
  const _1n = BigInt(1);
@@ -34257,8 +34257,8 @@ function requireWeierstrass () {
34257
34257
  */
34258
34258
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
34259
34259
  const hmac_js_1 = /*@__PURE__*/ requireHmac();
34260
- const utils_1 = /*@__PURE__*/ requireUtils$3();
34261
- const utils_ts_1 = requireUtils$2();
34260
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
34261
+ const utils_ts_1 = requireUtils$3();
34262
34262
  const curve_ts_1 = requireCurve();
34263
34263
  const modular_ts_1 = requireModular();
34264
34264
  // We construct basis in such way that den is always positive and equals n, but num sign depends on basis (not on secret value)
@@ -35689,7 +35689,7 @@ function requireHashToCurve () {
35689
35689
  exports.hash_to_field = hash_to_field;
35690
35690
  exports.isogenyMap = isogenyMap;
35691
35691
  exports.createHasher = createHasher;
35692
- const utils_ts_1 = requireUtils$2();
35692
+ const utils_ts_1 = requireUtils$3();
35693
35693
  const modular_ts_1 = requireModular();
35694
35694
  // Octet Stream to Integer. "spec" implementation of os2ip is 2.5x slower vs bytesToNumberBE.
35695
35695
  const os2ip = utils_ts_1.bytesToNumberBE;
@@ -35913,12 +35913,12 @@ function requireSecp256k1 () {
35913
35913
  */
35914
35914
  /*! noble-curves - MIT License (c) 2022 Paul Miller (paulmillr.com) */
35915
35915
  const sha2_js_1 = requireSha2();
35916
- const utils_js_1 = /*@__PURE__*/ requireUtils$3();
35916
+ const utils_js_1 = /*@__PURE__*/ requireUtils$4();
35917
35917
  const _shortw_utils_ts_1 = require_shortw_utils();
35918
35918
  const hash_to_curve_ts_1 = requireHashToCurve();
35919
35919
  const modular_ts_1 = requireModular();
35920
35920
  const weierstrass_ts_1 = requireWeierstrass();
35921
- const utils_ts_1 = requireUtils$2();
35921
+ const utils_ts_1 = requireUtils$3();
35922
35922
  // Seems like generator was produced from some seed:
35923
35923
  // `Point.BASE.multiply(Point.Fn.inv(2n, N)).toAffine().x`
35924
35924
  // // gives short x 0x3b78ce563f89a0ed9414f5aa28ad0d96d6795f9c63n
@@ -36224,7 +36224,7 @@ function requireLegacy () {
36224
36224
  * @module
36225
36225
  */
36226
36226
  const _md_ts_1 = require_md();
36227
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
36227
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
36228
36228
  /** Initial SHA1 state */
36229
36229
  const SHA1_IV = /* @__PURE__ */ Uint32Array.from([
36230
36230
  0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0,
@@ -37290,7 +37290,7 @@ function requireBase58 () {
37290
37290
  Object.defineProperty(exports, "__esModule", { value: true });
37291
37291
  exports.createBase58VersionedDecoder = exports.createBase58VersionedEncoder = exports.base58CheckDecode = exports.base58CheckEncode = exports.base58UncheckedDecode = exports.base58UncheckedEncode = void 0;
37292
37292
  const sha256_1 = /*@__PURE__*/ requireSha256();
37293
- const utils_1 = /*@__PURE__*/ requireUtils$3();
37293
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
37294
37294
  const base_1 = /*@__PURE__*/ requireLib$1();
37295
37295
  const base58Unchecked = base_1.base58;
37296
37296
  exports.base58UncheckedEncode = base58Unchecked.encode;
@@ -37401,7 +37401,7 @@ function requireBech32 () {
37401
37401
  hasRequiredBech32 = 1;
37402
37402
  Object.defineProperty(bech32, "__esModule", { value: true });
37403
37403
  bech32.createBech32SegwitDecoder = bech32.createBech32SegwitEncoder = bech32.createBech32mDecoder = bech32.createBech32mEncoder = bech32.createBech32Decoder = bech32.createBech32Encoder = void 0;
37404
- const utils_1 = /*@__PURE__*/ requireUtils$3();
37404
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
37405
37405
  const base_1 = /*@__PURE__*/ requireLib$1();
37406
37406
  const createInternalBech32Encoder = ({ bechLib, hrp, limit }) => (source) => {
37407
37407
  return bechLib.encode(hrp, bechLib.toWords(source), limit);
@@ -38119,7 +38119,7 @@ function requireAe () {
38119
38119
  (function (exports) {
38120
38120
  Object.defineProperty(exports, "__esModule", { value: true });
38121
38121
  exports.ae = exports.decodeAeAddress = exports.encodeAeAddress = void 0;
38122
- const utils_1 = /*@__PURE__*/ requireUtils$3();
38122
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
38123
38123
  const base58_js_1 = requireBase58();
38124
38124
  const name = "ae";
38125
38125
  const coinType = 457;
@@ -38181,7 +38181,7 @@ function requireBytes () {
38181
38181
  hasRequiredBytes = 1;
38182
38182
  Object.defineProperty(bytes, "__esModule", { value: true });
38183
38183
  bytes.hexWithoutPrefixToBytes = bytes.bytesToHexWithoutPrefix = bytes.base10ToBytes = bytes.bytesToBase10 = bytes.bytesToHex = bytes.stringToBytes = bytes.bytesToString = bytes.hexToString = bytes.hexToBytes = void 0;
38184
- const utils_1 = /*@__PURE__*/ requireUtils$3();
38184
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
38185
38185
  function hexToBytes(hex_) {
38186
38186
  let hex = hex_;
38187
38187
  let hexString = hex.slice(2);
@@ -38678,7 +38678,7 @@ function requireBch$1 () {
38678
38678
  hasRequiredBch$1 = 1;
38679
38679
  Object.defineProperty(bch, "__esModule", { value: true });
38680
38680
  bch.decodeBchAddressToTypeAndHash = bch.encodeBchAddressWithVersion = void 0;
38681
- const utils_1 = /*@__PURE__*/ requireUtils$3();
38681
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
38682
38682
  const base_1 = /*@__PURE__*/ requireLib$1();
38683
38683
  const prefix = "bitcoincash";
38684
38684
  const prefixBytes = new Uint8Array([2, 9, 20, 3, 15, 9, 14, 3, 1, 19, 8, 0]);
@@ -38772,7 +38772,7 @@ function requireBch () {
38772
38772
  (function (exports) {
38773
38773
  Object.defineProperty(exports, "__esModule", { value: true });
38774
38774
  exports.bch = exports.decodeBchAddress = exports.encodeBchAddress = void 0;
38775
- const utils_1 = /*@__PURE__*/ requireUtils$3();
38775
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
38776
38776
  const base58_js_1 = requireBase58();
38777
38777
  const bch_js_1 = requireBch$1();
38778
38778
  const name = "bch";
@@ -38823,15 +38823,15 @@ function requireBch () {
38823
38823
 
38824
38824
  var bcn = {};
38825
38825
 
38826
- var utils = {};
38826
+ var utils$1 = {};
38827
38827
 
38828
- var hasRequiredUtils$1;
38828
+ var hasRequiredUtils$2;
38829
38829
 
38830
- function requireUtils$1 () {
38831
- if (hasRequiredUtils$1) return utils;
38832
- hasRequiredUtils$1 = 1;
38830
+ function requireUtils$2 () {
38831
+ if (hasRequiredUtils$2) return utils$1;
38832
+ hasRequiredUtils$2 = 1;
38833
38833
  (function (exports) {
38834
- var __createBinding = (utils && utils.__createBinding) || (Object.create ? (function(o, m, k, k2) {
38834
+ var __createBinding = (utils$1 && utils$1.__createBinding) || (Object.create ? (function(o, m, k, k2) {
38835
38835
  if (k2 === undefined) k2 = k;
38836
38836
  var desc = Object.getOwnPropertyDescriptor(m, k);
38837
38837
  if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
@@ -38842,19 +38842,19 @@ function requireUtils$1 () {
38842
38842
  if (k2 === undefined) k2 = k;
38843
38843
  o[k2] = m[k];
38844
38844
  }));
38845
- var __exportStar = (utils && utils.__exportStar) || function(m, exports) {
38845
+ var __exportStar = (utils$1 && utils$1.__exportStar) || function(m, exports) {
38846
38846
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
38847
38847
  };
38848
38848
  Object.defineProperty(exports, "__esModule", { value: true });
38849
38849
  /**
38850
38850
  * @module
38851
38851
  */
38852
- __exportStar(requireUtils$2(), exports);
38852
+ __exportStar(requireUtils$3(), exports);
38853
38853
  // TODO
38854
38854
  // @deprecated use `@noble/curves/utils.js`
38855
38855
 
38856
- } (utils));
38857
- return utils;
38856
+ } (utils$1));
38857
+ return utils$1;
38858
38858
  }
38859
38859
 
38860
38860
  var sha3 = {};
@@ -38880,7 +38880,7 @@ function requireSha3 () {
38880
38880
  */
38881
38881
  const _u64_ts_1 = require_u64();
38882
38882
  // prettier-ignore
38883
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
38883
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
38884
38884
  // No __PURE__ annotations in sha3 header:
38885
38885
  // EVERYTHING is in fact used on every export.
38886
38886
  // Various per round constants calculations
@@ -39139,9 +39139,9 @@ function requireBcn () {
39139
39139
  (function (exports) {
39140
39140
  Object.defineProperty(exports, "__esModule", { value: true });
39141
39141
  exports.bcn = exports.decodeBcnAddress = exports.encodeBcnAddress = void 0;
39142
- const utils_1 = /*@__PURE__*/ requireUtils$1();
39142
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
39143
39143
  const sha3_1 = /*@__PURE__*/ requireSha3();
39144
- const utils_2 = /*@__PURE__*/ requireUtils$3();
39144
+ const utils_2 = /*@__PURE__*/ requireUtils$4();
39145
39145
  const base_1 = /*@__PURE__*/ requireLib$1();
39146
39146
  const xmr_js_1 = requireXmr();
39147
39147
  const name = "bcn";
@@ -39264,7 +39264,7 @@ function requireBsv () {
39264
39264
  (function (exports) {
39265
39265
  Object.defineProperty(exports, "__esModule", { value: true });
39266
39266
  exports.bsv = exports.decodeBsvAddress = exports.encodeBsvAddress = void 0;
39267
- const utils_1 = /*@__PURE__*/ requireUtils$3();
39267
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
39268
39268
  const base58_js_1 = requireBase58();
39269
39269
  const name = "bsv";
39270
39270
  const coinType = 236;
@@ -39799,7 +39799,7 @@ function require_blake () {
39799
39799
  * Internal helpers for blake hash.
39800
39800
  * @module
39801
39801
  */
39802
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
39802
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
39803
39803
  /**
39804
39804
  * Internal blake variable.
39805
39805
  * For BLAKE2b, the two extra permutations for rounds 10 and 11 are SIGMA[10..11] = SIGMA[0..1].
@@ -39860,7 +39860,7 @@ function requireBlake2 () {
39860
39860
  const _md_ts_1 = require_md();
39861
39861
  const u64 = require_u64();
39862
39862
  // prettier-ignore
39863
- const utils_ts_1 = /*@__PURE__*/ requireUtils$3();
39863
+ const utils_ts_1 = /*@__PURE__*/ requireUtils$4();
39864
39864
  // Same as SHA512_IV, but swapped endianness: LE instead of BE. iv[1] is iv[0], etc.
39865
39865
  const B2B_IV = /* @__PURE__ */ Uint32Array.from([
39866
39866
  0xf3bcc908, 0x6a09e667, 0x84caa73b, 0xbb67ae85, 0xfe94f82b, 0x3c6ef372, 0x5f1d36f1, 0xa54ff53a,
@@ -40298,9 +40298,9 @@ function requireDot$1 () {
40298
40298
  hasRequiredDot$1 = 1;
40299
40299
  Object.defineProperty(dot, "__esModule", { value: true });
40300
40300
  dot.createDotAddressDecoder = dot.createDotAddressEncoder = void 0;
40301
- const utils_1 = /*@__PURE__*/ requireUtils$1();
40301
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
40302
40302
  const blake2b_1 = /*@__PURE__*/ requireBlake2b();
40303
- const utils_2 = /*@__PURE__*/ requireUtils$3();
40303
+ const utils_2 = /*@__PURE__*/ requireUtils$4();
40304
40304
  const base58_js_1 = requireBase58();
40305
40305
  const prefixStringBytes = new Uint8Array([
40306
40306
  0x53, 0x53, 0x35, 0x38, 0x50, 0x52, 0x45,
@@ -40495,7 +40495,7 @@ function requireEtn () {
40495
40495
  Object.defineProperty(exports, "__esModule", { value: true });
40496
40496
  exports.etn = exports.decodeEtnAddress = exports.encodeEtnAddress = void 0;
40497
40497
  const sha3_1 = /*@__PURE__*/ requireSha3();
40498
- const utils_1 = /*@__PURE__*/ requireUtils$3();
40498
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
40499
40499
  const base_1 = /*@__PURE__*/ requireLib$1();
40500
40500
  const xmr_js_1 = requireXmr();
40501
40501
  const name = "etn";
@@ -40601,9 +40601,9 @@ function requireFil () {
40601
40601
  (function (exports) {
40602
40602
  Object.defineProperty(exports, "__esModule", { value: true });
40603
40603
  exports.fil = exports.decodeFilAddress = exports.encodeFilAddress = void 0;
40604
- const utils_1 = /*@__PURE__*/ requireUtils$1();
40604
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
40605
40605
  const blake2b_1 = /*@__PURE__*/ requireBlake2b();
40606
- const utils_2 = /*@__PURE__*/ requireUtils$3();
40606
+ const utils_2 = /*@__PURE__*/ requireUtils$4();
40607
40607
  const base32_js_1 = requireBase32();
40608
40608
  const leb128_js_1 = requireLeb128();
40609
40609
  const name = "fil";
@@ -41200,7 +41200,7 @@ function requireHnt () {
41200
41200
  (function (exports) {
41201
41201
  Object.defineProperty(exports, "__esModule", { value: true });
41202
41202
  exports.hnt = exports.decodeHntAddress = exports.encodeHntAddress = void 0;
41203
- const utils_1 = /*@__PURE__*/ requireUtils$3();
41203
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
41204
41204
  const base58_js_1 = requireBase58();
41205
41205
  const name = "hnt";
41206
41206
  const coinType = 904;
@@ -41238,7 +41238,7 @@ function requireIcx () {
41238
41238
  (function (exports) {
41239
41239
  Object.defineProperty(exports, "__esModule", { value: true });
41240
41240
  exports.icx = exports.decodeIcxAddress = exports.encodeIcxAddress = void 0;
41241
- const utils_1 = /*@__PURE__*/ requireUtils$3();
41241
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
41242
41242
  const bytes_js_1 = requireBytes();
41243
41243
  const name = "icx";
41244
41244
  const coinType = 74;
@@ -41310,7 +41310,7 @@ function requireIota () {
41310
41310
  (function (exports) {
41311
41311
  Object.defineProperty(exports, "__esModule", { value: true });
41312
41312
  exports.iota = exports.decodeIotaAddress = exports.encodeIotaAddress = void 0;
41313
- const utils_1 = /*@__PURE__*/ requireUtils$3();
41313
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
41314
41314
  const bech32_js_1 = requireBech32();
41315
41315
  const name = "iota";
41316
41316
  const coinType = 4218;
@@ -42057,7 +42057,7 @@ function requireNuls () {
42057
42057
  (function (exports) {
42058
42058
  Object.defineProperty(exports, "__esModule", { value: true });
42059
42059
  exports.nuls = exports.decodeNulsAddress = exports.encodeNulsAddress = void 0;
42060
- const utils_1 = /*@__PURE__*/ requireUtils$3();
42060
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
42061
42061
  const base58_js_1 = requireBase58();
42062
42062
  const name = "nuls";
42063
42063
  const coinType = 8964;
@@ -42165,7 +42165,7 @@ function requireOnt () {
42165
42165
  (function (exports) {
42166
42166
  Object.defineProperty(exports, "__esModule", { value: true });
42167
42167
  exports.ont = exports.decodeOntAddress = exports.encodeOntAddress = void 0;
42168
- const utils_1 = /*@__PURE__*/ requireUtils$3();
42168
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
42169
42169
  const base58_js_1 = requireBase58();
42170
42170
  const name = "ont";
42171
42171
  const coinType = 1024;
@@ -42393,9 +42393,9 @@ function requireSc () {
42393
42393
  (function (exports) {
42394
42394
  Object.defineProperty(exports, "__esModule", { value: true });
42395
42395
  exports.sc = exports.decodeScAddress = exports.encodeScAddress = void 0;
42396
- const utils_1 = /*@__PURE__*/ requireUtils$1();
42396
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
42397
42397
  const blake2b_1 = /*@__PURE__*/ requireBlake2b();
42398
- const utils_2 = /*@__PURE__*/ requireUtils$3();
42398
+ const utils_2 = /*@__PURE__*/ requireUtils$4();
42399
42399
  const bytes_js_1 = requireBytes();
42400
42400
  const name = "sc";
42401
42401
  const coinType = 1991;
@@ -42646,9 +42646,9 @@ function requireStx () {
42646
42646
  (function (exports) {
42647
42647
  Object.defineProperty(exports, "__esModule", { value: true });
42648
42648
  exports.stx = exports.decodeStxAddress = exports.encodeStxAddress = void 0;
42649
- const utils_1 = /*@__PURE__*/ requireUtils$1();
42649
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
42650
42650
  const sha256_1 = /*@__PURE__*/ requireSha256();
42651
- const utils_2 = /*@__PURE__*/ requireUtils$3();
42651
+ const utils_2 = /*@__PURE__*/ requireUtils$4();
42652
42652
  const base_1 = /*@__PURE__*/ requireLib$1();
42653
42653
  const base32_js_1 = requireBase32();
42654
42654
  const name = "stx";
@@ -43068,7 +43068,7 @@ function requireVsys () {
43068
43068
  (function (exports) {
43069
43069
  Object.defineProperty(exports, "__esModule", { value: true });
43070
43070
  exports.vsys = exports.decodeVsysAddress = exports.encodeVsysAddress = void 0;
43071
- const utils_1 = /*@__PURE__*/ requireUtils$1();
43071
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
43072
43072
  const blake2b_1 = /*@__PURE__*/ requireBlake2b();
43073
43073
  const sha3_1 = /*@__PURE__*/ requireSha3();
43074
43074
  const base58_js_1 = requireBase58();
@@ -43336,8 +43336,8 @@ function requireXlm () {
43336
43336
  (function (exports) {
43337
43337
  Object.defineProperty(exports, "__esModule", { value: true });
43338
43338
  exports.xlm = exports.decodeXlmAddress = exports.encodeXlmAddress = void 0;
43339
- const utils_1 = /*@__PURE__*/ requireUtils$1();
43340
- const utils_2 = /*@__PURE__*/ requireUtils$3();
43339
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
43340
+ const utils_2 = /*@__PURE__*/ requireUtils$4();
43341
43341
  const base32_js_1 = requireBase32();
43342
43342
  const bytes_js_1 = requireBytes();
43343
43343
  const name = "xlm";
@@ -43429,7 +43429,7 @@ function requireXtz () {
43429
43429
  (function (exports) {
43430
43430
  Object.defineProperty(exports, "__esModule", { value: true });
43431
43431
  exports.xtz = exports.decodeXtzAddress = exports.encodeXtzAddress = void 0;
43432
- const utils_1 = /*@__PURE__*/ requireUtils$3();
43432
+ const utils_1 = /*@__PURE__*/ requireUtils$4();
43433
43433
  const base58_js_1 = requireBase58();
43434
43434
  const name = "xtz";
43435
43435
  const coinType = 1729;
@@ -43555,7 +43555,7 @@ function requireZen () {
43555
43555
  (function (exports) {
43556
43556
  Object.defineProperty(exports, "__esModule", { value: true });
43557
43557
  exports.zen = exports.decodeZenAddress = exports.encodeZenAddress = void 0;
43558
- const utils_1 = /*@__PURE__*/ requireUtils$1();
43558
+ const utils_1 = /*@__PURE__*/ requireUtils$2();
43559
43559
  const base58_js_1 = requireBase58();
43560
43560
  const name = "zen";
43561
43561
  const coinType = 121;
@@ -56933,13 +56933,13 @@ function requireSrc () {
56933
56933
  return src;
56934
56934
  }
56935
56935
 
56936
- var hasRequiredUtils;
56936
+ var hasRequiredUtils$1;
56937
56937
 
56938
- function requireUtils () {
56939
- if (hasRequiredUtils) return utils$3;
56940
- hasRequiredUtils = 1;
56941
- Object.defineProperty(utils$3, "__esModule", { value: true });
56942
- utils$3.convertEnsRecordsToResolverData = void 0;
56938
+ function requireUtils$1 () {
56939
+ if (hasRequiredUtils$1) return utils$4;
56940
+ hasRequiredUtils$1 = 1;
56941
+ Object.defineProperty(utils$4, "__esModule", { value: true });
56942
+ utils$4.convertEnsRecordsToResolverData = void 0;
56943
56943
  const viem_1 = viem;
56944
56944
  const address_encoder_1 = /*@__PURE__*/ requireCjs();
56945
56945
  const address_records_1 = requireAddressRecords();
@@ -57018,8 +57018,8 @@ function requireUtils () {
57018
57018
  }
57019
57019
  return resolverData;
57020
57020
  };
57021
- utils$3.convertEnsRecordsToResolverData = convertEnsRecordsToResolverData;
57022
- return utils$3;
57021
+ utils$4.convertEnsRecordsToResolverData = convertEnsRecordsToResolverData;
57022
+ return utils$4;
57023
57023
  }
57024
57024
 
57025
57025
  var hasRequiredMintClient;
@@ -57035,10 +57035,10 @@ function requireMintClient () {
57035
57035
  const axios_1 = __importDefault(/*@__PURE__*/ requireAxios());
57036
57036
  const env_1 = requireEnv();
57037
57037
  const viem_1 = viem;
57038
- const chains_1 = requireChains();
57038
+ const chains_1 = requireChains$1();
57039
57039
  const abi_1 = requireAbi();
57040
- const addresses_1 = requireDist$1();
57041
- const utils_1 = requireUtils();
57040
+ const addresses_1 = requireDist$2();
57041
+ const utils_1 = requireUtils$1();
57042
57042
  // Listing cache time
57043
57043
  // 15 minutes
57044
57044
  const DEFAULT_LISTING_CACHE = 15 * 60 * 1000;
@@ -57249,11 +57249,11 @@ function requireContenthashRecord () {
57249
57249
  return contenthashRecord;
57250
57250
  }
57251
57251
 
57252
- var hasRequiredDist;
57252
+ var hasRequiredDist$1;
57253
57253
 
57254
- function requireDist () {
57255
- if (hasRequiredDist) return dist;
57256
- hasRequiredDist = 1;
57254
+ function requireDist$1 () {
57255
+ if (hasRequiredDist$1) return dist$1;
57256
+ hasRequiredDist$1 = 1;
57257
57257
  (function (exports) {
57258
57258
  Object.defineProperty(exports, "__esModule", { value: true });
57259
57259
  exports.ContenthashType = exports.ChainName = exports.createMintClient = void 0;
@@ -57263,17 +57263,17 @@ function requireDist () {
57263
57263
  Object.defineProperty(exports, "ChainName", { enumerable: true, get: function () { return address_records_1.ChainName; } });
57264
57264
  var contenthash_record_1 = requireContenthashRecord();
57265
57265
  Object.defineProperty(exports, "ContenthashType", { enumerable: true, get: function () { return contenthash_record_1.ContenthashType; } });
57266
- } (dist));
57267
- return dist;
57266
+ } (dist$1));
57267
+ return dist$1;
57268
57268
  }
57269
57269
 
57270
- var distExports = requireDist();
57270
+ var distExports$1 = requireDist$1();
57271
57271
 
57272
57272
  const LIST_MANAGER_API = "https://list-manager.namespace.ninja";
57273
57273
  const LIST_MANAGER_TESTNET_API = "https://staging.list-manager.namespace.ninja";
57274
57274
  const useMintManager = ({ isTestnet }) => {
57275
57275
  const mintClient = useMemo(() => {
57276
- return distExports.createMintClient({
57276
+ return distExports$1.createMintClient({
57277
57277
  cursomRpcUrls: {},
57278
57278
  isTestnet: isTestnet || false
57279
57279
  });
@@ -57357,7 +57357,1257 @@ const useMintSubname = ({ chainId }) => {
57357
57357
  };
57358
57358
  };
57359
57359
 
57360
- const MIN_ENS_LEN$1 = 3;
57360
+ var dist = {};
57361
+
57362
+ var offchainClient = {};
57363
+
57364
+ var privateActions = {};
57365
+
57366
+ var utils = {};
57367
+
57368
+ var dto = {};
57369
+
57370
+ var chains = {};
57371
+
57372
+ var hasRequiredChains;
57373
+
57374
+ function requireChains () {
57375
+ if (hasRequiredChains) return chains;
57376
+ hasRequiredChains = 1;
57377
+ (function (exports) {
57378
+ Object.defineProperty(exports, "__esModule", { value: true });
57379
+ exports.getCoinType = exports.chainMetadata = exports.ChainName = void 0;
57380
+ /**
57381
+ * Supported blockchain networks for address records.
57382
+ * Each chain has a corresponding coin type used internally for ENS address records.
57383
+ *
57384
+ * @example
57385
+ * ```typescript
57386
+ * import { ChainName } from '@thenamespace/offchain-manager';
57387
+ *
57388
+ * // Use in address records
57389
+ * const addressRecord = {
57390
+ * chain: ChainName.Ethereum,
57391
+ * value: '0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045'
57392
+ * };
57393
+ * ```
57394
+ */
57395
+ var ChainName;
57396
+ (function (ChainName) {
57397
+ /** Ethereum mainnet */
57398
+ ChainName["Ethereum"] = "eth";
57399
+ /** Default (EVM-compatible) */
57400
+ ChainName["Default"] = "default";
57401
+ /** Solana */
57402
+ ChainName["Solana"] = "sol";
57403
+ /** Arbitrum One */
57404
+ ChainName["Arbitrum"] = "arb";
57405
+ /** Optimism */
57406
+ ChainName["Optimism"] = "op";
57407
+ /** Base */
57408
+ ChainName["Base"] = "base";
57409
+ /** Polygon (formerly Matic) */
57410
+ ChainName["Polygon"] = "polygon";
57411
+ /** BNB Smart Chain (formerly BSC) */
57412
+ ChainName["Bsc"] = "bsc";
57413
+ /** Avalanche C-Chain */
57414
+ ChainName["Avalanche"] = "avax";
57415
+ /** Gnosis Chain (formerly xDai) */
57416
+ ChainName["Gnosis"] = "gnosis";
57417
+ /** zkSync Era */
57418
+ ChainName["Zksync"] = "zksync";
57419
+ /** Cosmos Hub */
57420
+ ChainName["Cosmos"] = "cosmos";
57421
+ /** NEAR Protocol */
57422
+ ChainName["Near"] = "near";
57423
+ /** Linea */
57424
+ ChainName["Linea"] = "linea";
57425
+ /** Scroll */
57426
+ ChainName["Scroll"] = "scroll";
57427
+ /** Bitcoin */
57428
+ ChainName["Bitcoin"] = "btc";
57429
+ /** Starknet */
57430
+ ChainName["Starknet"] = "starknet";
57431
+ /** Sui Network */
57432
+ ChainName["Sui"] = "sui";
57433
+ /** Unichain */
57434
+ ChainName["Unichain"] = "unichain";
57435
+ /** Berachain */
57436
+ ChainName["Berachain"] = "berachain";
57437
+ /** WorldChain */
57438
+ ChainName["WorldChain"] = "world_chain";
57439
+ /** Zora */
57440
+ ChainName["Zora"] = "zora";
57441
+ /** Celo */
57442
+ ChainName["Celo"] = "celo";
57443
+ /** Aptos */
57444
+ ChainName["Aptos"] = "aptos";
57445
+ /** Algorand */
57446
+ ChainName["Algorand"] = "algorand";
57447
+ /** Monad */
57448
+ ChainName["Monad"] = "monad";
57449
+ /** Push Chain */
57450
+ ChainName["Push"] = "push";
57451
+ })(ChainName || (exports.ChainName = ChainName = {}));
57452
+ exports.chainMetadata = {
57453
+ eth: {
57454
+ label: "Ethereum",
57455
+ coin: 60,
57456
+ evm: true,
57457
+ },
57458
+ default: {
57459
+ label: "Default",
57460
+ coin: 2147483648,
57461
+ evm: true,
57462
+ },
57463
+ base: {
57464
+ label: "Base",
57465
+ coin: 8453,
57466
+ evm: true,
57467
+ },
57468
+ op: {
57469
+ label: "Optimism",
57470
+ coin: 10,
57471
+ evm: true,
57472
+ },
57473
+ arb: {
57474
+ label: "Arbitrum",
57475
+ coin: 42161,
57476
+ evm: true,
57477
+ },
57478
+ bsc: {
57479
+ label: "BNB",
57480
+ coin: 56,
57481
+ evm: true,
57482
+ },
57483
+ polygon: {
57484
+ label: "Polygon",
57485
+ coin: 137,
57486
+ evm: true,
57487
+ },
57488
+ avax: {
57489
+ label: "Avax",
57490
+ coin: 43114,
57491
+ evm: true,
57492
+ },
57493
+ gnosis: {
57494
+ label: "Gnosis",
57495
+ coin: 100,
57496
+ evm: true,
57497
+ },
57498
+ zksync: {
57499
+ label: "ZkSync",
57500
+ coin: 324,
57501
+ evm: true,
57502
+ },
57503
+ starknet: {
57504
+ label: "Starknet",
57505
+ coin: 9004,
57506
+ },
57507
+ sol: {
57508
+ label: "Solana",
57509
+ coin: 501,
57510
+ },
57511
+ btc: {
57512
+ label: "Bitcoin",
57513
+ coin: 0,
57514
+ },
57515
+ cosmos: {
57516
+ label: "Cosmos",
57517
+ coin: 118,
57518
+ },
57519
+ near: {
57520
+ label: "Near",
57521
+ coin: 397,
57522
+ },
57523
+ linea: {
57524
+ label: "Linea",
57525
+ coin: 59144,
57526
+ evm: true,
57527
+ },
57528
+ scroll: {
57529
+ label: "Scroll",
57530
+ coin: 534352,
57531
+ evm: true,
57532
+ },
57533
+ sui: {
57534
+ label: "Sui",
57535
+ coin: 784,
57536
+ },
57537
+ unichain: {
57538
+ label: "Unichain",
57539
+ coin: 130,
57540
+ evm: true,
57541
+ },
57542
+ berachain: {
57543
+ label: "Berachain",
57544
+ coin: 80094,
57545
+ evm: true,
57546
+ },
57547
+ world_chain: {
57548
+ label: "WorldChain",
57549
+ coin: 480,
57550
+ evm: true,
57551
+ },
57552
+ zora: {
57553
+ label: "Zora",
57554
+ coin: 7777777,
57555
+ evm: true,
57556
+ },
57557
+ celo: {
57558
+ label: "Celo",
57559
+ coin: 42220,
57560
+ evm: true,
57561
+ },
57562
+ aptos: {
57563
+ label: "Aptos",
57564
+ coin: 22,
57565
+ },
57566
+ algorand: {
57567
+ label: "Algorand",
57568
+ coin: 8,
57569
+ },
57570
+ monad: {
57571
+ label: "Monad",
57572
+ coin: 143,
57573
+ evm: true,
57574
+ },
57575
+ push: {
57576
+ label: "Push Chain",
57577
+ coin: 42101,
57578
+ evm: true,
57579
+ },
57580
+ };
57581
+ /**
57582
+ * Get the SLIP-0044 coin type for a given blockchain network.
57583
+ * This coin type is used internally for ENS address records.
57584
+ *
57585
+ * @param chain - The blockchain network to get the coin type for
57586
+ * @returns The SLIP-0044 coin type number
57587
+ *
57588
+ * @example
57589
+ * ```typescript
57590
+ * import { getCoinType, ChainName } from '@thenamespace/offchain-manager';
57591
+ *
57592
+ * const ethCoinType = getCoinType(ChainName.Ethereum); // Returns 60
57593
+ * const baseCoinType = getCoinType(ChainName.Base); // Returns 8453
57594
+ * ```
57595
+ */
57596
+ const getCoinType = (chain) => {
57597
+ return exports.chainMetadata[chain].coin;
57598
+ };
57599
+ exports.getCoinType = getCoinType;
57600
+ } (chains));
57601
+ return chains;
57602
+ }
57603
+
57604
+ var createSubnameRequest_dto = {};
57605
+
57606
+ var hasRequiredCreateSubnameRequest_dto;
57607
+
57608
+ function requireCreateSubnameRequest_dto () {
57609
+ if (hasRequiredCreateSubnameRequest_dto) return createSubnameRequest_dto;
57610
+ hasRequiredCreateSubnameRequest_dto = 1;
57611
+ Object.defineProperty(createSubnameRequest_dto, "__esModule", { value: true });
57612
+ return createSubnameRequest_dto;
57613
+ }
57614
+
57615
+ var subname_dto = {};
57616
+
57617
+ var hasRequiredSubname_dto;
57618
+
57619
+ function requireSubname_dto () {
57620
+ if (hasRequiredSubname_dto) return subname_dto;
57621
+ hasRequiredSubname_dto = 1;
57622
+ Object.defineProperty(subname_dto, "__esModule", { value: true });
57623
+ return subname_dto;
57624
+ }
57625
+
57626
+ var updateSubnameRequest_dto = {};
57627
+
57628
+ var hasRequiredUpdateSubnameRequest_dto;
57629
+
57630
+ function requireUpdateSubnameRequest_dto () {
57631
+ if (hasRequiredUpdateSubnameRequest_dto) return updateSubnameRequest_dto;
57632
+ hasRequiredUpdateSubnameRequest_dto = 1;
57633
+ Object.defineProperty(updateSubnameRequest_dto, "__esModule", { value: true });
57634
+ return updateSubnameRequest_dto;
57635
+ }
57636
+
57637
+ var hasRequiredDto;
57638
+
57639
+ function requireDto () {
57640
+ if (hasRequiredDto) return dto;
57641
+ hasRequiredDto = 1;
57642
+ (function (exports) {
57643
+ var __createBinding = (dto && dto.__createBinding) || (Object.create ? (function(o, m, k, k2) {
57644
+ if (k2 === undefined) k2 = k;
57645
+ var desc = Object.getOwnPropertyDescriptor(m, k);
57646
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
57647
+ desc = { enumerable: true, get: function() { return m[k]; } };
57648
+ }
57649
+ Object.defineProperty(o, k2, desc);
57650
+ }) : (function(o, m, k, k2) {
57651
+ if (k2 === undefined) k2 = k;
57652
+ o[k2] = m[k];
57653
+ }));
57654
+ var __exportStar = (dto && dto.__exportStar) || function(m, exports) {
57655
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
57656
+ };
57657
+ Object.defineProperty(exports, "__esModule", { value: true });
57658
+ __exportStar(requireChains(), exports);
57659
+ __exportStar(requireCreateSubnameRequest_dto(), exports);
57660
+ __exportStar(requireSubname_dto(), exports);
57661
+ __exportStar(requireUpdateSubnameRequest_dto(), exports);
57662
+ } (dto));
57663
+ return dto;
57664
+ }
57665
+
57666
+ var hasRequiredUtils;
57667
+
57668
+ function requireUtils () {
57669
+ if (hasRequiredUtils) return utils;
57670
+ hasRequiredUtils = 1;
57671
+ Object.defineProperty(utils, "__esModule", { value: true });
57672
+ utils.subnameResponseToRequest = utils.mapAddrMapToAddressRecords = utils.mapTextMapToTextRecords = utils.mapAddressesToInternal = void 0;
57673
+ const dto_1 = requireDto();
57674
+ const mapAddressesToInternal = (addrs) => {
57675
+ const _addr = addrs.map((addr) => {
57676
+ const _internalAddr = {
57677
+ coin: (0, dto_1.getCoinType)(addr.chain),
57678
+ value: addr.value,
57679
+ };
57680
+ return _internalAddr;
57681
+ });
57682
+ return _addr;
57683
+ };
57684
+ utils.mapAddressesToInternal = mapAddressesToInternal;
57685
+ const mapTextMapToTextRecords = (txtMap) => {
57686
+ return Object.keys(txtMap).map((txtKey) => {
57687
+ return {
57688
+ key: txtKey,
57689
+ value: txtMap[txtKey],
57690
+ };
57691
+ });
57692
+ };
57693
+ utils.mapTextMapToTextRecords = mapTextMapToTextRecords;
57694
+ const mapAddrMapToAddressRecords = (addrMap) => {
57695
+ return Object.keys(addrMap).map((addrKey) => {
57696
+ return {
57697
+ coin: parseInt(addrKey),
57698
+ value: addrMap[addrKey],
57699
+ };
57700
+ });
57701
+ };
57702
+ utils.mapAddrMapToAddressRecords = mapAddrMapToAddressRecords;
57703
+ const subnameResponseToRequest = (response) => {
57704
+ const addrs = [];
57705
+ const texts = [];
57706
+ if (response.addresses) {
57707
+ Object.keys(response.addresses).forEach((addrCoin) => {
57708
+ try {
57709
+ const coin = parseInt(addrCoin);
57710
+ const value = response.addresses[addrCoin];
57711
+ addrs.push({ coin: coin, value: value });
57712
+ }
57713
+ catch (err) { }
57714
+ });
57715
+ }
57716
+ if (response.texts) {
57717
+ Object.keys(response.texts).forEach((txt) => {
57718
+ texts.push({
57719
+ key: txt,
57720
+ value: response.texts[txt],
57721
+ });
57722
+ });
57723
+ }
57724
+ return {
57725
+ label: response.label,
57726
+ parentName: response.parentName,
57727
+ addresses: addrs,
57728
+ texts: texts,
57729
+ contenthash: response.contenthash,
57730
+ metadata: Object.keys(response.metadata || {}).map((data) => {
57731
+ return {
57732
+ key: data,
57733
+ value: response.metadata[data],
57734
+ };
57735
+ }),
57736
+ ttl: response.ttl,
57737
+ };
57738
+ };
57739
+ utils.subnameResponseToRequest = subnameResponseToRequest;
57740
+ return utils;
57741
+ }
57742
+
57743
+ var publicActions = {};
57744
+
57745
+ var hasRequiredPublicActions;
57746
+
57747
+ function requirePublicActions () {
57748
+ if (hasRequiredPublicActions) return publicActions;
57749
+ hasRequiredPublicActions = 1;
57750
+ Object.defineProperty(publicActions, "__esModule", { value: true });
57751
+ publicActions._getFilteredSubnames = publicActions._getSingleSubname = publicActions._getDataRecord = publicActions._getDataRecords = publicActions._getTextRecord = publicActions._getTextRecords = publicActions._isSubnameAvailable = void 0;
57752
+ const axios_1 = /*@__PURE__*/ requireAxios();
57753
+ const _isSubnameAvailable = async (client, fullSubname) => {
57754
+ try {
57755
+ const { data } = await client.get(`/api/v1/subnames/${fullSubname}`);
57756
+ return { isAvailable: !data };
57757
+ }
57758
+ catch (err) {
57759
+ if (err instanceof axios_1.AxiosError) {
57760
+ const axiosErr = err;
57761
+ if (axiosErr.response?.status === 404) {
57762
+ return { isAvailable: true };
57763
+ }
57764
+ }
57765
+ throw err;
57766
+ }
57767
+ };
57768
+ publicActions._isSubnameAvailable = _isSubnameAvailable;
57769
+ const _getTextRecords = async (client, fullSubname) => {
57770
+ const subname = await client
57771
+ .get(`/api/v1/subnames/${fullSubname}`)
57772
+ .then((res) => res.data);
57773
+ return subname.texts;
57774
+ };
57775
+ publicActions._getTextRecords = _getTextRecords;
57776
+ const _getTextRecord = async (client, fullSubname, key) => {
57777
+ const subname = await client
57778
+ .get(`/api/v1/subnames/${fullSubname}`)
57779
+ .then((res) => res.data);
57780
+ return { record: subname.texts[key] };
57781
+ };
57782
+ publicActions._getTextRecord = _getTextRecord;
57783
+ const _getDataRecords = async (client, fullSubname) => {
57784
+ const subname = await client
57785
+ .get(`/api/v1/subnames/${fullSubname}`)
57786
+ .then((res) => res.data);
57787
+ return subname.metadata;
57788
+ };
57789
+ publicActions._getDataRecords = _getDataRecords;
57790
+ const _getDataRecord = async (client, fullSubname, key) => {
57791
+ const subname = await client
57792
+ .get(`/api/v1/subnames/${fullSubname}`)
57793
+ .then((res) => res.data);
57794
+ return { record: subname.metadata[key] };
57795
+ };
57796
+ publicActions._getDataRecord = _getDataRecord;
57797
+ const _getSingleSubname = (client, fullSubname) => {
57798
+ return client
57799
+ .get(`/api/v1/subnames/${fullSubname}`)
57800
+ .then((res) => res.data);
57801
+ };
57802
+ publicActions._getSingleSubname = _getSingleSubname;
57803
+ const _getFilteredSubnames = async (client, query) => {
57804
+ if (query.parentName) {
57805
+ query.parentName;
57806
+ }
57807
+ if (query.page) {
57808
+ query.page;
57809
+ }
57810
+ if (query.size) {
57811
+ query.size;
57812
+ }
57813
+ if (query.parentNames && query.parentNames.length > 0) {
57814
+ query.parentNames;
57815
+ }
57816
+ if (query.labelSearch) {
57817
+ query.labelSearch;
57818
+ }
57819
+ if (query.metadata) {
57820
+ JSON.stringify(query.metadata);
57821
+ }
57822
+ return client
57823
+ .post(`/api/v1/subnames/search`, query)
57824
+ .then((res) => res.data);
57825
+ };
57826
+ publicActions._getFilteredSubnames = _getFilteredSubnames;
57827
+ return publicActions;
57828
+ }
57829
+
57830
+ var hasRequiredPrivateActions;
57831
+
57832
+ function requirePrivateActions () {
57833
+ if (hasRequiredPrivateActions) return privateActions;
57834
+ hasRequiredPrivateActions = 1;
57835
+ Object.defineProperty(privateActions, "__esModule", { value: true });
57836
+ privateActions._setDefaultEthereumAddress = privateActions._deleteDataRecord = privateActions._addDataRecord = privateActions._deleteTextRecord = privateActions._addTextRecord = privateActions._deleteSubname = privateActions._deleteAddressRecord = privateActions._addAddressRecord = privateActions._updateSubname = privateActions._createSubname = void 0;
57837
+ const utils_1 = requireUtils();
57838
+ const chains_1 = requireChains();
57839
+ const public_actions_1 = requirePublicActions();
57840
+ const AUTH_HEADER = "x-auth-token";
57841
+ const _createSubname = (client, apiKey, createRequest) => {
57842
+ const request = {
57843
+ label: createRequest.label,
57844
+ parentName: createRequest.parentName,
57845
+ addresses: (0, utils_1.mapAddressesToInternal)(createRequest.addresses || []),
57846
+ contenthash: createRequest.contenthash,
57847
+ metadata: createRequest.metadata,
57848
+ texts: createRequest.texts,
57849
+ ttl: createRequest.ttl,
57850
+ owner: createRequest.owner
57851
+ };
57852
+ return client.post("/api/v1/subnames", request, {
57853
+ headers: createAuthorizationHeaders(apiKey),
57854
+ });
57855
+ };
57856
+ privateActions._createSubname = _createSubname;
57857
+ const _updateSubname = async (client, apiKey, fullSubname, updateRequest) => {
57858
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57859
+ const request = {
57860
+ label: subname.label,
57861
+ parentName: subname.parentName,
57862
+ addresses: (0, utils_1.mapAddressesToInternal)(updateRequest.addresses || []),
57863
+ contenthash: updateRequest.contenthash,
57864
+ metadata: updateRequest.metadata,
57865
+ texts: updateRequest.texts,
57866
+ ttl: updateRequest.ttl,
57867
+ };
57868
+ return client.post("/api/v1/subnames", request, {
57869
+ headers: createAuthorizationHeaders(apiKey),
57870
+ }).then(res => res.data);
57871
+ };
57872
+ privateActions._updateSubname = _updateSubname;
57873
+ const _addAddressRecord = async (client, apiKey, fullSubname, coin, value) => {
57874
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57875
+ const addresses = subname.addresses || {};
57876
+ addresses[coin] = value;
57877
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57878
+ const request = {
57879
+ ..._req,
57880
+ addresses: (0, utils_1.mapAddrMapToAddressRecords)(addresses),
57881
+ };
57882
+ return client.post(`/api/v1/subnames`, request, {
57883
+ headers: createAuthorizationHeaders(apiKey),
57884
+ });
57885
+ };
57886
+ privateActions._addAddressRecord = _addAddressRecord;
57887
+ const _deleteAddressRecord = async (client, apiKey, fullSubname, coin) => {
57888
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57889
+ const addresses = subname.addresses || {};
57890
+ delete addresses[coin];
57891
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57892
+ const request = {
57893
+ ..._req,
57894
+ addresses: (0, utils_1.mapAddrMapToAddressRecords)(addresses),
57895
+ };
57896
+ return client.post(`/api/v1/subnames`, request, {
57897
+ headers: createAuthorizationHeaders(apiKey),
57898
+ });
57899
+ };
57900
+ privateActions._deleteAddressRecord = _deleteAddressRecord;
57901
+ const _deleteSubname = (client, apiKey, fullSubname) => {
57902
+ return client.delete(`/api/v1/subnames/${fullSubname}`, {
57903
+ headers: createAuthorizationHeaders(apiKey),
57904
+ });
57905
+ };
57906
+ privateActions._deleteSubname = _deleteSubname;
57907
+ const _addTextRecord = async (client, apiKey, fullSubname, key, value) => {
57908
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57909
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57910
+ const texts = subname.texts || {};
57911
+ texts[key] = value;
57912
+ const request = {
57913
+ ..._req,
57914
+ texts: (0, utils_1.mapTextMapToTextRecords)(texts),
57915
+ };
57916
+ return client.post(`/api/v1/subnames`, request, {
57917
+ headers: createAuthorizationHeaders(apiKey),
57918
+ });
57919
+ };
57920
+ privateActions._addTextRecord = _addTextRecord;
57921
+ const _deleteTextRecord = async (client, apiKey, fullSubname, key) => {
57922
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57923
+ const texts = subname.texts || {};
57924
+ delete texts[key];
57925
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57926
+ const request = {
57927
+ ..._req,
57928
+ texts: (0, utils_1.mapTextMapToTextRecords)(texts),
57929
+ };
57930
+ return client.post(`/api/v1/subnames`, request, {
57931
+ headers: createAuthorizationHeaders(apiKey),
57932
+ });
57933
+ };
57934
+ privateActions._deleteTextRecord = _deleteTextRecord;
57935
+ const _addDataRecord = async (client, apiKey, fullSubname, key, value) => {
57936
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57937
+ const metadata = subname.metadata || {};
57938
+ metadata[key] = value;
57939
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57940
+ const request = {
57941
+ ..._req,
57942
+ metadata: (0, utils_1.mapTextMapToTextRecords)(metadata),
57943
+ };
57944
+ return client.post(`/api/v1/subnames`, request, {
57945
+ headers: createAuthorizationHeaders(apiKey),
57946
+ });
57947
+ };
57948
+ privateActions._addDataRecord = _addDataRecord;
57949
+ const _deleteDataRecord = async (client, apiKey, fullSubname, key) => {
57950
+ const subname = await client
57951
+ .get(`/api/v1/subnames/${fullSubname}`)
57952
+ .then((res) => res.data);
57953
+ const updatedData = Object.entries(subname.metadata)
57954
+ .filter(([dataKey]) => dataKey !== key)
57955
+ .map(([dataKey, dataValue]) => ({ key: dataKey, value: dataValue }));
57956
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57957
+ const request = {
57958
+ ..._req,
57959
+ metadata: updatedData,
57960
+ };
57961
+ return client.post(`/api/v1/subnames`, request, {
57962
+ headers: createAuthorizationHeaders(apiKey),
57963
+ });
57964
+ };
57965
+ privateActions._deleteDataRecord = _deleteDataRecord;
57966
+ const _setDefaultEthereumAddress = async (client, apiKey, fullSubname, value) => {
57967
+ const subname = await (0, public_actions_1._getSingleSubname)(client, fullSubname);
57968
+ const addresses = subname.addresses || {};
57969
+ // Derive EVM chains from shared chainMetadata (evm=true)
57970
+ Object.values(chains_1.chainMetadata)
57971
+ .filter((meta) => meta.evm)
57972
+ .forEach((meta) => {
57973
+ addresses[meta.coin] = value;
57974
+ });
57975
+ const _req = (0, utils_1.subnameResponseToRequest)(subname);
57976
+ const request = {
57977
+ ..._req,
57978
+ addresses: (0, utils_1.mapAddrMapToAddressRecords)(addresses),
57979
+ };
57980
+ return client.post(`/api/v1/subnames`, request, {
57981
+ headers: createAuthorizationHeaders(apiKey),
57982
+ });
57983
+ };
57984
+ privateActions._setDefaultEthereumAddress = _setDefaultEthereumAddress;
57985
+ const createAuthorizationHeaders = (apiKey) => {
57986
+ return {
57987
+ [AUTH_HEADER]: `${apiKey}`,
57988
+ };
57989
+ };
57990
+ return privateActions;
57991
+ }
57992
+
57993
+ var hasRequiredOffchainClient;
57994
+
57995
+ function requireOffchainClient () {
57996
+ if (hasRequiredOffchainClient) return offchainClient;
57997
+ hasRequiredOffchainClient = 1;
57998
+ var __createBinding = (offchainClient && offchainClient.__createBinding) || (Object.create ? (function(o, m, k, k2) {
57999
+ if (k2 === undefined) k2 = k;
58000
+ var desc = Object.getOwnPropertyDescriptor(m, k);
58001
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
58002
+ desc = { enumerable: true, get: function() { return m[k]; } };
58003
+ }
58004
+ Object.defineProperty(o, k2, desc);
58005
+ }) : (function(o, m, k, k2) {
58006
+ if (k2 === undefined) k2 = k;
58007
+ o[k2] = m[k];
58008
+ }));
58009
+ var __setModuleDefault = (offchainClient && offchainClient.__setModuleDefault) || (Object.create ? (function(o, v) {
58010
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
58011
+ }) : function(o, v) {
58012
+ o["default"] = v;
58013
+ });
58014
+ var __importStar = (offchainClient && offchainClient.__importStar) || (function () {
58015
+ var ownKeys = function(o) {
58016
+ ownKeys = Object.getOwnPropertyNames || function (o) {
58017
+ var ar = [];
58018
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
58019
+ return ar;
58020
+ };
58021
+ return ownKeys(o);
58022
+ };
58023
+ return function (mod) {
58024
+ if (mod && mod.__esModule) return mod;
58025
+ var result = {};
58026
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
58027
+ __setModuleDefault(result, mod);
58028
+ return result;
58029
+ };
58030
+ })();
58031
+ Object.defineProperty(offchainClient, "__esModule", { value: true });
58032
+ offchainClient.createOffchainClient = void 0;
58033
+ const axios_1 = __importStar(/*@__PURE__*/ requireAxios());
58034
+ const private_actions_1 = requirePrivateActions();
58035
+ const public_actions_1 = requirePublicActions();
58036
+ const dto_1 = requireDto();
58037
+ /** Backend URI mappings for different network modes */
58038
+ const backendUris = {
58039
+ mainnet: "https://offchain-manager.namespace.ninja",
58040
+ sepolia: "https://staging.offchain-manager.namespace.ninja",
58041
+ };
58042
+ class HttpOffchainClient {
58043
+ constructor(config = {}) {
58044
+ this.config = config;
58045
+ this.apiKeys = {};
58046
+ this.fetchApiKeyForName = (name, isSubname = true) => {
58047
+ const extractParent = () => {
58048
+ const split = name.split(".");
58049
+ const splitLen = split.length;
58050
+ if (splitLen < 2) {
58051
+ throw Error(`Invalid ENS name: ${name}`);
58052
+ }
58053
+ if (splitLen === 2) {
58054
+ return name;
58055
+ }
58056
+ return split[splitLen - 2] + "." + split[splitLen - 1];
58057
+ };
58058
+ let parentName = isSubname ? extractParent() : name;
58059
+ if (this.apiKeys[parentName]) {
58060
+ return this.apiKeys[parentName];
58061
+ }
58062
+ if (this.defaultApiKey) {
58063
+ return this.defaultApiKey;
58064
+ }
58065
+ throw new Error(`Api key is not present for name: ${parentName}. Use setApiKey() or setDefaultApiKey() to configure authentication.`);
58066
+ };
58067
+ const mode = config.mode || "mainnet";
58068
+ const uri = config.backendUri || backendUris[mode];
58069
+ this.HTTP = axios_1.default.create({ ...this.config, baseURL: uri });
58070
+ // Initialize authentication from config if provided
58071
+ if (config.defaultApiKey) {
58072
+ this.setDefaultApiKey(config.defaultApiKey);
58073
+ }
58074
+ if (config.domainApiKeys) {
58075
+ for (const [ensName, apiKey] of Object.entries(config.domainApiKeys)) {
58076
+ this.setApiKey(ensName, apiKey);
58077
+ }
58078
+ }
58079
+ }
58080
+ async updateSubname(subname, request) {
58081
+ return (0, private_actions_1._updateSubname)(this.HTTP, this.fetchApiKeyForName(subname), subname, request);
58082
+ }
58083
+ async addAddressRecord(subname, chain, value) {
58084
+ const coin = (0, dto_1.getCoinType)(chain);
58085
+ if (coin === undefined) {
58086
+ throw Error(`Unsupported address: ${chain}`);
58087
+ }
58088
+ await (0, private_actions_1._addAddressRecord)(this.HTTP, this.fetchApiKeyForName(subname), subname, coin, value);
58089
+ }
58090
+ async deleteAddressRecord(subname, chain) {
58091
+ const coin = (0, dto_1.getCoinType)(chain);
58092
+ if (coin === undefined) {
58093
+ throw Error(`Unsupported address: ${chain}`);
58094
+ }
58095
+ await (0, private_actions_1._deleteAddressRecord)(this.HTTP, this.fetchApiKeyForName(subname), subname, coin);
58096
+ }
58097
+ async setDefaultEvmAddress(subname, value) {
58098
+ await (0, private_actions_1._setDefaultEthereumAddress)(this.HTTP, this.fetchApiKeyForName(subname), subname, value);
58099
+ }
58100
+ async getSingleSubname(fullSubname) {
58101
+ try {
58102
+ return (0, public_actions_1._getSingleSubname)(this.HTTP, fullSubname);
58103
+ }
58104
+ catch (err) {
58105
+ if (err instanceof axios_1.AxiosError) {
58106
+ const axiosErr = err;
58107
+ if (axiosErr.response?.status === 404) {
58108
+ return null;
58109
+ }
58110
+ }
58111
+ throw err;
58112
+ }
58113
+ }
58114
+ async getTextRecords(fullSubname) {
58115
+ return await (0, public_actions_1._getTextRecords)(this.HTTP, fullSubname);
58116
+ }
58117
+ async getTextRecord(fullSubname, key) {
58118
+ return await (0, public_actions_1._getTextRecord)(this.HTTP, fullSubname, key);
58119
+ }
58120
+ async getDataRecords(fullSubname) {
58121
+ return await (0, public_actions_1._getDataRecords)(this.HTTP, fullSubname);
58122
+ }
58123
+ async getDataRecord(fullSubname, key) {
58124
+ return await (0, public_actions_1._getDataRecord)(this.HTTP, fullSubname, key);
58125
+ }
58126
+ async isSubnameAvailable(fullSubname) {
58127
+ return await (0, public_actions_1._isSubnameAvailable)(this.HTTP, fullSubname);
58128
+ }
58129
+ async createSubname(request) {
58130
+ await (0, private_actions_1._createSubname)(this.HTTP, this.fetchApiKeyForName(request.parentName, false), request);
58131
+ }
58132
+ async deleteSubname(fullSubname) {
58133
+ await (0, private_actions_1._deleteSubname)(this.HTTP, this.fetchApiKeyForName(fullSubname), fullSubname);
58134
+ }
58135
+ async addTextRecord(subname, key, value) {
58136
+ await (0, private_actions_1._addTextRecord)(this.HTTP, this.fetchApiKeyForName(subname), subname, key, value);
58137
+ }
58138
+ async deleteTextRecord(fullSubname, key) {
58139
+ await (0, private_actions_1._deleteTextRecord)(this.HTTP, this.fetchApiKeyForName(fullSubname), fullSubname, key);
58140
+ }
58141
+ async addDataRecord(subname, key, value) {
58142
+ await (0, private_actions_1._addDataRecord)(this.HTTP, this.fetchApiKeyForName(subname), subname, key, value);
58143
+ }
58144
+ async deleteDataRecord(fullSubname, key) {
58145
+ await (0, private_actions_1._deleteDataRecord)(this.HTTP, this.fetchApiKeyForName(fullSubname), fullSubname, key);
58146
+ }
58147
+ async getFilteredSubnames(query) {
58148
+ return (0, public_actions_1._getFilteredSubnames)(this.HTTP, query);
58149
+ }
58150
+ setApiKey(ensName, apiKey) {
58151
+ this.apiKeys[ensName] = apiKey;
58152
+ }
58153
+ setDefaultApiKey(apiKey) {
58154
+ this.defaultApiKey = apiKey;
58155
+ }
58156
+ }
58157
+ /**
58158
+ * Create a new OffchainClient instance for managing ENS subnames.
58159
+ *
58160
+ * @param config - Optional configuration options including network mode, HTTP settings, and API keys
58161
+ * @returns A configured OffchainClient instance
58162
+ *
58163
+ * @example
58164
+ * ```typescript
58165
+ * import { createOffchainClient } from '@thenamespace/offchain-manager';
58166
+ *
58167
+ * // 1. No-arg initialization (defaults to mainnet)
58168
+ * const client = createOffchainClient();
58169
+ *
58170
+ * // 2. Configure network mode
58171
+ * const client = createOffchainClient({ mode: 'sepolia' });
58172
+ *
58173
+ * // 3. Initialize with address-based API key (works with all your ENS domains)
58174
+ * const client = createOffchainClient({
58175
+ * mode: 'sepolia',
58176
+ * defaultApiKey: 'your-address-based-api-key'
58177
+ * });
58178
+ *
58179
+ * // 4. Initialize with domain-based API keys (for specific ENS domains)
58180
+ * const client = createOffchainClient({
58181
+ * mode: 'sepolia',
58182
+ * domainApiKeys: {
58183
+ * 'example.eth': 'your-domain-based-api-key',
58184
+ * 'test.eth': 'another-domain-key'
58185
+ * }
58186
+ * });
58187
+ *
58188
+ * // 5. Initialize with both default and domain API keys
58189
+ * const client = createOffchainClient({
58190
+ * mode: 'sepolia',
58191
+ * defaultApiKey: 'your-address-based-api-key',
58192
+ * domainApiKeys: {
58193
+ * 'example.eth': 'your-domain-based-api-key'
58194
+ * }
58195
+ * });
58196
+ *
58197
+ * // You can also set/update keys after initialization
58198
+ * client.setDefaultApiKey('your-api-key');
58199
+ * client.setApiKey('example.eth', 'your-domain-key');
58200
+ * ```
58201
+ */
58202
+ const createOffchainClient = (config = {}) => {
58203
+ return new HttpOffchainClient(config);
58204
+ };
58205
+ offchainClient.createOffchainClient = createOffchainClient;
58206
+ return offchainClient;
58207
+ }
58208
+
58209
+ var validation = {};
58210
+
58211
+ var errors = {};
58212
+
58213
+ var hasRequiredErrors;
58214
+
58215
+ function requireErrors () {
58216
+ if (hasRequiredErrors) return errors;
58217
+ hasRequiredErrors = 1;
58218
+ Object.defineProperty(errors, "__esModule", { value: true });
58219
+ errors.RateLimitError = errors.SubnameAlreadyExistsError = errors.SubnameNotFoundError = errors.ValidationError = errors.AuthenticationError = errors.NamespaceSDKError = void 0;
58220
+ class NamespaceSDKError extends Error {
58221
+ constructor(message, code) {
58222
+ super(message);
58223
+ this.code = code;
58224
+ this.name = 'NamespaceSDKError';
58225
+ }
58226
+ }
58227
+ errors.NamespaceSDKError = NamespaceSDKError;
58228
+ class AuthenticationError extends NamespaceSDKError {
58229
+ constructor(message = 'Authentication failed. Please check your API key.') {
58230
+ super(message, 'AUTH_ERROR');
58231
+ this.name = 'AuthenticationError';
58232
+ }
58233
+ }
58234
+ errors.AuthenticationError = AuthenticationError;
58235
+ class ValidationError extends NamespaceSDKError {
58236
+ constructor(message) {
58237
+ super(message, 'VALIDATION_ERROR');
58238
+ this.name = 'ValidationError';
58239
+ }
58240
+ }
58241
+ errors.ValidationError = ValidationError;
58242
+ class SubnameNotFoundError extends NamespaceSDKError {
58243
+ constructor(subname) {
58244
+ super(`Subname not found: ${subname}`, 'SUBDOMAIN_NOT_FOUND');
58245
+ this.name = 'SubnameNotFoundError';
58246
+ }
58247
+ }
58248
+ errors.SubnameNotFoundError = SubnameNotFoundError;
58249
+ class SubnameAlreadyExistsError extends NamespaceSDKError {
58250
+ constructor(subname) {
58251
+ super(`Subname already exists: ${subname}`, 'SUBDOMAIN_EXISTS');
58252
+ this.name = 'SubnameAlreadyExistsError';
58253
+ }
58254
+ }
58255
+ errors.SubnameAlreadyExistsError = SubnameAlreadyExistsError;
58256
+ class RateLimitError extends NamespaceSDKError {
58257
+ constructor(message = 'Rate limit exceeded. Please try again later.') {
58258
+ super(message, 'RATE_LIMIT');
58259
+ this.name = 'RateLimitError';
58260
+ }
58261
+ }
58262
+ errors.RateLimitError = RateLimitError;
58263
+ return errors;
58264
+ }
58265
+
58266
+ var hasRequiredValidation;
58267
+
58268
+ function requireValidation () {
58269
+ if (hasRequiredValidation) return validation;
58270
+ hasRequiredValidation = 1;
58271
+ (function (exports) {
58272
+ Object.defineProperty(exports, "__esModule", { value: true });
58273
+ exports.validateApiKey = exports.validateAddress = exports.validateSubname = exports.validateEnsName = void 0;
58274
+ const errors_1 = requireErrors();
58275
+ const dto_1 = requireDto();
58276
+ /**
58277
+ * Validates that a string is a properly formatted ENS domain name.
58278
+ * ENS supports many TLDs including .eth, .com, .art, .xyz, and others through ENS import.
58279
+ *
58280
+ * Validation follows ENS normalization rules:
58281
+ * - Names must be lowercase
58282
+ * - Variation selectors (U+FE00-U+FE0F) are not allowed
58283
+ * - Zero-width characters are not allowed (prevents homoglyph attacks)
58284
+ * - Supports emojis, accented characters, and many Unicode characters
58285
+ *
58286
+ * @param name - The ENS name to validate (e.g., 'example.eth', 'mysite.com', 'art.gallery.art')
58287
+ * @throws {ValidationError} When the name format is invalid
58288
+ *
58289
+ * @example
58290
+ * ```typescript
58291
+ * import { validateEnsName } from '@thenamespace/offchain-manager';
58292
+ *
58293
+ * validateEnsName('example.eth'); // ✅ Valid
58294
+ * validateEnsName('mysite.com'); // ✅ Valid (ENS supports imported domains)
58295
+ * validateEnsName('gallery.art'); // ✅ Valid
58296
+ * validateEnsName('sub.example.eth'); // ✅ Valid
58297
+ * validateEnsName('🚀.eth'); // ✅ Valid (emojis supported)
58298
+ * validateEnsName('café.eth'); // ✅ Valid (accented characters supported)
58299
+ * validateEnsName('Example.eth'); // ❌ Throws ValidationError (uppercase not allowed)
58300
+ * validateEnsName('invalid..domain'); // ❌ Throws ValidationError
58301
+ * ```
58302
+ */
58303
+ const validateEnsName = (name) => {
58304
+ if (!name || typeof name !== 'string') {
58305
+ throw new errors_1.ValidationError('ENS name must be a non-empty string');
58306
+ }
58307
+ // Check for uppercase characters (ENS normalizes to lowercase)
58308
+ if (name !== name.toLowerCase()) {
58309
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. ENS names must be lowercase.`);
58310
+ }
58311
+ // Check for variation selectors (U+FE00 to U+FE0F) - these are stripped in ENS normalization
58312
+ const variationSelectorRegex = /[\uFE00-\uFE0F]/;
58313
+ if (variationSelectorRegex.test(name)) {
58314
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. Variation selectors are not allowed in ENS names.`);
58315
+ }
58316
+ // Check for zero-width characters that could be used for homoglyph attacks
58317
+ const zeroWidthChars = /[\u200B-\u200D\uFEFF\u2060]/;
58318
+ if (zeroWidthChars.test(name)) {
58319
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. Zero-width characters are not allowed in ENS names.`);
58320
+ }
58321
+ // Basic domain name validation - ENS supports many characters including emojis
58322
+ // Must have at least one dot and proper structure
58323
+ // Allow any character except dots, and ensure proper domain structure
58324
+ const domainRegex = /^[^.]+\.[^.]+(\.[^.]+)*$/;
58325
+ if (!domainRegex.test(name)) {
58326
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. Must be a valid domain name with at least one TLD (e.g., example.eth, mysite.com, gallery.art).`);
58327
+ }
58328
+ // Check for invalid patterns
58329
+ if (name.includes('..') || name.startsWith('.') || name.endsWith('.')) {
58330
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. Cannot have consecutive dots or start/end with dots.`);
58331
+ }
58332
+ // Check length constraints (ENS has some practical limits)
58333
+ if (name.length > 253) {
58334
+ throw new errors_1.ValidationError(`ENS domain name too long: ${name}. Maximum length is 253 characters.`);
58335
+ }
58336
+ // Check individual label lengths (max 63 characters per label)
58337
+ const labels = name.split('.');
58338
+ for (const label of labels) {
58339
+ if (label.length === 0) {
58340
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. Empty labels are not allowed.`);
58341
+ }
58342
+ if (label.length > 63) {
58343
+ throw new errors_1.ValidationError(`Invalid ENS domain format: ${name}. Label '${label}' exceeds 63 character limit.`);
58344
+ }
58345
+ }
58346
+ };
58347
+ exports.validateEnsName = validateEnsName;
58348
+ /**
58349
+ * Validates that a string is a properly formatted ENS subname.
58350
+ * A subname must have at least one label before the parent domain.
58351
+ * Supports all ENS-compatible TLDs (.eth, .com, .art, .xyz, etc.).
58352
+ *
58353
+ * @param subname - The subname to validate (e.g., 'alice.example.eth', 'app.mysite.com')
58354
+ * @throws {ValidationError} When the subname format is invalid
58355
+ *
58356
+ * @example
58357
+ * ```typescript
58358
+ * import { validateSubname } from '@thenamespace/offchain-manager';
58359
+ *
58360
+ * validateSubname('alice.example.eth'); // ✅ Valid
58361
+ * validateSubname('app.mysite.com'); // ✅ Valid
58362
+ * validateSubname('user.gallery.art'); // ✅ Valid
58363
+ * validateSubname('app.subdomain.example.eth'); // ✅ Valid
58364
+ * validateSubname('example.eth'); // ❌ Throws ValidationError (not a subname, just 2 parts)
58365
+ * validateSubname('.example.eth'); // ❌ Throws ValidationError (empty label)
58366
+ * ```
58367
+ */
58368
+ const validateSubname = (subname) => {
58369
+ if (!subname || typeof subname !== 'string') {
58370
+ throw new errors_1.ValidationError('Subname must be a non-empty string');
58371
+ }
58372
+ // Normalize to lowercase for validation
58373
+ const normalizedSubname = subname.toLowerCase();
58374
+ // Subname should be in format: label.parent.tld (minimum 3 parts)
58375
+ const parts = normalizedSubname.split('.');
58376
+ if (parts.length < 3) {
58377
+ throw new errors_1.ValidationError(`Invalid subname format: ${subname}. Expected format: label.parent.tld (e.g., alice.example.eth, app.mysite.com)`);
58378
+ }
58379
+ const label = parts[0];
58380
+ if (!label || label.length === 0) {
58381
+ throw new errors_1.ValidationError('Subname label cannot be empty');
58382
+ }
58383
+ // Validate the parent domain (everything after the first label)
58384
+ const parent = parts.slice(1).join('.');
58385
+ (0, exports.validateEnsName)(parent);
58386
+ };
58387
+ exports.validateSubname = validateSubname;
58388
+ /**
58389
+ * Validates that an address is properly formatted for the specified blockchain network.
58390
+ * Each blockchain has its own address format and validation rules.
58391
+ *
58392
+ * @param address - The wallet address to validate
58393
+ * @param chain - The blockchain network this address belongs to
58394
+ * @throws {ValidationError} When the address format is invalid for the specified chain
58395
+ *
58396
+ * @example
58397
+ * ```typescript
58398
+ * import { validateAddress, ChainName } from '@thenamespace/offchain-manager';
58399
+ *
58400
+ * // Ethereum-style addresses (40 hex characters)
58401
+ * validateAddress('0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045', ChainName.Ethereum); // ✅
58402
+ * validateAddress('0xd8dA6BF26964aF9D7eEd9e03E53415D37aA96045', ChainName.Base); // ✅
58403
+ *
58404
+ * // Solana addresses (base58 encoded)
58405
+ * validateAddress('9WzDXwBbmkg8ZTbNMqUxvQRAyrZzDsGYdLVL9zYtAWWM', ChainName.Solana); // ✅
58406
+ *
58407
+ * // NEAR addresses (.near suffix)
58408
+ * validateAddress('alice.near', ChainName.Near); // ✅
58409
+ *
58410
+ * // Invalid examples
58411
+ * validateAddress('invalid', ChainName.Ethereum); // ❌ Throws ValidationError
58412
+ * validateAddress('0x123', ChainName.Ethereum); // ❌ Throws ValidationError (too short)
58413
+ * ```
58414
+ */
58415
+ const validateAddress = (address, chain) => {
58416
+ if (!address || typeof address !== 'string') {
58417
+ throw new errors_1.ValidationError('Address must be a non-empty string');
58418
+ }
58419
+ // Basic address validation based on chain
58420
+ switch (chain) {
58421
+ case dto_1.ChainName.Ethereum:
58422
+ case dto_1.ChainName.Default:
58423
+ case dto_1.ChainName.Arbitrum:
58424
+ case dto_1.ChainName.Optimism:
58425
+ case dto_1.ChainName.Base:
58426
+ case dto_1.ChainName.Polygon:
58427
+ case dto_1.ChainName.Bsc:
58428
+ case dto_1.ChainName.Avalanche:
58429
+ case dto_1.ChainName.Gnosis:
58430
+ case dto_1.ChainName.Zksync:
58431
+ case dto_1.ChainName.Linea:
58432
+ case dto_1.ChainName.Scroll:
58433
+ case dto_1.ChainName.Unichain:
58434
+ case dto_1.ChainName.Berachain:
58435
+ case dto_1.ChainName.WorldChain:
58436
+ case dto_1.ChainName.Zora:
58437
+ case dto_1.ChainName.Celo:
58438
+ case dto_1.ChainName.Monad:
58439
+ case dto_1.ChainName.Push:
58440
+ // Ethereum-style addresses (EVM chains)
58441
+ if (!/^0x[a-fA-F0-9]{40}$/.test(address)) {
58442
+ throw new errors_1.ValidationError(`Invalid Ethereum-style address: ${address}`);
58443
+ }
58444
+ break;
58445
+ case dto_1.ChainName.Starknet:
58446
+ // Starknet addresses are up to 64 hex characters (leading zeros can be omitted)
58447
+ if (!/^0x[a-fA-F0-9]{1,64}$/.test(address)) {
58448
+ throw new errors_1.ValidationError(`Invalid Starknet address: ${address}`);
58449
+ }
58450
+ break;
58451
+ case dto_1.ChainName.Solana:
58452
+ // Solana addresses are base58 encoded, typically 32-44 characters
58453
+ if (!/^[1-9A-HJ-NP-Za-km-z]{32,44}$/.test(address)) {
58454
+ throw new errors_1.ValidationError(`Invalid Solana address: ${address}`);
58455
+ }
58456
+ break;
58457
+ case dto_1.ChainName.Bitcoin:
58458
+ // Bitcoin addresses - supports Legacy (P2PKH), Script (P2SH), Bech32 (P2WPKH/P2WSH), and Taproot (P2TR)
58459
+ const bitcoinRegex = /^([13][a-km-zA-HJ-NP-Z1-9]{25,34}|bc1[a-z0-9]{39,59})$/;
58460
+ if (!bitcoinRegex.test(address)) {
58461
+ throw new errors_1.ValidationError(`Invalid Bitcoin address: ${address}`);
58462
+ }
58463
+ break;
58464
+ case dto_1.ChainName.Cosmos:
58465
+ // Cosmos addresses use bech32 format with 'cosmos' prefix
58466
+ if (!/^cosmos1[a-z0-9]{38}$/.test(address)) {
58467
+ throw new errors_1.ValidationError(`Invalid Cosmos address: ${address}`);
58468
+ }
58469
+ break;
58470
+ case dto_1.ChainName.Near:
58471
+ // NEAR addresses: either implicit (64 hex chars) or named accounts ending with .near
58472
+ const nearImplicit = /^[a-f0-9]{64}$/;
58473
+ const nearNamed = /^[a-z0-9._-]+\.near$/;
58474
+ if (!nearImplicit.test(address) && !nearNamed.test(address)) {
58475
+ throw new errors_1.ValidationError(`Invalid NEAR address: ${address}`);
58476
+ }
58477
+ break;
58478
+ case dto_1.ChainName.Sui:
58479
+ // Sui addresses are up to 64 hex characters (leading zeros can be omitted)
58480
+ if (!/^0x[a-fA-F0-9]{1,64}$/.test(address)) {
58481
+ throw new errors_1.ValidationError(`Invalid Sui address: ${address}`);
58482
+ }
58483
+ break;
58484
+ case dto_1.ChainName.Aptos:
58485
+ // Aptos addresses are up to 64 hex characters (leading zeros can be omitted)
58486
+ if (!/^0x[a-fA-F0-9]{1,64}$/.test(address)) {
58487
+ throw new errors_1.ValidationError(`Invalid Aptos address: ${address}`);
58488
+ }
58489
+ break;
58490
+ case dto_1.ChainName.Algorand:
58491
+ // Algorand addresses are 58-character Base32 strings (A-Z, 2-7)
58492
+ if (!/^[A-Z2-7]{58}$/.test(address)) {
58493
+ throw new errors_1.ValidationError(`Invalid Algorand address: ${address}`);
58494
+ }
58495
+ break;
58496
+ default:
58497
+ throw new errors_1.ValidationError(`Unsupported chain: ${chain}`);
58498
+ }
58499
+ };
58500
+ exports.validateAddress = validateAddress;
58501
+ /**
58502
+ * Validates that an API key appears to be in the correct format.
58503
+ * This performs basic sanity checks but doesn't verify the key with the server.
58504
+ *
58505
+ * @param apiKey - The API key to validate
58506
+ * @throws {ValidationError} When the API key format appears invalid
58507
+ *
58508
+ * @example
58509
+ * ```typescript
58510
+ * import { validateApiKey } from '@thenamespace/offchain-manager';
58511
+ *
58512
+ * validateApiKey('ns-123fcc-1126-1234-1234-c63047985fe2'); // ✅ Valid format
58513
+ * validateApiKey('short'); // ❌ Throws ValidationError (too short)
58514
+ * validateApiKey(''); // ❌ Throws ValidationError (empty)
58515
+ * ```
58516
+ */
58517
+ const validateApiKey = (apiKey) => {
58518
+ if (!apiKey || typeof apiKey !== 'string') {
58519
+ throw new errors_1.ValidationError('API key must be a non-empty string');
58520
+ }
58521
+ if (apiKey.length < 10) {
58522
+ throw new errors_1.ValidationError('API key appears to be too short');
58523
+ }
58524
+ };
58525
+ exports.validateApiKey = validateApiKey;
58526
+ } (validation));
58527
+ return validation;
58528
+ }
58529
+
58530
+ var hasRequiredDist;
58531
+
58532
+ function requireDist () {
58533
+ if (hasRequiredDist) return dist;
58534
+ hasRequiredDist = 1;
58535
+ (function (exports) {
58536
+ /**
58537
+ * @fileoverview Namespace SDK - Offchain Manager
58538
+ *
58539
+ * A TypeScript SDK for managing ENS subnames off-chain using the Namespace API.
58540
+ * This library provides a simple interface for creating, updating, deleting, and querying
58541
+ * ENS subnames and their associated records (addresses, text records, metadata).
58542
+ *
58543
+ * Supports all ENS-compatible domains including:
58544
+ * - Native ENS domains (.eth)
58545
+ * - Imported web2 domains (.com, .org, .net, etc.)
58546
+ * - Alternative TLDs (.art, .xyz, .club, etc.)
58547
+ *
58548
+ * @example
58549
+ * ```typescript
58550
+ * import { createOffchainClient, ChainName } from '@thenamespace/offchain-manager';
58551
+ *
58552
+ * // Initialize client with API key inline
58553
+ * const client = createOffchainClient({
58554
+ * mode: 'sepolia',
58555
+ * defaultApiKey: 'your-address-based-api-key'
58556
+ * });
58557
+ *
58558
+ * // Create a subname
58559
+ * await client.createSubname({
58560
+ * parentName: 'example.eth',
58561
+ * label: 'alice',
58562
+ * addresses: [{ chain: ChainName.Ethereum, value: '0x...' }],
58563
+ * texts: [{ key: 'com.twitter', value: 'alice' }]
58564
+ * });
58565
+ * ```
58566
+ *
58567
+ * @author Namespace Team
58568
+ * @version 3.0.6
58569
+ * @license MIT
58570
+ */
58571
+ Object.defineProperty(exports, "__esModule", { value: true });
58572
+ exports.RateLimitError = exports.SubnameAlreadyExistsError = exports.SubnameNotFoundError = exports.ValidationError = exports.AuthenticationError = exports.NamespaceSDKError = exports.validateApiKey = exports.validateAddress = exports.validateSubname = exports.validateEnsName = exports.getCoinType = exports.ChainName = exports.createOffchainClient = void 0;
58573
+ // Core client exports
58574
+ var offchain_client_1 = requireOffchainClient();
58575
+ Object.defineProperty(exports, "createOffchainClient", { enumerable: true, get: function () { return offchain_client_1.createOffchainClient; } });
58576
+ // Data transfer objects
58577
+ var dto_1 = requireDto();
58578
+ Object.defineProperty(exports, "ChainName", { enumerable: true, get: function () { return dto_1.ChainName; } });
58579
+ Object.defineProperty(exports, "getCoinType", { enumerable: true, get: function () { return dto_1.getCoinType; } });
58580
+ // Validation utilities (for advanced usage)
58581
+ var validation_1 = requireValidation();
58582
+ Object.defineProperty(exports, "validateEnsName", { enumerable: true, get: function () { return validation_1.validateEnsName; } });
58583
+ Object.defineProperty(exports, "validateSubname", { enumerable: true, get: function () { return validation_1.validateSubname; } });
58584
+ Object.defineProperty(exports, "validateAddress", { enumerable: true, get: function () { return validation_1.validateAddress; } });
58585
+ Object.defineProperty(exports, "validateApiKey", { enumerable: true, get: function () { return validation_1.validateApiKey; } });
58586
+ // Error classes (for error handling)
58587
+ var errors_1 = requireErrors();
58588
+ Object.defineProperty(exports, "NamespaceSDKError", { enumerable: true, get: function () { return errors_1.NamespaceSDKError; } });
58589
+ Object.defineProperty(exports, "AuthenticationError", { enumerable: true, get: function () { return errors_1.AuthenticationError; } });
58590
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return errors_1.ValidationError; } });
58591
+ Object.defineProperty(exports, "SubnameNotFoundError", { enumerable: true, get: function () { return errors_1.SubnameNotFoundError; } });
58592
+ Object.defineProperty(exports, "SubnameAlreadyExistsError", { enumerable: true, get: function () { return errors_1.SubnameAlreadyExistsError; } });
58593
+ Object.defineProperty(exports, "RateLimitError", { enumerable: true, get: function () { return errors_1.RateLimitError; } });
58594
+ } (dist));
58595
+ return dist;
58596
+ }
58597
+
58598
+ var distExports = requireDist();
58599
+
58600
+ const useOffchainManager = (name, apiKeyOrToken) => {
58601
+ const client = useMemo(() => {
58602
+ const key = { [name]: apiKeyOrToken };
58603
+ return distExports.createOffchainClient({
58604
+ domainApiKeys: key
58605
+ });
58606
+ }, [name, apiKeyOrToken]);
58607
+ return client;
58608
+ };
58609
+
58610
+ const MIN_ENS_LEN$2 = 3;
57361
58611
  const RegistrationSummary = ({
57362
58612
  label,
57363
58613
  years,
@@ -57444,7 +58694,7 @@ const RegistrationSummary = ({
57444
58694
  return;
57445
58695
  }
57446
58696
  onLabelChange(_value);
57447
- if (_value.length >= MIN_ENS_LEN$1) {
58697
+ if (_value.length >= MIN_ENS_LEN$2) {
57448
58698
  onNameValidationChange({ isChecking: true, isTaken: false });
57449
58699
  onPriceChange({ isChecking: true, eth: 0, wei: 0n });
57450
58700
  debouncedCheckAvailability(_value);
@@ -57462,9 +58712,9 @@ const RegistrationSummary = ({
57462
58712
  debouncedCheckPrice(label, newYears);
57463
58713
  };
57464
58714
  const isNameAvailable = useMemo(() => {
57465
- return label.length >= MIN_ENS_LEN$1 && !nameValidation.isChecking && !nameValidation.isTaken;
58715
+ return label.length >= MIN_ENS_LEN$2 && !nameValidation.isChecking && !nameValidation.isTaken;
57466
58716
  }, [label.length, nameValidation.isChecking, nameValidation.isTaken]);
57467
- const nextBtnDisabled = label.length < MIN_ENS_LEN$1 || nameValidation.isChecking || nameValidation.isTaken;
58717
+ const nextBtnDisabled = label.length < MIN_ENS_LEN$2 || nameValidation.isChecking || nameValidation.isTaken;
57468
58718
  const totalPriceLoading = transactionFees?.isChecking || price.isChecking;
57469
58719
  const transactionFeesLoading = transactionFees?.isChecking || false;
57470
58720
  return /* @__PURE__ */ jsxs("div", { className: "ens-registration-summary", children: [
@@ -57491,8 +58741,8 @@ const RegistrationSummary = ({
57491
58741
  suffix: /* @__PURE__ */ jsx(Text$1, { weight: "medium", size: "sm", color: "grey", children: ".eth" })
57492
58742
  }
57493
58743
  ),
57494
- label.length < MIN_ENS_LEN$1 && /* @__PURE__ */ jsx("div", { className: "ns-text-center mt-2", children: /* @__PURE__ */ jsx(Text$1, { size: "xs", color: "grey", children: "Minimum ENS name length is 3 characters" }) }),
57495
- label.length >= MIN_ENS_LEN$1 && nameValidation.isChecking && /* @__PURE__ */ jsxs(
58744
+ label.length < MIN_ENS_LEN$2 && /* @__PURE__ */ jsx("div", { className: "ns-text-center mt-2", children: /* @__PURE__ */ jsx(Text$1, { size: "xs", color: "grey", children: "Minimum ENS name length is 3 characters" }) }),
58745
+ label.length >= MIN_ENS_LEN$2 && nameValidation.isChecking && /* @__PURE__ */ jsxs(
57496
58746
  "div",
57497
58747
  {
57498
58748
  className: "ns-text-center mt-2 d-flex align-items-center justify-content-center",
@@ -57503,7 +58753,7 @@ const RegistrationSummary = ({
57503
58753
  ]
57504
58754
  }
57505
58755
  ),
57506
- label.length >= MIN_ENS_LEN$1 && !nameValidation.isChecking && nameValidation.isTaken && /* @__PURE__ */ jsx("div", { className: "ns-text-center mt-2", children: /* @__PURE__ */ jsxs(Text$1, { size: "xs", color: "grey", children: [
58756
+ label.length >= MIN_ENS_LEN$2 && !nameValidation.isChecking && nameValidation.isTaken && /* @__PURE__ */ jsx("div", { className: "ns-text-center mt-2", children: /* @__PURE__ */ jsxs(Text$1, { size: "xs", color: "grey", children: [
57507
58757
  label,
57508
58758
  ".eth is not available"
57509
58759
  ] }) }),
@@ -58713,7 +59963,7 @@ const ReactConfetti = React52__default.forwardRef((props, ref) => jsx(ReactConfe
58713
59963
 
58714
59964
  var img = "data:image/png;base64,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";
58715
59965
 
58716
- const SuccessScreen = ({
59966
+ const SuccessScreen$1 = ({
58717
59967
  ensName,
58718
59968
  expiryInYears,
58719
59969
  registrationCost,
@@ -59131,7 +60381,7 @@ const EnsNameRegistrationForm = (props) => {
59131
60381
  }
59132
60382
  ),
59133
60383
  step === 2 /* Success */ && successData && /* @__PURE__ */ jsx(
59134
- SuccessScreen,
60384
+ SuccessScreen$1,
59135
60385
  {
59136
60386
  ensName: label,
59137
60387
  expiryInYears: successData.expiryInYears,
@@ -60429,7 +61679,7 @@ const MintSuccess = ({
60429
61679
  );
60430
61680
  };
60431
61681
 
60432
- const MIN_ENS_LEN = 1;
61682
+ const MIN_ENS_LEN$1 = 1;
60433
61683
  const SubnameMintForm = ({
60434
61684
  parentName,
60435
61685
  label,
@@ -60598,7 +61848,7 @@ const SubnameMintFormContent = ({
60598
61848
  []
60599
61849
  );
60600
61850
  useEffect(() => {
60601
- if (initialLabel && initialLabel.length >= MIN_ENS_LEN && connectedAddress) {
61851
+ if (initialLabel && initialLabel.length >= MIN_ENS_LEN$1 && connectedAddress) {
60602
61852
  setAvailability({ isAvailable: false, isChecking: true });
60603
61853
  setMintDetails((prev) => ({ ...prev, isChecking: true }));
60604
61854
  checkIsAvailable(`${initialLabel}.${parentName}`, chainId);
@@ -60672,7 +61922,7 @@ const SubnameMintFormContent = ({
60672
61922
  setLabel(_value);
60673
61923
  setGasEstimated(false);
60674
61924
  setTransactionFees((prev) => ({ ...prev, failed: false }));
60675
- if (_value.length >= MIN_ENS_LEN) {
61925
+ if (_value.length >= MIN_ENS_LEN$1) {
60676
61926
  setAvailability({ isAvailable: false, isChecking: true });
60677
61927
  setMintDetails({ ...mintDetails, isChecking: true });
60678
61928
  debouncedCheckAvailability(`${_value}.${parentName}`, chainId);
@@ -60756,7 +62006,7 @@ const SubnameMintFormContent = ({
60756
62006
  return label.length >= 1 && availability.isAvailable && !availability.isChecking && !blockingError && !isSubnameReserved;
60757
62007
  }, [label, availability, blockingError, isSubnameReserved]);
60758
62008
  useEffect(() => {
60759
- if (isAvailableForMint && !gasEstimated && label.length >= MIN_ENS_LEN) {
62009
+ if (isAvailableForMint && !gasEstimated && label.length >= MIN_ENS_LEN$1) {
60760
62010
  fetchGasEstimate(label, ensRecords);
60761
62011
  }
60762
62012
  }, [isAvailableForMint, gasEstimated, label]);
@@ -60764,7 +62014,7 @@ const SubnameMintFormContent = ({
60764
62014
  const newRecords = deepCopy(ensRecordTemplate);
60765
62015
  setEnsRecords(newRecords);
60766
62016
  setShowProfile(false);
60767
- if (label.length >= MIN_ENS_LEN) {
62017
+ if (label.length >= MIN_ENS_LEN$1) {
60768
62018
  fetchGasEstimate(label, newRecords);
60769
62019
  }
60770
62020
  };
@@ -60948,7 +62198,7 @@ const SubnameMintFormContent = ({
60948
62198
  {
60949
62199
  label,
60950
62200
  parentName,
60951
- minLength: MIN_ENS_LEN,
62201
+ minLength: MIN_ENS_LEN$1,
60952
62202
  disabled: !!blockingError || isMinting,
60953
62203
  isChecking: availability.isChecking,
60954
62204
  isAvailable: availability.isAvailable,
@@ -61001,6 +62251,556 @@ const SubnameMintFormContent = ({
61001
62251
  ] });
61002
62252
  };
61003
62253
 
62254
+ const coinTypeToChainName = (_coinType) => {
62255
+ const chainNames = Object.values(distExports.ChainName);
62256
+ for (const chainName of chainNames) {
62257
+ try {
62258
+ const coinType = distExports.getCoinType(chainName);
62259
+ if (_coinType === coinType || convertEVMChainIdToCoinType(coinType) === _coinType) {
62260
+ return chainName;
62261
+ }
62262
+ } catch (e) {
62263
+ continue;
62264
+ }
62265
+ }
62266
+ return null;
62267
+ };
62268
+ const parseContenthash = (contenthash) => {
62269
+ if (!contenthash) return void 0;
62270
+ for (const record of supportedContenthashRecords) {
62271
+ if (contenthash.startsWith(record.protocolPrefix)) {
62272
+ const value = contenthash.substring(record.protocolPrefix.length);
62273
+ return {
62274
+ protocol: record.protocol,
62275
+ value
62276
+ };
62277
+ }
62278
+ }
62279
+ if (contenthash.startsWith("Qm") || contenthash.startsWith("bafy")) {
62280
+ return {
62281
+ protocol: ContenthashProtocol.Ipfs,
62282
+ value: contenthash
62283
+ };
62284
+ }
62285
+ return void 0;
62286
+ };
62287
+ const offchainRecordsToEnsRecords = (subname) => {
62288
+ const ensRecords = {
62289
+ addresses: [],
62290
+ texts: []
62291
+ };
62292
+ if (subname.texts) {
62293
+ Object.keys(subname.texts).forEach((key) => {
62294
+ ensRecords.texts.push({ key, value: subname.texts[key] });
62295
+ });
62296
+ }
62297
+ if (subname.addresses) {
62298
+ Object.keys(subname.addresses).forEach((keyStr) => {
62299
+ const keyNum = parseInt(keyStr, 10);
62300
+ const value = subname.addresses[keyStr];
62301
+ if (isNaN(keyNum) || !value) return;
62302
+ let coinType;
62303
+ if (keyNum >= 2147483648) {
62304
+ coinType = keyNum;
62305
+ } else {
62306
+ const evmChain = supportedAddresses.find(
62307
+ (addr) => addr.chainId === keyNum && addr.isEMV
62308
+ );
62309
+ if (evmChain) {
62310
+ coinType = convertEVMChainIdToCoinType(keyNum);
62311
+ } else {
62312
+ coinType = keyNum;
62313
+ }
62314
+ }
62315
+ ensRecords.addresses.push({ coinType, value });
62316
+ });
62317
+ }
62318
+ if (subname.contenthash) {
62319
+ const parsedContenthash = parseContenthash(subname.contenthash);
62320
+ if (parsedContenthash) {
62321
+ ensRecords.contenthash = parsedContenthash;
62322
+ }
62323
+ }
62324
+ return ensRecords;
62325
+ };
62326
+
62327
+ const SuccessScreen = ({ fullSubname, isUpdateMode, onContinue }) => {
62328
+ const actionText = isUpdateMode ? "updated" : "created";
62329
+ return /* @__PURE__ */ jsx("div", { className: "ns-offchain-subname-form", children: /* @__PURE__ */ jsx("div", { style: { padding: 15 }, children: /* @__PURE__ */ jsxs("div", { className: "ns-text-center", children: [
62330
+ /* @__PURE__ */ jsx("div", { style: { marginBottom: "20px" }, children: /* @__PURE__ */ jsx(
62331
+ "img",
62332
+ {
62333
+ src: img,
62334
+ alt: "Success",
62335
+ style: { width: "120px", height: "auto" }
62336
+ }
62337
+ ) }),
62338
+ /* @__PURE__ */ jsxs(Text$1, { size: "sm", color: "grey", className: "mb-2", children: [
62339
+ "Hooray! You've ",
62340
+ actionText
62341
+ ] }),
62342
+ /* @__PURE__ */ jsx(Text$1, { size: "lg", weight: "bold", className: "mb-3", children: fullSubname }),
62343
+ /* @__PURE__ */ jsx(
62344
+ Button,
62345
+ {
62346
+ variant: "solid",
62347
+ size: "lg",
62348
+ onClick: onContinue,
62349
+ className: "ns-wd-100 mt-3",
62350
+ children: "Great!"
62351
+ }
62352
+ )
62353
+ ] }) }) });
62354
+ };
62355
+
62356
+ const FormHeader = ({ isUpdateMode, label, parentName, showFullName }) => {
62357
+ const smallTitle = isUpdateMode ? "Update subname" : "Create subname";
62358
+ return /* @__PURE__ */ jsxs("div", { className: "ns-text-center mb-3", children: [
62359
+ /* @__PURE__ */ jsx(Text$1, { size: "sm", color: "grey", className: "mb-1", children: smallTitle }),
62360
+ showFullName && /* @__PURE__ */ jsxs(Text$1, { size: "lg", weight: "bold", children: [
62361
+ label,
62362
+ ".",
62363
+ parentName
62364
+ ] })
62365
+ ] });
62366
+ };
62367
+
62368
+ const SubnameInput = ({
62369
+ value,
62370
+ parentName,
62371
+ isUpdateMode,
62372
+ isLoading,
62373
+ isChecking,
62374
+ isDisabled,
62375
+ isAvailable,
62376
+ minLength,
62377
+ onChange
62378
+ }) => {
62379
+ return /* @__PURE__ */ jsxs("div", { children: [
62380
+ /* @__PURE__ */ jsx(
62381
+ Input,
62382
+ {
62383
+ value,
62384
+ onChange: (e) => onChange(e.target.value),
62385
+ disabled: isDisabled,
62386
+ size: "lg",
62387
+ placeholder: isUpdateMode ? "Updating subname" : "Enter subname",
62388
+ wrapperClassName: "ns-offchain-subname-input",
62389
+ prefix: /* @__PURE__ */ jsx(Icon, { color: "grey", size: 20, name: "search" }),
62390
+ suffix: isLoading || isChecking ? /* @__PURE__ */ jsx("div", { style: { display: "flex", alignItems: "center", minWidth: "80px", justifyContent: "center" }, children: /* @__PURE__ */ jsx(ShurikenSpinner, { size: 18 }) }) : /* @__PURE__ */ jsx("div", { style: { minWidth: "80px", display: "flex", alignItems: "center", justifyContent: "center" }, children: /* @__PURE__ */ jsxs(Text$1, { weight: "medium", size: "sm", color: "grey", children: [
62391
+ ".",
62392
+ parentName
62393
+ ] }) })
62394
+ }
62395
+ ),
62396
+ value.length > 0 && value.length < minLength && /* @__PURE__ */ jsx("div", { className: "ns-text-center mt-2", children: /* @__PURE__ */ jsxs(Text$1, { size: "xs", color: "grey", children: [
62397
+ "Minimum subname length is ",
62398
+ minLength,
62399
+ " character"
62400
+ ] }) }),
62401
+ !isUpdateMode && value.length >= minLength && !isChecking && !isLoading && !isAvailable && /* @__PURE__ */ jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsxs(Text$1, { size: "xs", color: "grey", children: [
62402
+ value,
62403
+ ".",
62404
+ parentName,
62405
+ " is not available"
62406
+ ] }) })
62407
+ ] });
62408
+ };
62409
+
62410
+ const OwnerAddressInput = ({ value, error, onChange }) => {
62411
+ return /* @__PURE__ */ jsxs("div", { className: "mt-2", children: [
62412
+ /* @__PURE__ */ jsx(
62413
+ Input,
62414
+ {
62415
+ value,
62416
+ onChange: (e) => onChange(e.target.value),
62417
+ placeholder: "Owner Address (Optional)",
62418
+ size: "lg",
62419
+ wrapperClassName: "ns-offchain-owner-input"
62420
+ }
62421
+ ),
62422
+ error && /* @__PURE__ */ jsx("div", { className: "mt-1", children: /* @__PURE__ */ jsx(Text$1, { size: "xs", color: "grey", children: error }) })
62423
+ ] });
62424
+ };
62425
+
62426
+ const useOwnerValidation = () => {
62427
+ const [ownerAddressError, setOwnerAddressError] = useState(null);
62428
+ const validateOwnerAddress = useCallback((address) => {
62429
+ if (!address || address.trim() === "") {
62430
+ setOwnerAddressError(null);
62431
+ return true;
62432
+ }
62433
+ if (!/^0x[a-fA-F0-9]{40}$/.test(address)) {
62434
+ setOwnerAddressError("Invalid Ethereum address");
62435
+ return false;
62436
+ }
62437
+ setOwnerAddressError(null);
62438
+ return true;
62439
+ }, []);
62440
+ const clearError = useCallback(() => {
62441
+ setOwnerAddressError(null);
62442
+ }, []);
62443
+ return {
62444
+ ownerAddressError,
62445
+ validateOwnerAddress,
62446
+ clearError
62447
+ };
62448
+ };
62449
+
62450
+ const useSubnameChecker = (client, parentName) => {
62451
+ const [isLoadingSubname, setIsLoadingSubname] = useState(false);
62452
+ const [error, setError] = useState(null);
62453
+ const checkSubname = useCallback(async (label) => {
62454
+ setIsLoadingSubname(true);
62455
+ setError(null);
62456
+ try {
62457
+ const fullSubname = `${label}.${parentName}`;
62458
+ const subname = await client.getSingleSubname(fullSubname);
62459
+ if (!subname) {
62460
+ setIsLoadingSubname(false);
62461
+ return { exists: false };
62462
+ }
62463
+ const records = offchainRecordsToEnsRecords(subname);
62464
+ const owner = subname.owner || "";
62465
+ setIsLoadingSubname(false);
62466
+ return {
62467
+ exists: true,
62468
+ records,
62469
+ owner
62470
+ };
62471
+ } catch (err) {
62472
+ if (err?.response?.status === 404 || err?.status === 404 || err?.message?.includes("404") || err?.message?.includes("not found")) {
62473
+ setIsLoadingSubname(false);
62474
+ return { exists: false };
62475
+ }
62476
+ console.error("Error checking subname:", err);
62477
+ setError(err?.message || "Failed to check subname");
62478
+ setIsLoadingSubname(false);
62479
+ throw err;
62480
+ }
62481
+ }, [client, parentName]);
62482
+ return {
62483
+ isLoadingSubname,
62484
+ error,
62485
+ setError,
62486
+ checkSubname
62487
+ };
62488
+ };
62489
+
62490
+ const buildSubnameRequest = (ensRecords, ownerAddress) => {
62491
+ const addresses = ensRecords.addresses.map((addr) => {
62492
+ const chainName = coinTypeToChainName(addr.coinType);
62493
+ if (!chainName) {
62494
+ console.warn(`Unsupported coin type: ${addr.coinType}, skipping...`);
62495
+ return null;
62496
+ }
62497
+ return {
62498
+ chain: chainName,
62499
+ value: addr.value
62500
+ };
62501
+ }).filter((addr) => addr !== null);
62502
+ const texts = ensRecords.texts.map((text) => ({
62503
+ key: text.key,
62504
+ value: text.value
62505
+ }));
62506
+ const request = {
62507
+ addresses,
62508
+ texts
62509
+ };
62510
+ if (ownerAddress && ownerAddress.trim() !== "") {
62511
+ request.owner = ownerAddress;
62512
+ }
62513
+ return request;
62514
+ };
62515
+
62516
+ const MIN_ENS_LEN = 1;
62517
+ const OffchainSubnameForm = ({
62518
+ apiKeyOrToken,
62519
+ name,
62520
+ label: propLabel,
62521
+ hideTitle = false,
62522
+ onCancel,
62523
+ onSuccess
62524
+ }) => {
62525
+ const client = useOffchainManager(name, apiKeyOrToken);
62526
+ const [label, setLabel] = useState(propLabel || "");
62527
+ const [showProfile, setShowProfile] = useState(false);
62528
+ const [createStep, setCreateStep] = useState("form" /* Form */);
62529
+ const [successData, setSuccessData] = useState(null);
62530
+ const [isUpdateMode, setIsUpdateMode] = useState(false);
62531
+ const [initialOwner, setInitialOwner] = useState("");
62532
+ const [createError, setCreateError] = useState(null);
62533
+ const [ensRecordTemplate, setEnsRecordsTemplate] = useState({
62534
+ addresses: [],
62535
+ texts: []
62536
+ });
62537
+ const [ensRecords, setEnsRecords] = useState({
62538
+ addresses: [],
62539
+ texts: []
62540
+ });
62541
+ const [baselineRecords, setBaselineRecords] = useState({
62542
+ addresses: [],
62543
+ texts: []
62544
+ });
62545
+ const hasRecordsDifference = useMemo(() => {
62546
+ return getEnsRecordsDiff(ensRecords, ensRecordTemplate).isDifferent;
62547
+ }, [ensRecords, ensRecordTemplate]);
62548
+ const [availability, setAvailability] = useState({
62549
+ isChecking: false,
62550
+ isAvailable: true
62551
+ });
62552
+ const [ownerAddress, setOwnerAddress] = useState("");
62553
+ const { ownerAddressError, validateOwnerAddress, clearError: clearOwnerError } = useOwnerValidation();
62554
+ const [isCreating, setIsCreating] = useState(false);
62555
+ const { isLoadingSubname, error: checkError, checkSubname } = useSubnameChecker(client, name);
62556
+ const checkSubnameExists = async (subnameLabel) => {
62557
+ setAvailability({ isAvailable: false, isChecking: false });
62558
+ try {
62559
+ const result = await checkSubname(subnameLabel);
62560
+ if (!result.exists) {
62561
+ setIsUpdateMode(false);
62562
+ setAvailability({ isAvailable: true, isChecking: false });
62563
+ setEnsRecords({ addresses: [], texts: [] });
62564
+ setEnsRecordsTemplate({ addresses: [], texts: [] });
62565
+ setBaselineRecords({ addresses: [], texts: [] });
62566
+ setOwnerAddress("");
62567
+ setInitialOwner("");
62568
+ setShowProfile(false);
62569
+ return;
62570
+ }
62571
+ setIsUpdateMode(true);
62572
+ setAvailability({ isAvailable: false, isChecking: false });
62573
+ const records = result.records || { addresses: [], texts: [] };
62574
+ const owner = result.owner || "";
62575
+ setEnsRecords(records);
62576
+ setEnsRecordsTemplate(deepCopy(records));
62577
+ setBaselineRecords(deepCopy(records));
62578
+ setOwnerAddress(owner);
62579
+ setInitialOwner(owner);
62580
+ } catch (err) {
62581
+ setAvailability({ isAvailable: false, isChecking: false });
62582
+ setIsUpdateMode(false);
62583
+ }
62584
+ };
62585
+ const debouncedCheckSubnameExists = useCallback(
62586
+ debounce$1((subnameLabel) => checkSubnameExists(subnameLabel), 500),
62587
+ [client, name]
62588
+ );
62589
+ useEffect(() => {
62590
+ if (propLabel && propLabel.length >= MIN_ENS_LEN) {
62591
+ checkSubnameExists(propLabel);
62592
+ }
62593
+ }, [propLabel]);
62594
+ const handleNameChanged = async (value) => {
62595
+ const _value = value.toLowerCase().trim();
62596
+ if (_value.includes(".")) {
62597
+ return;
62598
+ }
62599
+ try {
62600
+ normalize(_value);
62601
+ } catch (err) {
62602
+ return;
62603
+ }
62604
+ setLabel(_value);
62605
+ if (_value.length >= MIN_ENS_LEN) {
62606
+ setAvailability({ isAvailable: false, isChecking: true });
62607
+ debouncedCheckSubnameExists(_value);
62608
+ } else {
62609
+ setAvailability({ isAvailable: false, isChecking: false });
62610
+ }
62611
+ };
62612
+ const handleSaveRecords = () => {
62613
+ const newRecords = deepCopy(ensRecordTemplate);
62614
+ setEnsRecords(newRecords);
62615
+ setShowProfile(false);
62616
+ };
62617
+ const handleCancelRecords = () => {
62618
+ setEnsRecordsTemplate(deepCopy(ensRecords));
62619
+ setShowProfile(false);
62620
+ };
62621
+ const handleOwnerAddressChange = (value) => {
62622
+ setOwnerAddress(value);
62623
+ if (value) {
62624
+ validateOwnerAddress(value);
62625
+ } else {
62626
+ clearOwnerError();
62627
+ }
62628
+ };
62629
+ const handleCreate = async () => {
62630
+ setCreateError(null);
62631
+ setIsCreating(true);
62632
+ if (ownerAddress && !validateOwnerAddress(ownerAddress)) {
62633
+ setIsCreating(false);
62634
+ return;
62635
+ }
62636
+ try {
62637
+ if (ensRecords.addresses.length > 0 || ensRecords.texts.length > 0) {
62638
+ const validation = validateEnsRecords(ensRecords);
62639
+ if (validation.validationFailed) {
62640
+ setCreateError(
62641
+ validation.errors?.length > 0 ? validation.errors[0].reason : "Invalid records"
62642
+ );
62643
+ setIsCreating(false);
62644
+ return;
62645
+ }
62646
+ }
62647
+ const requestData = buildSubnameRequest(ensRecords, ownerAddress);
62648
+ if (isUpdateMode) {
62649
+ const fullSubname = `${label}.${name}`;
62650
+ await client.updateSubname(fullSubname, requestData);
62651
+ } else {
62652
+ const createRequest = {
62653
+ parentName: name,
62654
+ label,
62655
+ ...requestData
62656
+ };
62657
+ await client.createSubname(createRequest);
62658
+ }
62659
+ await refreshSubnameData();
62660
+ } catch (err) {
62661
+ console.error("Create/Update error:", err);
62662
+ setCreateError(err?.message || `Failed to ${isUpdateMode ? "update" : "create"} subname`);
62663
+ } finally {
62664
+ setIsCreating(false);
62665
+ }
62666
+ };
62667
+ const refreshSubnameData = async () => {
62668
+ const fullSubname = `${label}.${name}`;
62669
+ const updatedSubname = await client.getSingleSubname(fullSubname);
62670
+ const latestRecords = updatedSubname ? offchainRecordsToEnsRecords(updatedSubname) : ensRecords;
62671
+ setBaselineRecords(deepCopy(latestRecords));
62672
+ setEnsRecords(latestRecords);
62673
+ setEnsRecordsTemplate(deepCopy(latestRecords));
62674
+ const latestOwner = updatedSubname?.owner || (ownerAddress && ownerAddress.trim() !== "" ? ownerAddress : "");
62675
+ setInitialOwner(latestOwner);
62676
+ setOwnerAddress(latestOwner);
62677
+ const data = {
62678
+ label,
62679
+ parentName: name,
62680
+ fullSubname: `${label}.${name}`,
62681
+ records: latestRecords,
62682
+ ownerAddress: latestOwner || void 0
62683
+ };
62684
+ setSuccessData(data);
62685
+ setCreateStep("success" /* Success */);
62686
+ onSuccess?.(data);
62687
+ };
62688
+ const handleCreateAnother = () => {
62689
+ setSuccessData(null);
62690
+ setCreateError(null);
62691
+ setCreateStep("form" /* Form */);
62692
+ if (label && label.length >= MIN_ENS_LEN) {
62693
+ checkSubnameExists(label);
62694
+ }
62695
+ };
62696
+ const hasRecordChanges = useMemo(() => {
62697
+ if (!isUpdateMode) return true;
62698
+ if (ownerAddress !== initialOwner) {
62699
+ return true;
62700
+ }
62701
+ const diff = getEnsRecordsDiff(ensRecords, baselineRecords);
62702
+ return diff.isDifferent;
62703
+ }, [isUpdateMode, ensRecords, baselineRecords, ownerAddress, initialOwner]);
62704
+ const isAvailableForCreate = useMemo(() => {
62705
+ if (isUpdateMode) {
62706
+ return label.length >= MIN_ENS_LEN && !isLoadingSubname && hasRecordChanges;
62707
+ }
62708
+ return label.length >= MIN_ENS_LEN && availability.isAvailable && !availability.isChecking;
62709
+ }, [label, availability, isUpdateMode, isLoadingSubname, hasRecordChanges]);
62710
+ if (showProfile) {
62711
+ return /* @__PURE__ */ jsx(
62712
+ SetSubnameRecords,
62713
+ {
62714
+ records: ensRecordTemplate,
62715
+ onRecordsChange: setEnsRecordsTemplate,
62716
+ onCancel: handleCancelRecords,
62717
+ onSave: handleSaveRecords,
62718
+ hasChanges: hasRecordsDifference
62719
+ },
62720
+ `${label}-${isUpdateMode ? "update" : "create"}`
62721
+ );
62722
+ }
62723
+ if (createStep === "success" /* Success */ && successData) {
62724
+ return /* @__PURE__ */ jsx(
62725
+ SuccessScreen,
62726
+ {
62727
+ fullSubname: successData.fullSubname,
62728
+ isUpdateMode,
62729
+ onContinue: handleCreateAnother
62730
+ }
62731
+ );
62732
+ }
62733
+ const showFullName = isUpdateMode || !isUpdateMode && label.length >= MIN_ENS_LEN;
62734
+ const actionButtonText = isUpdateMode ? "Update" : "Create";
62735
+ const errorMessage = createError || checkError;
62736
+ return /* @__PURE__ */ jsx("div", { className: "ns-offchain-subname-form", children: /* @__PURE__ */ jsxs("div", { style: { padding: 15 }, children: [
62737
+ !hideTitle && /* @__PURE__ */ jsx(
62738
+ FormHeader,
62739
+ {
62740
+ isUpdateMode,
62741
+ label,
62742
+ parentName: name,
62743
+ showFullName
62744
+ }
62745
+ ),
62746
+ /* @__PURE__ */ jsx(
62747
+ SubnameInput,
62748
+ {
62749
+ value: label,
62750
+ parentName: name,
62751
+ isUpdateMode,
62752
+ isLoading: isLoadingSubname,
62753
+ isChecking: availability.isChecking,
62754
+ isDisabled: isCreating,
62755
+ isAvailable: availability.isAvailable,
62756
+ minLength: MIN_ENS_LEN,
62757
+ onChange: handleNameChanged
62758
+ }
62759
+ ),
62760
+ label.length >= MIN_ENS_LEN && /* @__PURE__ */ jsxs(Fragment, { children: [
62761
+ /* @__PURE__ */ jsx(
62762
+ OwnerAddressInput,
62763
+ {
62764
+ value: ownerAddress,
62765
+ error: ownerAddressError,
62766
+ onChange: handleOwnerAddressChange
62767
+ }
62768
+ ),
62769
+ /* @__PURE__ */ jsx(
62770
+ ProfileSelector,
62771
+ {
62772
+ onSelect: () => setShowProfile(true)
62773
+ },
62774
+ `${label}-${isUpdateMode ? "update" : "create"}`
62775
+ )
62776
+ ] }),
62777
+ errorMessage && /* @__PURE__ */ jsx("div", { className: "mt-2", children: /* @__PURE__ */ jsx(Alert, { variant: "error", position: "vertical", children: /* @__PURE__ */ jsx(Text$1, { size: "sm", children: errorMessage }) }) }),
62778
+ /* @__PURE__ */ jsxs("div", { className: "ens-update-records-form-actions mt-2", children: [
62779
+ /* @__PURE__ */ jsx(
62780
+ Button,
62781
+ {
62782
+ variant: "outline",
62783
+ size: "lg",
62784
+ onClick: onCancel,
62785
+ disabled: isCreating,
62786
+ children: "Cancel"
62787
+ }
62788
+ ),
62789
+ /* @__PURE__ */ jsx(
62790
+ Button,
62791
+ {
62792
+ variant: "solid",
62793
+ size: "lg",
62794
+ disabled: !isAvailableForCreate || isCreating || !!ownerAddressError,
62795
+ onClick: handleCreate,
62796
+ loading: isCreating,
62797
+ children: isCreating ? isUpdateMode ? "Updating..." : "Creating..." : actionButtonText
62798
+ }
62799
+ )
62800
+ ] })
62801
+ ] }) });
62802
+ };
62803
+
61004
62804
  const ThemeContext = createContext(void 0);
61005
62805
  const ThemeProvider = ({
61006
62806
  initialTheme = "light",
@@ -68755,5 +70555,5 @@ var walletConnectWalletYHWKVTDY = /*#__PURE__*/Object.freeze({
68755
70555
  default: walletConnectWallet_default
68756
70556
  });
68757
70557
 
68758
- export { Accordion, Alert, Button, Card, ChainIcon, ConnectAndSetChain, ContenthashIcon, ContenthashProtocol, ContractErrorLabel, Dropdown, ENS_RESOLVER_ABI, EnsNameRegistrationForm, EnsRecordsForm, Icon, Input, ListingNetwork, ListingType, MULTICALL, Modal, PricingDisplay, ProfileHeader, ProgressBar, SET_ADDRESS_FUNC, SET_CONTENTHASH_FUNC, SET_TEXT_FUNC, SelectRecordsForm, ShurikenSpinner, SubnameMintForm, Text$1 as Text, TextRecordCategory, Textarea, ThemeProvider, Tooltip, TxProgress, WalletConnectProvider, capitalize, convertEVMChainIdToCoinType, convertToMulticallResolverData, convertToResolverData, createEnsReferer, debounce$1 as debounce, deepCopy, diffToEnsRecords, ensureFloatInput, equalsIgnoreCase, formatFloat, getBlockExplorer, getBlockExplorerAddressUrl, getBlockExplorerName, getBlockExplorerTransactionUrl, getChainIdForListingNetwork, getEnsAppUrl, getEnsRecordsDiff, getSupportedAddressByChainId, getSupportedAddressByCoin, getSupportedAddressByName, getSupportedAddressMap, getSupportedChashByProtocol, getSupportedText, isCommitmentToNewErr, isContenthashValid, isUserDeniedError, supportedAddresses, supportedContenthashRecords, supportedTexts, useENSResolver, useMintManager, useMintSubname, useRegisterENS, useTheme, useWaitTransaction, validateEnsRecords };
70558
+ export { Accordion, Alert, Button, Card, ChainIcon, ConnectAndSetChain, ContenthashIcon, ContenthashProtocol, ContractErrorLabel, Dropdown, ENS_RESOLVER_ABI, EnsNameRegistrationForm, EnsRecordsForm, Icon, Input, ListingNetwork, ListingType, MULTICALL, Modal, OffchainSubnameForm, PricingDisplay, ProfileHeader, ProgressBar, SET_ADDRESS_FUNC, SET_CONTENTHASH_FUNC, SET_TEXT_FUNC, SelectRecordsForm, ShurikenSpinner, SubnameMintForm, Text$1 as Text, TextRecordCategory, Textarea, ThemeProvider, Tooltip, TxProgress, WalletConnectProvider, capitalize, convertEVMChainIdToCoinType, convertToMulticallResolverData, convertToResolverData, createEnsReferer, debounce$1 as debounce, deepCopy, diffToEnsRecords, ensureFloatInput, equalsIgnoreCase, formatFloat, getBlockExplorer, getBlockExplorerAddressUrl, getBlockExplorerName, getBlockExplorerTransactionUrl, getChainIdForListingNetwork, getEnsAppUrl, getEnsRecordsDiff, getSupportedAddressByChainId, getSupportedAddressByCoin, getSupportedAddressByName, getSupportedAddressMap, getSupportedChashByProtocol, getSupportedText, isCommitmentToNewErr, isContenthashValid, isUserDeniedError, supportedAddresses, supportedContenthashRecords, supportedTexts, useENSResolver, useMintManager, useMintSubname, useOffchainManager, useRegisterENS, useTheme, useWaitTransaction, validateEnsRecords };
68759
70559
  //# sourceMappingURL=index.js.map