@partylayer/sdk 0.2.5 → 0.2.7

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
@@ -5,9 +5,16 @@ var registryClient = require('@partylayer/registry-client');
5
5
  var adapterConsole = require('@partylayer/adapter-console');
6
6
  var adapterLoop = require('@partylayer/adapter-loop');
7
7
  var adapterCantor8 = require('@partylayer/adapter-cantor8');
8
+ var adapterNightly = require('@partylayer/adapter-nightly');
8
9
  var adapterBron = require('@partylayer/adapter-bron');
10
+ var provider = require('@partylayer/provider');
9
11
 
10
- // src/client.ts
12
+ var __require = /* @__PURE__ */ ((x) => typeof require !== "undefined" ? require : typeof Proxy !== "undefined" ? new Proxy(x, {
13
+ get: (a, b) => (typeof require !== "undefined" ? require : a)[b]
14
+ }) : x)(function(x) {
15
+ if (typeof require !== "undefined") return require.apply(this, arguments);
16
+ throw Error('Dynamic require of "' + x + '" is not supported');
17
+ });
11
18
 
12
19
  // src/config.ts
13
20
  var DEFAULT_REGISTRY_URL = "https://registry.partylayer.xyz";
@@ -166,12 +173,196 @@ function getBuiltinAdapters() {
166
173
  // Console Wallet - browser extension
167
174
  new adapterLoop.LoopAdapter(),
168
175
  // 5N Loop - QR code / popup
169
- new adapterCantor8.Cantor8Adapter()
176
+ new adapterCantor8.Cantor8Adapter(),
170
177
  // Cantor8 - deep link transport
178
+ new adapterNightly.NightlyAdapter()
179
+ // Nightly - multichain wallet (injected)
171
180
  ];
172
181
  }
173
-
174
- // src/client.ts
182
+ var SDK_VERSION = "0.3.0";
183
+ var MetricsTelemetryAdapter = class {
184
+ config;
185
+ metrics = /* @__PURE__ */ new Map();
186
+ buffer = [];
187
+ flushTimer = null;
188
+ appIdHash = null;
189
+ originHash = null;
190
+ initialized = false;
191
+ constructor(config) {
192
+ this.config = {
193
+ enabled: config.enabled ?? false,
194
+ endpoint: config.endpoint,
195
+ sampleRate: config.sampleRate ?? 1,
196
+ appId: config.appId,
197
+ includeOrigin: config.includeOrigin ?? false,
198
+ batchSize: config.batchSize ?? 10,
199
+ flushIntervalMs: config.flushIntervalMs ?? 3e4,
200
+ network: config.network
201
+ };
202
+ this.initialize();
203
+ }
204
+ /**
205
+ * Initialize async components (hashing)
206
+ */
207
+ async initialize() {
208
+ if (this.initialized) return;
209
+ if (this.config.appId) {
210
+ this.appIdHash = await core.hashForPrivacy(this.config.appId);
211
+ }
212
+ if (this.config.includeOrigin && typeof window !== "undefined") {
213
+ this.originHash = await core.hashForPrivacy(window.location.origin);
214
+ }
215
+ if (this.config.enabled && this.config.flushIntervalMs) {
216
+ this.flushTimer = setInterval(() => {
217
+ this.flush().catch(console.error);
218
+ }, this.config.flushIntervalMs);
219
+ }
220
+ this.initialized = true;
221
+ }
222
+ /**
223
+ * Check if telemetry is enabled
224
+ */
225
+ isEnabled() {
226
+ return this.config.enabled;
227
+ }
228
+ /**
229
+ * Track a named event (TelemetryAdapter interface)
230
+ */
231
+ track(event, properties) {
232
+ if (!this.config.enabled) return;
233
+ const sampleRate = this.config.sampleRate ?? 1;
234
+ if (sampleRate < 1 && Math.random() >= sampleRate) {
235
+ return;
236
+ }
237
+ const current = this.metrics.get(`event_${event}`) ?? 0;
238
+ this.metrics.set(`event_${event}`, current + 1);
239
+ this.bufferEvent({ type: "increment", metric: `event_${event}`, value: 1, timestamp: Date.now() });
240
+ if (properties) {
241
+ for (const [key, value] of Object.entries(properties)) {
242
+ if (typeof value === "number") {
243
+ this.gauge(`${event}_${key}`, value);
244
+ }
245
+ }
246
+ }
247
+ }
248
+ /**
249
+ * Track an error (TelemetryAdapter interface)
250
+ */
251
+ error(error, properties) {
252
+ if (!this.config.enabled) return;
253
+ const code = error.code ?? "UNKNOWN";
254
+ this.increment(`error_${code}`);
255
+ if (properties) {
256
+ this.track("error", properties);
257
+ }
258
+ }
259
+ /**
260
+ * Increment a metric counter
261
+ */
262
+ increment(metric, value = 1) {
263
+ if (!this.config.enabled) return;
264
+ const sampleRate = this.config.sampleRate ?? 1;
265
+ if (sampleRate < 1 && Math.random() >= sampleRate) {
266
+ return;
267
+ }
268
+ const current = this.metrics.get(metric) ?? 0;
269
+ this.metrics.set(metric, current + value);
270
+ this.bufferEvent({
271
+ type: "increment",
272
+ metric,
273
+ value,
274
+ timestamp: Date.now()
275
+ });
276
+ }
277
+ /**
278
+ * Set a gauge metric value
279
+ */
280
+ gauge(metric, value) {
281
+ if (!this.config.enabled) return;
282
+ this.metrics.set(metric, value);
283
+ this.bufferEvent({
284
+ type: "gauge",
285
+ metric,
286
+ value,
287
+ timestamp: Date.now()
288
+ });
289
+ }
290
+ /**
291
+ * Buffer an event for batched sending
292
+ */
293
+ bufferEvent(event) {
294
+ this.buffer.push(event);
295
+ if (this.config.batchSize && this.buffer.length >= this.config.batchSize) {
296
+ this.flush().catch(console.error);
297
+ }
298
+ }
299
+ /**
300
+ * Flush buffered metrics to backend
301
+ */
302
+ async flush() {
303
+ if (!this.config.enabled) return;
304
+ if (this.metrics.size === 0) return;
305
+ if (!this.config.endpoint) {
306
+ this.buffer = [];
307
+ return;
308
+ }
309
+ if (!this.initialized) {
310
+ await this.initialize();
311
+ }
312
+ try {
313
+ const payload = core.createMetricsPayload({
314
+ sdkVersion: SDK_VERSION,
315
+ network: this.config.network ?? "unknown",
316
+ metrics: Object.fromEntries(this.metrics),
317
+ appIdHash: this.appIdHash ?? void 0,
318
+ originHash: this.originHash ?? void 0
319
+ });
320
+ await fetch(this.config.endpoint, {
321
+ method: "POST",
322
+ headers: {
323
+ "Content-Type": "application/json"
324
+ },
325
+ body: JSON.stringify(payload)
326
+ });
327
+ this.buffer = [];
328
+ } catch (error) {
329
+ console.debug("[PartyLayer Telemetry] Flush failed:", error);
330
+ }
331
+ }
332
+ /**
333
+ * Get current metrics snapshot (for testing/debugging)
334
+ */
335
+ getMetrics() {
336
+ return Object.fromEntries(this.metrics);
337
+ }
338
+ /**
339
+ * Reset all metrics (for testing)
340
+ */
341
+ reset() {
342
+ this.metrics.clear();
343
+ this.buffer = [];
344
+ }
345
+ /**
346
+ * Destroy the adapter (cleanup timers)
347
+ */
348
+ destroy() {
349
+ if (this.flushTimer) {
350
+ clearInterval(this.flushTimer);
351
+ this.flushTimer = null;
352
+ }
353
+ this.flush().catch(console.error);
354
+ }
355
+ };
356
+ function isTelemetryConfig(value) {
357
+ return typeof value === "object" && value !== null && "enabled" in value && typeof value.enabled === "boolean";
358
+ }
359
+ function createTelemetryAdapter(config) {
360
+ if (!config) return void 0;
361
+ if (isTelemetryConfig(config)) {
362
+ return new MetricsTelemetryAdapter(config);
363
+ }
364
+ return config;
365
+ }
175
366
  var PartyLayerClient = class {
176
367
  config;
177
368
  adapters = /* @__PURE__ */ new Map();
@@ -196,7 +387,8 @@ var PartyLayerClient = class {
196
387
  this.logger = config.logger || new DefaultLogger();
197
388
  this.crypto = config.crypto || new DefaultCrypto();
198
389
  this.storage = config.storage || new DefaultStorage();
199
- this.telemetry = config.telemetry || new DefaultTelemetry();
390
+ const telemetryAdapter = createTelemetryAdapter(config.telemetry);
391
+ this.telemetry = telemetryAdapter || new DefaultTelemetry();
200
392
  const adaptersToRegister = config.adapters ?? getBuiltinAdapters();
201
393
  for (const adapterOrClass of adaptersToRegister) {
202
394
  let adapter;
@@ -242,33 +434,49 @@ var PartyLayerClient = class {
242
434
  * List available wallets
243
435
  */
244
436
  async listWallets(filter) {
437
+ let registryWallets;
245
438
  try {
246
- const allWalletInfos = await this.registryClient.getWallets();
439
+ registryWallets = await this.registryClient.getWallets();
247
440
  this.updateRegistryStatus();
248
- if (filter?.requiredCapabilities) {
249
- return allWalletInfos.filter(
250
- (walletInfo) => filter.requiredCapabilities.every(
251
- (cap) => walletInfo.capabilities.includes(cap)
252
- )
253
- );
254
- }
255
- if (!filter?.includeExperimental) {
256
- return allWalletInfos.filter((walletInfo) => walletInfo.channel === "stable");
257
- }
258
- return allWalletInfos;
259
441
  } catch (err) {
260
442
  this.updateRegistryStatus();
261
- const error = core.mapUnknownErrorToPartyLayerError(err, {
262
- phase: "connect"
443
+ this.logger.warn("Registry fetch failed, using registered adapters only", {
444
+ error: err instanceof Error ? err.message : String(err)
263
445
  });
264
- this.emit("error", { type: "error", error });
265
- throw error;
446
+ registryWallets = [];
266
447
  }
448
+ const registryIds = new Set(registryWallets.map((w) => String(w.walletId)));
449
+ for (const [, adapter] of this.adapters) {
450
+ if (registryIds.has(String(adapter.walletId))) continue;
451
+ registryWallets.push({
452
+ walletId: adapter.walletId,
453
+ name: adapter.name,
454
+ website: "",
455
+ icons: {},
456
+ capabilities: adapter.getCapabilities(),
457
+ adapter: { packageName: "builtin", versionRange: "*" },
458
+ docs: [],
459
+ networks: [this.config.network || "devnet"],
460
+ channel: "stable"
461
+ });
462
+ }
463
+ if (filter?.requiredCapabilities) {
464
+ return registryWallets.filter(
465
+ (walletInfo) => filter.requiredCapabilities.every(
466
+ (cap) => walletInfo.capabilities.includes(cap)
467
+ )
468
+ );
469
+ }
470
+ if (!filter?.includeExperimental) {
471
+ return registryWallets.filter((walletInfo) => walletInfo.channel === "stable");
472
+ }
473
+ return registryWallets;
267
474
  }
268
475
  /**
269
476
  * Connect to a wallet
270
477
  */
271
478
  async connect(options) {
479
+ this.telemetry?.increment?.(core.METRICS.WALLET_CONNECT_ATTEMPTS);
272
480
  try {
273
481
  const wallets = await this.listWallets({
274
482
  requiredCapabilities: options?.requiredCapabilities,
@@ -280,31 +488,33 @@ var PartyLayerClient = class {
280
488
  (w) => options.allowWallets.includes(w.walletId)
281
489
  );
282
490
  }
283
- if (options?.preferInstalled) {
284
- const installedWallets = [];
285
- const notInstalledWallets = [];
286
- for (const wallet of availableWallets) {
287
- const adapter2 = this.adapters.get(wallet.walletId);
288
- if (adapter2) {
289
- const detect = await adapter2.detectInstalled();
290
- if (detect.installed) {
291
- installedWallets.push(wallet);
292
- } else {
293
- notInstalledWallets.push(wallet);
294
- }
295
- } else {
296
- notInstalledWallets.push(wallet);
297
- }
298
- }
299
- availableWallets = [...installedWallets, ...notInstalledWallets];
300
- }
301
491
  let selectedWallet;
492
+ let isNativeWallet = false;
302
493
  if (options?.walletId) {
303
- selectedWallet = availableWallets.find(
494
+ const found = availableWallets.find(
304
495
  (w) => w.walletId === options.walletId
305
496
  );
306
- if (!selectedWallet) {
307
- throw new core.WalletNotFoundError(String(options.walletId));
497
+ if (found) {
498
+ selectedWallet = found;
499
+ } else {
500
+ const nativeAdapter = this.adapters.get(options.walletId);
501
+ if (nativeAdapter) {
502
+ isNativeWallet = true;
503
+ selectedWallet = {
504
+ walletId: options.walletId,
505
+ name: nativeAdapter.name,
506
+ website: "",
507
+ icons: {},
508
+ capabilities: nativeAdapter.getCapabilities(),
509
+ adapter: { packageName: "native-cip0103", versionRange: "*" },
510
+ docs: [],
511
+ networks: [this.config.network],
512
+ channel: "stable",
513
+ metadata: { source: "native-cip0103" }
514
+ };
515
+ } else {
516
+ throw new core.WalletNotFoundError(String(options.walletId));
517
+ }
308
518
  }
309
519
  } else if (availableWallets.length === 0) {
310
520
  throw new core.WalletNotFoundError("No wallets available");
@@ -315,14 +525,22 @@ var PartyLayerClient = class {
315
525
  if (!adapter) {
316
526
  throw new core.WalletNotFoundError(String(selectedWallet.walletId));
317
527
  }
318
- const walletEntry = await this.registryClient.getWalletEntry(String(selectedWallet.walletId));
319
- if (walletEntry.originAllowlist && walletEntry.originAllowlist.length > 0) {
320
- if (!walletEntry.originAllowlist.includes(this.origin)) {
321
- const { OriginNotAllowedError: OriginNotAllowedError2 } = await import('@partylayer/core');
322
- throw new OriginNotAllowedError2(
323
- this.origin,
324
- walletEntry.originAllowlist
325
- );
528
+ if (!isNativeWallet) {
529
+ try {
530
+ const walletEntry = await this.registryClient.getWalletEntry(String(selectedWallet.walletId));
531
+ if (walletEntry.originAllowlist && walletEntry.originAllowlist.length > 0) {
532
+ if (!walletEntry.originAllowlist.includes(this.origin)) {
533
+ const { OriginNotAllowedError: OriginNotAllowedError2 } = await import('@partylayer/core');
534
+ throw new OriginNotAllowedError2(
535
+ this.origin,
536
+ walletEntry.originAllowlist
537
+ );
538
+ }
539
+ }
540
+ } catch (e) {
541
+ if (!(e instanceof core.WalletNotFoundError)) {
542
+ throw e;
543
+ }
326
544
  }
327
545
  }
328
546
  if (options?.requiredCapabilities) {
@@ -356,6 +574,8 @@ var PartyLayerClient = class {
356
574
  await this.persistSession(session);
357
575
  this.activeSession = session;
358
576
  this.updateRegistryStatus();
577
+ this.telemetry?.increment?.(core.METRICS.WALLET_CONNECT_SUCCESS);
578
+ this.telemetry?.increment?.(core.METRICS.SESSIONS_CREATED);
359
579
  this.emit("session:connected", {
360
580
  type: "session:connected",
361
581
  session
@@ -515,6 +735,33 @@ var PartyLayerClient = class {
515
735
  throw error;
516
736
  }
517
737
  }
738
+ /**
739
+ * Proxy a JSON Ledger API request through the active wallet adapter
740
+ */
741
+ async ledgerApi(params) {
742
+ const session = await this.getActiveSession();
743
+ if (!session) {
744
+ throw new Error("No active session");
745
+ }
746
+ const adapter = this.adapters.get(session.walletId);
747
+ if (!adapter || !adapter.ledgerApi) {
748
+ throw new core.CapabilityNotSupportedError(
749
+ session.walletId,
750
+ "ledgerApi"
751
+ );
752
+ }
753
+ try {
754
+ const ctx = this.createAdapterContext();
755
+ return await adapter.ledgerApi(ctx, session, params);
756
+ } catch (err) {
757
+ const error = core.mapUnknownErrorToPartyLayerError(err, {
758
+ phase: "ledgerApi",
759
+ walletId: String(session.walletId)
760
+ });
761
+ this.emit("error", { type: "error", error });
762
+ throw error;
763
+ }
764
+ }
518
765
  /**
519
766
  * Subscribe to events
520
767
  */
@@ -536,10 +783,36 @@ var PartyLayerClient = class {
536
783
  handlers.delete(handler);
537
784
  }
538
785
  }
786
+ /**
787
+ * Get a CIP-0103 Provider backed by this client.
788
+ *
789
+ * This bridge routes all request() calls through the existing
790
+ * PartyLayerClient methods and maps events to CIP-0103 format.
791
+ *
792
+ * The bridge implements the full CIP-0103 specification:
793
+ * - All 10 mandatory methods including `ledgerApi` (when adapter supports it)
794
+ * - Full transaction lifecycle: pending -> signed -> executed/failed
795
+ * - All CIP-0103 events: statusChanged, accountsChanged, txChanged, connected
796
+ *
797
+ * **Note:** Async wallets (userUrl pattern) are not supported through the
798
+ * bridge. For async wallet support, use `PartyLayerProvider` directly.
799
+ *
800
+ * @returns CIP-0103 compliant Provider
801
+ */
802
+ asProvider() {
803
+ const { createProviderBridge: createProviderBridge2 } = __require("@partylayer/provider");
804
+ return createProviderBridge2(this);
805
+ }
539
806
  /**
540
807
  * Destroy client and cleanup
541
808
  */
542
809
  destroy() {
810
+ if (this.telemetry && "destroy" in this.telemetry && typeof this.telemetry.destroy === "function") {
811
+ this.telemetry.destroy();
812
+ } else if (this.telemetry?.flush) {
813
+ this.telemetry.flush().catch(() => {
814
+ });
815
+ }
543
816
  this.eventHandlers.clear();
544
817
  this.activeSession = null;
545
818
  }
@@ -593,6 +866,7 @@ var PartyLayerClient = class {
593
866
  * Restore session from storage
594
867
  */
595
868
  async restoreSession() {
869
+ this.telemetry?.increment?.(core.METRICS.RESTORE_ATTEMPTS);
596
870
  try {
597
871
  const encrypted = await this.storage.get("active_session");
598
872
  if (!encrypted) {
@@ -617,6 +891,8 @@ var PartyLayerClient = class {
617
891
  if (restored) {
618
892
  this.activeSession = restored;
619
893
  await this.persistSession(restored);
894
+ this.telemetry?.increment?.(core.METRICS.SESSIONS_RESTORED);
895
+ this.telemetry?.increment?.(core.METRICS.WALLET_CONNECT_SUCCESS);
620
896
  this.emit("session:connected", {
621
897
  type: "session:connected",
622
898
  session: restored
@@ -644,6 +920,14 @@ var PartyLayerClient = class {
644
920
  updateRegistryStatus() {
645
921
  const status = this.registryClient.getStatus();
646
922
  if (status) {
923
+ if (status.source === "network") {
924
+ this.telemetry?.increment?.(core.METRICS.REGISTRY_FETCH);
925
+ } else if (status.source === "cache") {
926
+ this.telemetry?.increment?.(core.METRICS.REGISTRY_CACHE_HIT);
927
+ }
928
+ if (status.stale) {
929
+ this.telemetry?.increment?.(core.METRICS.REGISTRY_STALE);
930
+ }
647
931
  this.emit("registry:status", {
648
932
  type: "registry:status",
649
933
  status: {
@@ -669,6 +953,12 @@ var PartyLayerClient = class {
669
953
  * Emit event to handlers
670
954
  */
671
955
  emit(event, payload) {
956
+ if (event === "error" && "error" in payload) {
957
+ const error = payload.error;
958
+ if (error.code) {
959
+ this.telemetry?.increment?.(core.errorMetricName(error.code));
960
+ }
961
+ }
672
962
  const handlers = this.eventHandlers.get(event);
673
963
  if (handlers) {
674
964
  for (const handler of handlers) {
@@ -693,10 +983,22 @@ Object.defineProperty(exports, "CapabilityNotSupportedError", {
693
983
  enumerable: true,
694
984
  get: function () { return core.CapabilityNotSupportedError; }
695
985
  });
986
+ Object.defineProperty(exports, "ENABLEMENT_METRICS", {
987
+ enumerable: true,
988
+ get: function () { return core.ENABLEMENT_METRICS; }
989
+ });
990
+ Object.defineProperty(exports, "ERROR_METRICS", {
991
+ enumerable: true,
992
+ get: function () { return core.ERROR_METRICS; }
993
+ });
696
994
  Object.defineProperty(exports, "InternalError", {
697
995
  enumerable: true,
698
996
  get: function () { return core.InternalError; }
699
997
  });
998
+ Object.defineProperty(exports, "METRICS", {
999
+ enumerable: true,
1000
+ get: function () { return core.METRICS; }
1001
+ });
700
1002
  Object.defineProperty(exports, "OriginNotAllowedError", {
701
1003
  enumerable: true,
702
1004
  get: function () { return core.OriginNotAllowedError; }
@@ -705,6 +1007,10 @@ Object.defineProperty(exports, "PartyLayerError", {
705
1007
  enumerable: true,
706
1008
  get: function () { return core.PartyLayerError; }
707
1009
  });
1010
+ Object.defineProperty(exports, "REGISTRY_METRICS", {
1011
+ enumerable: true,
1012
+ get: function () { return core.REGISTRY_METRICS; }
1013
+ });
708
1014
  Object.defineProperty(exports, "RegistryFetchFailedError", {
709
1015
  enumerable: true,
710
1016
  get: function () { return core.RegistryFetchFailedError; }
@@ -741,6 +1047,10 @@ Object.defineProperty(exports, "WalletNotInstalledError", {
741
1047
  enumerable: true,
742
1048
  get: function () { return core.WalletNotInstalledError; }
743
1049
  });
1050
+ Object.defineProperty(exports, "errorMetricName", {
1051
+ enumerable: true,
1052
+ get: function () { return core.errorMetricName; }
1053
+ });
744
1054
  Object.defineProperty(exports, "ConsoleAdapter", {
745
1055
  enumerable: true,
746
1056
  get: function () { return adapterConsole.ConsoleAdapter; }
@@ -753,15 +1063,86 @@ Object.defineProperty(exports, "Cantor8Adapter", {
753
1063
  enumerable: true,
754
1064
  get: function () { return adapterCantor8.Cantor8Adapter; }
755
1065
  });
1066
+ Object.defineProperty(exports, "NightlyAdapter", {
1067
+ enumerable: true,
1068
+ get: function () { return adapterNightly.NightlyAdapter; }
1069
+ });
756
1070
  Object.defineProperty(exports, "BronAdapter", {
757
1071
  enumerable: true,
758
1072
  get: function () { return adapterBron.BronAdapter; }
759
1073
  });
1074
+ Object.defineProperty(exports, "CANTON_NETWORKS", {
1075
+ enumerable: true,
1076
+ get: function () { return provider.CANTON_NETWORKS; }
1077
+ });
1078
+ Object.defineProperty(exports, "CIP0103EventBus", {
1079
+ enumerable: true,
1080
+ get: function () { return provider.CIP0103EventBus; }
1081
+ });
1082
+ Object.defineProperty(exports, "CIP0103_EVENTS", {
1083
+ enumerable: true,
1084
+ get: function () { return provider.CIP0103_EVENTS; }
1085
+ });
1086
+ Object.defineProperty(exports, "CIP0103_MANDATORY_METHODS", {
1087
+ enumerable: true,
1088
+ get: function () { return provider.CIP0103_MANDATORY_METHODS; }
1089
+ });
1090
+ Object.defineProperty(exports, "CIP0103_METHODS", {
1091
+ enumerable: true,
1092
+ get: function () { return provider.CIP0103_METHODS; }
1093
+ });
1094
+ Object.defineProperty(exports, "JSON_RPC_ERRORS", {
1095
+ enumerable: true,
1096
+ get: function () { return provider.JSON_RPC_ERRORS; }
1097
+ });
1098
+ Object.defineProperty(exports, "PartyLayerProvider", {
1099
+ enumerable: true,
1100
+ get: function () { return provider.PartyLayerProvider; }
1101
+ });
1102
+ Object.defineProperty(exports, "ProviderRpcError", {
1103
+ enumerable: true,
1104
+ get: function () { return provider.ProviderRpcError; }
1105
+ });
1106
+ Object.defineProperty(exports, "RPC_ERRORS", {
1107
+ enumerable: true,
1108
+ get: function () { return provider.RPC_ERRORS; }
1109
+ });
1110
+ Object.defineProperty(exports, "createProviderBridge", {
1111
+ enumerable: true,
1112
+ get: function () { return provider.createProviderBridge; }
1113
+ });
1114
+ Object.defineProperty(exports, "discoverInjectedProviders", {
1115
+ enumerable: true,
1116
+ get: function () { return provider.discoverInjectedProviders; }
1117
+ });
1118
+ Object.defineProperty(exports, "fromCAIP2Network", {
1119
+ enumerable: true,
1120
+ get: function () { return provider.fromCAIP2Network; }
1121
+ });
1122
+ Object.defineProperty(exports, "isCIP0103Provider", {
1123
+ enumerable: true,
1124
+ get: function () { return provider.isCIP0103Provider; }
1125
+ });
1126
+ Object.defineProperty(exports, "isValidCAIP2", {
1127
+ enumerable: true,
1128
+ get: function () { return provider.isValidCAIP2; }
1129
+ });
1130
+ Object.defineProperty(exports, "toCAIP2Network", {
1131
+ enumerable: true,
1132
+ get: function () { return provider.toCAIP2Network; }
1133
+ });
1134
+ Object.defineProperty(exports, "waitForProvider", {
1135
+ enumerable: true,
1136
+ get: function () { return provider.waitForProvider; }
1137
+ });
760
1138
  exports.CantonConnectClient = PartyLayerClient;
761
1139
  exports.DEFAULT_REGISTRY_URL = DEFAULT_REGISTRY_URL;
1140
+ exports.MetricsTelemetryAdapter = MetricsTelemetryAdapter;
762
1141
  exports.PartyLayerClient = PartyLayerClient;
763
1142
  exports.createCantonConnect = createPartyLayer;
764
1143
  exports.createPartyLayer = createPartyLayer;
1144
+ exports.createTelemetryAdapter = createTelemetryAdapter;
765
1145
  exports.getBuiltinAdapters = getBuiltinAdapters;
1146
+ exports.isTelemetryConfig = isTelemetryConfig;
766
1147
  //# sourceMappingURL=index.js.map
767
1148
  //# sourceMappingURL=index.js.map