@mocanetwork/airkit-connector 1.7.0 → 1.8.0-beta.2

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.
@@ -94,7 +94,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
94
94
  var e = new Error(message);
95
95
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
96
96
  };
97
- var version$2 = "1.7.0";
97
+ var version$2 = "1.8.0-beta.2";
98
98
  var airkitPackage = {
99
99
  version: version$2
100
100
  };
@@ -590,6 +590,12 @@ const BUILD_ENV = {
590
590
  const IFRAME_NAME_PREFIX_SET = ["air-wallet", "air-credential", "air-auth", "air-recovery"]; // order defines the z-index from highest to lowest
591
591
 
592
592
  const FONT_CDNS = ["https://fonts.googleapis.com", "https://fonts.gstatic.com"];
593
+ const SANDBOX_TESTNET_URLS = {
594
+ authUrl: "https://account.sandbox-testnet.air3.com/auth/",
595
+ walletUrl: "https://account.sandbox-testnet.air3.com/wallet/",
596
+ recoveryUrl: "https://account.sandbox-testnet.air3.com/recovery/",
597
+ credentialUrl: "https://account.sandbox-testnet.air3.com/credential/"
598
+ };
593
599
  const AIR_URLS = {
594
600
  [BUILD_ENV.DEVELOPMENT]: {
595
601
  authUrl: "https://localhost:8200/auth/",
@@ -622,6 +628,12 @@ const AIR_URLS = {
622
628
  credentialUrl: "https://account.air3.com/credential/"
623
629
  }
624
630
  };
631
+ const getAirUrls = (buildEnv, credentialNetwork) => {
632
+ if (buildEnv === BUILD_ENV.SANDBOX && credentialNetwork === "testnet") {
633
+ return SANDBOX_TESTNET_URLS;
634
+ }
635
+ return AIR_URLS[buildEnv];
636
+ };
625
637
  /**
626
638
  * Injects dns-prefetch, preconnect, and prefetch link tags
627
639
  * for a given resource or page URL.
@@ -642,7 +654,7 @@ const addResourceHints = (url, options) => {
642
654
  const link = document.createElement("link");
643
655
  link.rel = rel;
644
656
  link.href = href;
645
- if (as) link.as = as;
657
+ if (as) ;
646
658
  if (crossOrigin) link.crossOrigin = "anonymous";
647
659
  head.appendChild(link);
648
660
  };
@@ -652,8 +664,27 @@ const addResourceHints = (url, options) => {
652
664
  // Preconnect (TCP + TLS warm-up)
653
665
  addLink("preconnect", parsed.origin, undefined, isCrossOrigin);
654
666
  // Prefetch (optional — caches the resource or HTML document)
655
- if (options?.prefetch !== false) {
656
- addLink("prefetch", parsed.href, options?.as ?? "document", isCrossOrigin);
667
+ if (options?.prefetch !== false && HTMLScriptElement.supports && HTMLScriptElement.supports("speculationrules")) {
668
+ const scriptId = `speculation-${btoa(parsed.href).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")}`;
669
+ if (!document.getElementById(scriptId)) {
670
+ const script = document.createElement("script");
671
+ script.id = scriptId;
672
+ script.type = "speculationrules";
673
+ const sources = [{
674
+ source: "list",
675
+ urls: [parsed.href],
676
+ eagerness: "immediate"
677
+ }];
678
+ const rules = {
679
+ ...((options?.as ?? "document") === "document" ? {
680
+ prerender: sources
681
+ } : {
682
+ prefetch: sources
683
+ })
684
+ };
685
+ script.textContent = JSON.stringify(rules);
686
+ document.body.appendChild(script);
687
+ }
657
688
  }
658
689
  } catch (err) {
659
690
  log$1.warn("[addResourceHints] Invalid URL:", url, err);
@@ -2129,7 +2160,7 @@ class IframeController {
2129
2160
  if (this._iframeElement) return this._iframeElement;
2130
2161
  const iframe = document.createElement("iframe");
2131
2162
  iframe.id = this.iframeId;
2132
- iframe.allow = "publickey-credentials-get *; publickey-credentials-create *";
2163
+ iframe.allow = ["publickey-credentials-get *", "publickey-credentials-create *", "ch-ua-model", "ch-ua-platform-version"].join("; ");
2133
2164
  iframe.src = this.iframeUrl;
2134
2165
  iframe.style.position = "fixed";
2135
2166
  iframe.style.zIndex = `${this.getZIndex()}`;
@@ -2351,7 +2382,12 @@ class WalletMessageService extends MessageServiceBase {
2351
2382
  const response = firstValueFrom(this.messages$.pipe(filter(msg => msg.type === AirWalletMessageTypes.SHOW_SWAP_UI_RESPONSE)));
2352
2383
  await this.sendMessage({
2353
2384
  type: AirWalletMessageTypes.SHOW_SWAP_UI_REQUEST,
2354
- payload
2385
+ payload: {
2386
+ initialFromToken: payload?.initialFromToken,
2387
+ fallbackFromToken: payload?.fallbackFromToken,
2388
+ initialToToken: payload?.initialToToken,
2389
+ defaultSlippage: payload?.defaultSlippage?.toString() // TODO refactor to all be numbers
2390
+ }
2355
2391
  });
2356
2392
  return response;
2357
2393
  }
@@ -2574,7 +2610,7 @@ class WindowService {
2574
2610
  }
2575
2611
  }
2576
2612
  var WindowService$1 = WindowService.instance;
2577
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_sessionId, _AirService_sessionConfig, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airEventListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_assertInitialized, _AirService_assertLoggedIn, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
2613
+ var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_sessionId, _AirService_sessionConfig, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airEventListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_credentialNetwork, _AirService_assertInitialized, _AirService_assertLoggedIn, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
2578
2614
  const airKitVersion = airkitPackage.version;
2579
2615
  class AirService {
2580
2616
  constructor({
@@ -2603,6 +2639,7 @@ class AirService {
2603
2639
  _AirService_credentialsInitialization.set(this, void 0);
2604
2640
  _AirService_credentialMessagingService.set(this, void 0);
2605
2641
  _AirService_credentialIframeController.set(this, void 0);
2642
+ _AirService_credentialNetwork.set(this, void 0);
2606
2643
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId);
2607
2644
  __classPrivateFieldSet(this, _AirService_authMessagingService, AuthMessageService.create());
2608
2645
  __classPrivateFieldSet(this, _AirService_walletMessagingService, WalletMessageService.create());
@@ -2643,22 +2680,25 @@ class AirService {
2643
2680
  shouldEnableAutomation() {
2644
2681
  return localStorage.getItem("automation") === "true" && __classPrivateFieldGet$1(this, _AirService_buildEnv, "f") !== BUILD_ENV.PRODUCTION;
2645
2682
  }
2646
- async init({
2647
- buildEnv = BUILD_ENV.PRODUCTION,
2648
- enableLogging = false,
2649
- skipRehydration = false,
2650
- sessionConfig = undefined,
2651
- preloadWallet = false,
2652
- preloadCredential = false
2653
- }) {
2683
+ async init(config) {
2684
+ const {
2685
+ buildEnv = BUILD_ENV.PRODUCTION,
2686
+ enableLogging = false,
2687
+ skipRehydration = false,
2688
+ sessionConfig = undefined,
2689
+ preloadWallet = false,
2690
+ preloadCredential = false,
2691
+ credentialNetwork = "testnet"
2692
+ } = config;
2654
2693
  if (!__classPrivateFieldGet$1(this, _AirService_partnerId, "f")) throw new AirServiceError("CLIENT_ERROR", "Partner ID is required to initialize the service");
2655
2694
  if (__classPrivateFieldGet$1(this, _AirService_isAuthInitialized, "f")) return __classPrivateFieldGet$1(this, _AirService_loginResult, "f") ?? null;
2695
+ __classPrivateFieldSet(this, _AirService_credentialNetwork, buildEnv === BUILD_ENV.SANDBOX ? credentialNetwork : undefined);
2656
2696
  configureLogLevel(buildEnv, enableLogging);
2657
2697
  const {
2658
2698
  authUrl,
2659
2699
  walletUrl,
2660
2700
  credentialUrl
2661
- } = AIR_URLS[buildEnv];
2701
+ } = getAirUrls(buildEnv, __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
2662
2702
  addResourceHints(authUrl);
2663
2703
  if (preloadWallet) {
2664
2704
  addResourceHints(walletUrl);
@@ -2848,9 +2888,7 @@ class AirService {
2848
2888
  if (result.payload.success === false) {
2849
2889
  throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2850
2890
  }
2851
- return {
2852
- txHash: result.payload.txHash
2853
- };
2891
+ return result.payload;
2854
2892
  }
2855
2893
  /**
2856
2894
  * @experimental This feature has not been officially released and might change in the future.
@@ -2900,7 +2938,8 @@ class AirService {
2900
2938
  }
2901
2939
  }
2902
2940
  const sessionConfig = {
2903
- locale: results[0].payload.locale
2941
+ locale: results[0].payload.locale,
2942
+ currency: results[0].payload.currency
2904
2943
  };
2905
2944
  __classPrivateFieldSet(this, _AirService_sessionConfig, sessionConfig);
2906
2945
  return sessionConfig;
@@ -2964,23 +3003,29 @@ class AirService {
2964
3003
  authToken,
2965
3004
  issuerDid,
2966
3005
  credentialId,
2967
- credentialSubject
3006
+ credentialSubject,
3007
+ curve
2968
3008
  }) {
2969
3009
  await __classPrivateFieldGet$1(this, _AirService_instances, "m", _AirService_ensureCredential).call(this);
2970
- const {
2971
- payload
2972
- } = await __classPrivateFieldGet$1(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
3010
+ const response = await __classPrivateFieldGet$1(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
2973
3011
  partnerToken: authToken,
2974
3012
  issuerDid,
2975
3013
  credentialId,
2976
- credentialSubject
3014
+ credentialSubject,
3015
+ curve
2977
3016
  });
3017
+ const {
3018
+ payload
3019
+ } = response;
2978
3020
  if (payload.closeDApp) {
2979
3021
  window.close();
2980
3022
  }
2981
3023
  if (payload.success === false) {
2982
3024
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2983
3025
  }
3026
+ return {
3027
+ cakPublicKey: payload.cakPublicKey
3028
+ };
2984
3029
  }
2985
3030
  async verifyCredential({
2986
3031
  authToken,
@@ -3001,7 +3046,7 @@ class AirService {
3001
3046
  return payload.verificationResult;
3002
3047
  }
3003
3048
  }
3004
- _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_sessionId = new WeakMap(), _AirService_sessionConfig = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airEventListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_assertInitialized = function _AirService_assertInitialized() {
3049
+ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_sessionId = new WeakMap(), _AirService_sessionConfig = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airEventListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_credentialNetwork = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_assertInitialized = function _AirService_assertInitialized() {
3005
3050
  if (!__classPrivateFieldGet$1(this, _AirService_isAuthInitialized, "f")) throw new AirServiceError("NOT_INITIALIZED", "Service is not initialized");
3006
3051
  }, _AirService_assertLoggedIn = function _AirService_assertLoggedIn() {
3007
3052
  __classPrivateFieldGet$1(this, _AirService_instances, "m", _AirService_assertInitialized).call(this);
@@ -3023,7 +3068,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3023
3068
  }
3024
3069
  const {
3025
3070
  credentialUrl
3026
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3071
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3027
3072
  const credentialIframeOrigin = new URL(credentialUrl).origin;
3028
3073
  let closeDApp = false;
3029
3074
  try {
@@ -3041,7 +3086,10 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3041
3086
  sdkVersion: airKitVersion,
3042
3087
  partnerDAppUrl: window.location.href,
3043
3088
  enableAutomation: this.shouldEnableAutomation(),
3044
- sessionConfig: __classPrivateFieldGet$1(this, _AirService_sessionConfig, "f")
3089
+ sessionConfig: __classPrivateFieldGet$1(this, _AirService_sessionConfig, "f"),
3090
+ ...(__classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f") && {
3091
+ credentialNetwork: __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f")
3092
+ })
3045
3093
  });
3046
3094
  if (payload.success === true) {
3047
3095
  resolve();
@@ -3117,7 +3165,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3117
3165
  if (__classPrivateFieldGet$1(this, _AirService_walletInitialization, "f")) throw new AirServiceError("ALREADY_INITIALIZING", "Already initializing");
3118
3166
  const {
3119
3167
  walletUrl
3120
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3168
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3121
3169
  const walletIframeOrigin = new URL(walletUrl).origin;
3122
3170
  try {
3123
3171
  const walletInitRequestPromise = new Promise((resolve, reject) => {
@@ -3304,7 +3352,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3304
3352
  if (__classPrivateFieldGet$1(this, _AirService_recoveryInitialization, "f")) throw new AirServiceError("ALREADY_INITIALIZING", "Already initializing");
3305
3353
  const {
3306
3354
  recoveryUrl
3307
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3355
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3308
3356
  const recoveryIframeOrigin = new URL(recoveryUrl).origin;
3309
3357
  try {
3310
3358
  const recoveryInitRequestPromise = new Promise((resolve, reject) => {
@@ -92,7 +92,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
92
92
  var e = new Error(message);
93
93
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
94
94
  };
95
- var version$2 = "1.7.0";
95
+ var version$2 = "1.8.0-beta.2";
96
96
  var airkitPackage = {
97
97
  version: version$2
98
98
  };
@@ -588,6 +588,12 @@ const BUILD_ENV = {
588
588
  const IFRAME_NAME_PREFIX_SET = ["air-wallet", "air-credential", "air-auth", "air-recovery"]; // order defines the z-index from highest to lowest
589
589
 
590
590
  const FONT_CDNS = ["https://fonts.googleapis.com", "https://fonts.gstatic.com"];
591
+ const SANDBOX_TESTNET_URLS = {
592
+ authUrl: "https://account.sandbox-testnet.air3.com/auth/",
593
+ walletUrl: "https://account.sandbox-testnet.air3.com/wallet/",
594
+ recoveryUrl: "https://account.sandbox-testnet.air3.com/recovery/",
595
+ credentialUrl: "https://account.sandbox-testnet.air3.com/credential/"
596
+ };
591
597
  const AIR_URLS = {
592
598
  [BUILD_ENV.DEVELOPMENT]: {
593
599
  authUrl: "https://localhost:8200/auth/",
@@ -620,6 +626,12 @@ const AIR_URLS = {
620
626
  credentialUrl: "https://account.air3.com/credential/"
621
627
  }
622
628
  };
629
+ const getAirUrls = (buildEnv, credentialNetwork) => {
630
+ if (buildEnv === BUILD_ENV.SANDBOX && credentialNetwork === "testnet") {
631
+ return SANDBOX_TESTNET_URLS;
632
+ }
633
+ return AIR_URLS[buildEnv];
634
+ };
623
635
  /**
624
636
  * Injects dns-prefetch, preconnect, and prefetch link tags
625
637
  * for a given resource or page URL.
@@ -640,7 +652,7 @@ const addResourceHints = (url, options) => {
640
652
  const link = document.createElement("link");
641
653
  link.rel = rel;
642
654
  link.href = href;
643
- if (as) link.as = as;
655
+ if (as) ;
644
656
  if (crossOrigin) link.crossOrigin = "anonymous";
645
657
  head.appendChild(link);
646
658
  };
@@ -650,8 +662,27 @@ const addResourceHints = (url, options) => {
650
662
  // Preconnect (TCP + TLS warm-up)
651
663
  addLink("preconnect", parsed.origin, undefined, isCrossOrigin);
652
664
  // Prefetch (optional — caches the resource or HTML document)
653
- if (options?.prefetch !== false) {
654
- addLink("prefetch", parsed.href, options?.as ?? "document", isCrossOrigin);
665
+ if (options?.prefetch !== false && HTMLScriptElement.supports && HTMLScriptElement.supports("speculationrules")) {
666
+ const scriptId = `speculation-${btoa(parsed.href).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")}`;
667
+ if (!document.getElementById(scriptId)) {
668
+ const script = document.createElement("script");
669
+ script.id = scriptId;
670
+ script.type = "speculationrules";
671
+ const sources = [{
672
+ source: "list",
673
+ urls: [parsed.href],
674
+ eagerness: "immediate"
675
+ }];
676
+ const rules = {
677
+ ...((options?.as ?? "document") === "document" ? {
678
+ prerender: sources
679
+ } : {
680
+ prefetch: sources
681
+ })
682
+ };
683
+ script.textContent = JSON.stringify(rules);
684
+ document.body.appendChild(script);
685
+ }
655
686
  }
656
687
  } catch (err) {
657
688
  log$1.warn("[addResourceHints] Invalid URL:", url, err);
@@ -2127,7 +2158,7 @@ class IframeController {
2127
2158
  if (this._iframeElement) return this._iframeElement;
2128
2159
  const iframe = document.createElement("iframe");
2129
2160
  iframe.id = this.iframeId;
2130
- iframe.allow = "publickey-credentials-get *; publickey-credentials-create *";
2161
+ iframe.allow = ["publickey-credentials-get *", "publickey-credentials-create *", "ch-ua-model", "ch-ua-platform-version"].join("; ");
2131
2162
  iframe.src = this.iframeUrl;
2132
2163
  iframe.style.position = "fixed";
2133
2164
  iframe.style.zIndex = `${this.getZIndex()}`;
@@ -2349,7 +2380,12 @@ class WalletMessageService extends MessageServiceBase {
2349
2380
  const response = firstValueFrom(this.messages$.pipe(filter(msg => msg.type === AirWalletMessageTypes.SHOW_SWAP_UI_RESPONSE)));
2350
2381
  await this.sendMessage({
2351
2382
  type: AirWalletMessageTypes.SHOW_SWAP_UI_REQUEST,
2352
- payload
2383
+ payload: {
2384
+ initialFromToken: payload?.initialFromToken,
2385
+ fallbackFromToken: payload?.fallbackFromToken,
2386
+ initialToToken: payload?.initialToToken,
2387
+ defaultSlippage: payload?.defaultSlippage?.toString() // TODO refactor to all be numbers
2388
+ }
2353
2389
  });
2354
2390
  return response;
2355
2391
  }
@@ -2572,7 +2608,7 @@ class WindowService {
2572
2608
  }
2573
2609
  }
2574
2610
  var WindowService$1 = WindowService.instance;
2575
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_sessionId, _AirService_sessionConfig, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airEventListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_assertInitialized, _AirService_assertLoggedIn, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
2611
+ var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_sessionId, _AirService_sessionConfig, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airEventListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_credentialNetwork, _AirService_assertInitialized, _AirService_assertLoggedIn, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
2576
2612
  const airKitVersion = airkitPackage.version;
2577
2613
  class AirService {
2578
2614
  constructor({
@@ -2601,6 +2637,7 @@ class AirService {
2601
2637
  _AirService_credentialsInitialization.set(this, void 0);
2602
2638
  _AirService_credentialMessagingService.set(this, void 0);
2603
2639
  _AirService_credentialIframeController.set(this, void 0);
2640
+ _AirService_credentialNetwork.set(this, void 0);
2604
2641
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId);
2605
2642
  __classPrivateFieldSet(this, _AirService_authMessagingService, AuthMessageService.create());
2606
2643
  __classPrivateFieldSet(this, _AirService_walletMessagingService, WalletMessageService.create());
@@ -2641,22 +2678,25 @@ class AirService {
2641
2678
  shouldEnableAutomation() {
2642
2679
  return localStorage.getItem("automation") === "true" && __classPrivateFieldGet$1(this, _AirService_buildEnv, "f") !== BUILD_ENV.PRODUCTION;
2643
2680
  }
2644
- async init({
2645
- buildEnv = BUILD_ENV.PRODUCTION,
2646
- enableLogging = false,
2647
- skipRehydration = false,
2648
- sessionConfig = undefined,
2649
- preloadWallet = false,
2650
- preloadCredential = false
2651
- }) {
2681
+ async init(config) {
2682
+ const {
2683
+ buildEnv = BUILD_ENV.PRODUCTION,
2684
+ enableLogging = false,
2685
+ skipRehydration = false,
2686
+ sessionConfig = undefined,
2687
+ preloadWallet = false,
2688
+ preloadCredential = false,
2689
+ credentialNetwork = "testnet"
2690
+ } = config;
2652
2691
  if (!__classPrivateFieldGet$1(this, _AirService_partnerId, "f")) throw new AirServiceError("CLIENT_ERROR", "Partner ID is required to initialize the service");
2653
2692
  if (__classPrivateFieldGet$1(this, _AirService_isAuthInitialized, "f")) return __classPrivateFieldGet$1(this, _AirService_loginResult, "f") ?? null;
2693
+ __classPrivateFieldSet(this, _AirService_credentialNetwork, buildEnv === BUILD_ENV.SANDBOX ? credentialNetwork : undefined);
2654
2694
  configureLogLevel(buildEnv, enableLogging);
2655
2695
  const {
2656
2696
  authUrl,
2657
2697
  walletUrl,
2658
2698
  credentialUrl
2659
- } = AIR_URLS[buildEnv];
2699
+ } = getAirUrls(buildEnv, __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
2660
2700
  addResourceHints(authUrl);
2661
2701
  if (preloadWallet) {
2662
2702
  addResourceHints(walletUrl);
@@ -2846,9 +2886,7 @@ class AirService {
2846
2886
  if (result.payload.success === false) {
2847
2887
  throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2848
2888
  }
2849
- return {
2850
- txHash: result.payload.txHash
2851
- };
2889
+ return result.payload;
2852
2890
  }
2853
2891
  /**
2854
2892
  * @experimental This feature has not been officially released and might change in the future.
@@ -2898,7 +2936,8 @@ class AirService {
2898
2936
  }
2899
2937
  }
2900
2938
  const sessionConfig = {
2901
- locale: results[0].payload.locale
2939
+ locale: results[0].payload.locale,
2940
+ currency: results[0].payload.currency
2902
2941
  };
2903
2942
  __classPrivateFieldSet(this, _AirService_sessionConfig, sessionConfig);
2904
2943
  return sessionConfig;
@@ -2962,23 +3001,29 @@ class AirService {
2962
3001
  authToken,
2963
3002
  issuerDid,
2964
3003
  credentialId,
2965
- credentialSubject
3004
+ credentialSubject,
3005
+ curve
2966
3006
  }) {
2967
3007
  await __classPrivateFieldGet$1(this, _AirService_instances, "m", _AirService_ensureCredential).call(this);
2968
- const {
2969
- payload
2970
- } = await __classPrivateFieldGet$1(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
3008
+ const response = await __classPrivateFieldGet$1(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
2971
3009
  partnerToken: authToken,
2972
3010
  issuerDid,
2973
3011
  credentialId,
2974
- credentialSubject
3012
+ credentialSubject,
3013
+ curve
2975
3014
  });
3015
+ const {
3016
+ payload
3017
+ } = response;
2976
3018
  if (payload.closeDApp) {
2977
3019
  window.close();
2978
3020
  }
2979
3021
  if (payload.success === false) {
2980
3022
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2981
3023
  }
3024
+ return {
3025
+ cakPublicKey: payload.cakPublicKey
3026
+ };
2982
3027
  }
2983
3028
  async verifyCredential({
2984
3029
  authToken,
@@ -2999,7 +3044,7 @@ class AirService {
2999
3044
  return payload.verificationResult;
3000
3045
  }
3001
3046
  }
3002
- _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_sessionId = new WeakMap(), _AirService_sessionConfig = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airEventListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_assertInitialized = function _AirService_assertInitialized() {
3047
+ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_sessionId = new WeakMap(), _AirService_sessionConfig = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airEventListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_credentialNetwork = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_assertInitialized = function _AirService_assertInitialized() {
3003
3048
  if (!__classPrivateFieldGet$1(this, _AirService_isAuthInitialized, "f")) throw new AirServiceError("NOT_INITIALIZED", "Service is not initialized");
3004
3049
  }, _AirService_assertLoggedIn = function _AirService_assertLoggedIn() {
3005
3050
  __classPrivateFieldGet$1(this, _AirService_instances, "m", _AirService_assertInitialized).call(this);
@@ -3021,7 +3066,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3021
3066
  }
3022
3067
  const {
3023
3068
  credentialUrl
3024
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3069
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3025
3070
  const credentialIframeOrigin = new URL(credentialUrl).origin;
3026
3071
  let closeDApp = false;
3027
3072
  try {
@@ -3039,7 +3084,10 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3039
3084
  sdkVersion: airKitVersion,
3040
3085
  partnerDAppUrl: window.location.href,
3041
3086
  enableAutomation: this.shouldEnableAutomation(),
3042
- sessionConfig: __classPrivateFieldGet$1(this, _AirService_sessionConfig, "f")
3087
+ sessionConfig: __classPrivateFieldGet$1(this, _AirService_sessionConfig, "f"),
3088
+ ...(__classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f") && {
3089
+ credentialNetwork: __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f")
3090
+ })
3043
3091
  });
3044
3092
  if (payload.success === true) {
3045
3093
  resolve();
@@ -3115,7 +3163,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3115
3163
  if (__classPrivateFieldGet$1(this, _AirService_walletInitialization, "f")) throw new AirServiceError("ALREADY_INITIALIZING", "Already initializing");
3116
3164
  const {
3117
3165
  walletUrl
3118
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3166
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3119
3167
  const walletIframeOrigin = new URL(walletUrl).origin;
3120
3168
  try {
3121
3169
  const walletInitRequestPromise = new Promise((resolve, reject) => {
@@ -3302,7 +3350,7 @@ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _
3302
3350
  if (__classPrivateFieldGet$1(this, _AirService_recoveryInitialization, "f")) throw new AirServiceError("ALREADY_INITIALIZING", "Already initializing");
3303
3351
  const {
3304
3352
  recoveryUrl
3305
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3353
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3306
3354
  const recoveryIframeOrigin = new URL(recoveryUrl).origin;
3307
3355
  try {
3308
3356
  const recoveryInitRequestPromise = new Promise((resolve, reject) => {
@@ -98,7 +98,7 @@
98
98
  var e = new Error(message);
99
99
  return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
100
100
  };
101
- var version$2 = "1.7.0";
101
+ var version$2 = "1.8.0-beta.2";
102
102
  var airkitPackage = {
103
103
  version: version$2
104
104
  };
@@ -594,6 +594,12 @@
594
594
  const IFRAME_NAME_PREFIX_SET = ["air-wallet", "air-credential", "air-auth", "air-recovery"]; // order defines the z-index from highest to lowest
595
595
 
596
596
  const FONT_CDNS = ["https://fonts.googleapis.com", "https://fonts.gstatic.com"];
597
+ const SANDBOX_TESTNET_URLS = {
598
+ authUrl: "https://account.sandbox-testnet.air3.com/auth/",
599
+ walletUrl: "https://account.sandbox-testnet.air3.com/wallet/",
600
+ recoveryUrl: "https://account.sandbox-testnet.air3.com/recovery/",
601
+ credentialUrl: "https://account.sandbox-testnet.air3.com/credential/"
602
+ };
597
603
  const AIR_URLS = {
598
604
  [BUILD_ENV.DEVELOPMENT]: {
599
605
  authUrl: "https://localhost:8200/auth/",
@@ -626,6 +632,12 @@
626
632
  credentialUrl: "https://account.air3.com/credential/"
627
633
  }
628
634
  };
635
+ const getAirUrls = (buildEnv, credentialNetwork) => {
636
+ if (buildEnv === BUILD_ENV.SANDBOX && credentialNetwork === "testnet") {
637
+ return SANDBOX_TESTNET_URLS;
638
+ }
639
+ return AIR_URLS[buildEnv];
640
+ };
629
641
  /**
630
642
  * Injects dns-prefetch, preconnect, and prefetch link tags
631
643
  * for a given resource or page URL.
@@ -646,7 +658,7 @@
646
658
  const link = document.createElement("link");
647
659
  link.rel = rel;
648
660
  link.href = href;
649
- if (as) link.as = as;
661
+ if (as) ;
650
662
  if (crossOrigin) link.crossOrigin = "anonymous";
651
663
  head.appendChild(link);
652
664
  };
@@ -656,8 +668,27 @@
656
668
  // Preconnect (TCP + TLS warm-up)
657
669
  addLink("preconnect", parsed.origin, undefined, isCrossOrigin);
658
670
  // Prefetch (optional — caches the resource or HTML document)
659
- if (options?.prefetch !== false) {
660
- addLink("prefetch", parsed.href, options?.as ?? "document", isCrossOrigin);
671
+ if (options?.prefetch !== false && HTMLScriptElement.supports && HTMLScriptElement.supports("speculationrules")) {
672
+ const scriptId = `speculation-${btoa(parsed.href).replace(/\+/g, "-").replace(/\//g, "_").replace(/=/g, "")}`;
673
+ if (!document.getElementById(scriptId)) {
674
+ const script = document.createElement("script");
675
+ script.id = scriptId;
676
+ script.type = "speculationrules";
677
+ const sources = [{
678
+ source: "list",
679
+ urls: [parsed.href],
680
+ eagerness: "immediate"
681
+ }];
682
+ const rules = {
683
+ ...((options?.as ?? "document") === "document" ? {
684
+ prerender: sources
685
+ } : {
686
+ prefetch: sources
687
+ })
688
+ };
689
+ script.textContent = JSON.stringify(rules);
690
+ document.body.appendChild(script);
691
+ }
661
692
  }
662
693
  } catch (err) {
663
694
  log$1.warn("[addResourceHints] Invalid URL:", url, err);
@@ -2133,7 +2164,7 @@
2133
2164
  if (this._iframeElement) return this._iframeElement;
2134
2165
  const iframe = document.createElement("iframe");
2135
2166
  iframe.id = this.iframeId;
2136
- iframe.allow = "publickey-credentials-get *; publickey-credentials-create *";
2167
+ iframe.allow = ["publickey-credentials-get *", "publickey-credentials-create *", "ch-ua-model", "ch-ua-platform-version"].join("; ");
2137
2168
  iframe.src = this.iframeUrl;
2138
2169
  iframe.style.position = "fixed";
2139
2170
  iframe.style.zIndex = `${this.getZIndex()}`;
@@ -2355,7 +2386,12 @@
2355
2386
  const response = firstValueFrom(this.messages$.pipe(filter(msg => msg.type === AirWalletMessageTypes.SHOW_SWAP_UI_RESPONSE)));
2356
2387
  await this.sendMessage({
2357
2388
  type: AirWalletMessageTypes.SHOW_SWAP_UI_REQUEST,
2358
- payload
2389
+ payload: {
2390
+ initialFromToken: payload?.initialFromToken,
2391
+ fallbackFromToken: payload?.fallbackFromToken,
2392
+ initialToToken: payload?.initialToToken,
2393
+ defaultSlippage: payload?.defaultSlippage?.toString() // TODO refactor to all be numbers
2394
+ }
2359
2395
  });
2360
2396
  return response;
2361
2397
  }
@@ -2578,7 +2614,7 @@
2578
2614
  }
2579
2615
  }
2580
2616
  var WindowService$1 = WindowService.instance;
2581
- var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_sessionId, _AirService_sessionConfig, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airEventListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_assertInitialized, _AirService_assertLoggedIn, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
2617
+ var _AirService_instances, _AirService_loginResult, _AirService_buildEnv, _AirService_enableLogging, _AirService_partnerId, _AirService_sessionId, _AirService_sessionConfig, _AirService_authMessagingService, _AirService_authIframeController, _AirService_isAuthInitialized, _AirService_airEventListener, _AirService_walletMessagingService, _AirService_walletIframeController, _AirService_walletInitialization, _AirService_walletLoggedInResult, _AirService_airWalletProvider, _AirService_recoveryInitialization, _AirService_recoveryMessagingService, _AirService_recoveryIframeController, _AirService_credentialsInitialization, _AirService_credentialMessagingService, _AirService_credentialIframeController, _AirService_credentialNetwork, _AirService_assertInitialized, _AirService_assertLoggedIn, _AirService_ensureCredential, _AirService_initializeCredentials, _AirService_subscribeToCredentialEvents, _AirService_cleanUpCredential, _AirService_ensureWallet, _AirService_initializeWallet, _AirService_subscribeToWalletEvents, _AirService_triggerEventListeners, _AirService_triggerAirAuthInitialized, _AirService_triggerAirAuthLoggedIn, _AirService_triggerAirAuthLoggedOut, _AirService_triggerWalletInitialized, _AirService_createLoginResult, _AirService_createWalletInitializedResult, _AirService_cleanUpAuth, _AirService_cleanUpWallet, _AirService_ensureRecovery, _AirService_initializeRecovery, _AirService_subscribeToRecoveryEvents, _AirService_cleanUpRecovery;
2582
2618
  const airKitVersion = airkitPackage.version;
2583
2619
  class AirService {
2584
2620
  constructor({
@@ -2607,6 +2643,7 @@
2607
2643
  _AirService_credentialsInitialization.set(this, void 0);
2608
2644
  _AirService_credentialMessagingService.set(this, void 0);
2609
2645
  _AirService_credentialIframeController.set(this, void 0);
2646
+ _AirService_credentialNetwork.set(this, void 0);
2610
2647
  __classPrivateFieldSet(this, _AirService_partnerId, partnerId);
2611
2648
  __classPrivateFieldSet(this, _AirService_authMessagingService, AuthMessageService.create());
2612
2649
  __classPrivateFieldSet(this, _AirService_walletMessagingService, WalletMessageService.create());
@@ -2647,22 +2684,25 @@
2647
2684
  shouldEnableAutomation() {
2648
2685
  return localStorage.getItem("automation") === "true" && __classPrivateFieldGet$1(this, _AirService_buildEnv, "f") !== BUILD_ENV.PRODUCTION;
2649
2686
  }
2650
- async init({
2651
- buildEnv = BUILD_ENV.PRODUCTION,
2652
- enableLogging = false,
2653
- skipRehydration = false,
2654
- sessionConfig = undefined,
2655
- preloadWallet = false,
2656
- preloadCredential = false
2657
- }) {
2687
+ async init(config) {
2688
+ const {
2689
+ buildEnv = BUILD_ENV.PRODUCTION,
2690
+ enableLogging = false,
2691
+ skipRehydration = false,
2692
+ sessionConfig = undefined,
2693
+ preloadWallet = false,
2694
+ preloadCredential = false,
2695
+ credentialNetwork = "testnet"
2696
+ } = config;
2658
2697
  if (!__classPrivateFieldGet$1(this, _AirService_partnerId, "f")) throw new AirServiceError("CLIENT_ERROR", "Partner ID is required to initialize the service");
2659
2698
  if (__classPrivateFieldGet$1(this, _AirService_isAuthInitialized, "f")) return __classPrivateFieldGet$1(this, _AirService_loginResult, "f") ?? null;
2699
+ __classPrivateFieldSet(this, _AirService_credentialNetwork, buildEnv === BUILD_ENV.SANDBOX ? credentialNetwork : undefined);
2660
2700
  configureLogLevel(buildEnv, enableLogging);
2661
2701
  const {
2662
2702
  authUrl,
2663
2703
  walletUrl,
2664
2704
  credentialUrl
2665
- } = AIR_URLS[buildEnv];
2705
+ } = getAirUrls(buildEnv, __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
2666
2706
  addResourceHints(authUrl);
2667
2707
  if (preloadWallet) {
2668
2708
  addResourceHints(walletUrl);
@@ -2852,9 +2892,7 @@
2852
2892
  if (result.payload.success === false) {
2853
2893
  throw new AirServiceError(result.payload.errorName, result.payload.errorMessage);
2854
2894
  }
2855
- return {
2856
- txHash: result.payload.txHash
2857
- };
2895
+ return result.payload;
2858
2896
  }
2859
2897
  /**
2860
2898
  * @experimental This feature has not been officially released and might change in the future.
@@ -2904,7 +2942,8 @@
2904
2942
  }
2905
2943
  }
2906
2944
  const sessionConfig = {
2907
- locale: results[0].payload.locale
2945
+ locale: results[0].payload.locale,
2946
+ currency: results[0].payload.currency
2908
2947
  };
2909
2948
  __classPrivateFieldSet(this, _AirService_sessionConfig, sessionConfig);
2910
2949
  return sessionConfig;
@@ -2968,23 +3007,29 @@
2968
3007
  authToken,
2969
3008
  issuerDid,
2970
3009
  credentialId,
2971
- credentialSubject
3010
+ credentialSubject,
3011
+ curve
2972
3012
  }) {
2973
3013
  await __classPrivateFieldGet$1(this, _AirService_instances, "m", _AirService_ensureCredential).call(this);
2974
- const {
2975
- payload
2976
- } = await __classPrivateFieldGet$1(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
3014
+ const response = await __classPrivateFieldGet$1(this, _AirService_credentialMessagingService, "f").sendIssueCredentialRequest({
2977
3015
  partnerToken: authToken,
2978
3016
  issuerDid,
2979
3017
  credentialId,
2980
- credentialSubject
3018
+ credentialSubject,
3019
+ curve
2981
3020
  });
3021
+ const {
3022
+ payload
3023
+ } = response;
2982
3024
  if (payload.closeDApp) {
2983
3025
  window.close();
2984
3026
  }
2985
3027
  if (payload.success === false) {
2986
3028
  throw new AirServiceError(payload.errorName, payload.errorMessage);
2987
3029
  }
3030
+ return {
3031
+ cakPublicKey: payload.cakPublicKey
3032
+ };
2988
3033
  }
2989
3034
  async verifyCredential({
2990
3035
  authToken,
@@ -3005,7 +3050,7 @@
3005
3050
  return payload.verificationResult;
3006
3051
  }
3007
3052
  }
3008
- _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_sessionId = new WeakMap(), _AirService_sessionConfig = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airEventListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_assertInitialized = function _AirService_assertInitialized() {
3053
+ _AirService_loginResult = new WeakMap(), _AirService_buildEnv = new WeakMap(), _AirService_enableLogging = new WeakMap(), _AirService_partnerId = new WeakMap(), _AirService_sessionId = new WeakMap(), _AirService_sessionConfig = new WeakMap(), _AirService_authMessagingService = new WeakMap(), _AirService_authIframeController = new WeakMap(), _AirService_isAuthInitialized = new WeakMap(), _AirService_airEventListener = new WeakMap(), _AirService_walletMessagingService = new WeakMap(), _AirService_walletIframeController = new WeakMap(), _AirService_walletInitialization = new WeakMap(), _AirService_walletLoggedInResult = new WeakMap(), _AirService_airWalletProvider = new WeakMap(), _AirService_recoveryInitialization = new WeakMap(), _AirService_recoveryMessagingService = new WeakMap(), _AirService_recoveryIframeController = new WeakMap(), _AirService_credentialsInitialization = new WeakMap(), _AirService_credentialMessagingService = new WeakMap(), _AirService_credentialIframeController = new WeakMap(), _AirService_credentialNetwork = new WeakMap(), _AirService_instances = new WeakSet(), _AirService_assertInitialized = function _AirService_assertInitialized() {
3009
3054
  if (!__classPrivateFieldGet$1(this, _AirService_isAuthInitialized, "f")) throw new AirServiceError("NOT_INITIALIZED", "Service is not initialized");
3010
3055
  }, _AirService_assertLoggedIn = function _AirService_assertLoggedIn() {
3011
3056
  __classPrivateFieldGet$1(this, _AirService_instances, "m", _AirService_assertInitialized).call(this);
@@ -3027,7 +3072,7 @@
3027
3072
  }
3028
3073
  const {
3029
3074
  credentialUrl
3030
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3075
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3031
3076
  const credentialIframeOrigin = new URL(credentialUrl).origin;
3032
3077
  let closeDApp = false;
3033
3078
  try {
@@ -3045,7 +3090,10 @@
3045
3090
  sdkVersion: airKitVersion,
3046
3091
  partnerDAppUrl: window.location.href,
3047
3092
  enableAutomation: this.shouldEnableAutomation(),
3048
- sessionConfig: __classPrivateFieldGet$1(this, _AirService_sessionConfig, "f")
3093
+ sessionConfig: __classPrivateFieldGet$1(this, _AirService_sessionConfig, "f"),
3094
+ ...(__classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f") && {
3095
+ credentialNetwork: __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f")
3096
+ })
3049
3097
  });
3050
3098
  if (payload.success === true) {
3051
3099
  resolve();
@@ -3121,7 +3169,7 @@
3121
3169
  if (__classPrivateFieldGet$1(this, _AirService_walletInitialization, "f")) throw new AirServiceError("ALREADY_INITIALIZING", "Already initializing");
3122
3170
  const {
3123
3171
  walletUrl
3124
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3172
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3125
3173
  const walletIframeOrigin = new URL(walletUrl).origin;
3126
3174
  try {
3127
3175
  const walletInitRequestPromise = new Promise((resolve, reject) => {
@@ -3308,7 +3356,7 @@
3308
3356
  if (__classPrivateFieldGet$1(this, _AirService_recoveryInitialization, "f")) throw new AirServiceError("ALREADY_INITIALIZING", "Already initializing");
3309
3357
  const {
3310
3358
  recoveryUrl
3311
- } = AIR_URLS[__classPrivateFieldGet$1(this, _AirService_buildEnv, "f")];
3359
+ } = getAirUrls(__classPrivateFieldGet$1(this, _AirService_buildEnv, "f"), __classPrivateFieldGet$1(this, _AirService_credentialNetwork, "f"));
3312
3360
  const recoveryIframeOrigin = new URL(recoveryUrl).origin;
3313
3361
  try {
3314
3362
  const recoveryInitRequestPromise = new Promise((resolve, reject) => {
@@ -0,0 +1,22 @@
1
+ export type Environment = "development" | "staging" | "uat" | "sandbox" | "production";
2
+ export type Hex = `0x${string}`;
3
+ export type Jsonable = string | number | boolean | null | undefined | readonly Jsonable[] | {
4
+ readonly [key: string]: Jsonable;
5
+ } | {
6
+ toJSON(): Jsonable;
7
+ };
8
+ export type Optional<T, K extends keyof T> = Omit<T, K> & {
9
+ [P in keyof T]?: T[P] | undefined;
10
+ };
11
+ export type IntersectionToUnion<T> = {
12
+ [K in keyof T]: (x: T[K]) => void;
13
+ }[keyof T] extends (x: infer U) => void ? U : never;
14
+ export type FixedArray<T, N extends number, Acc extends T[] = []> = Acc["length"] extends N ? Acc : FixedArray<T, N, [...Acc, T]>;
15
+ export type TokenSymbol = {
16
+ symbol: string;
17
+ chainId: number;
18
+ };
19
+ export type Token = TokenSymbol & {
20
+ decimals: number;
21
+ address: `0x${string}`;
22
+ };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mocanetwork/airkit-connector",
3
- "version": "1.7.0",
3
+ "version": "1.8.0-beta.2",
4
4
  "description": "AirKit wagmi connector to connect with the AirService",
5
5
  "main": "dist/airkitConnector.cjs.js",
6
6
  "unpkg": "dist/airkitConnector.umd.min.js",
@@ -24,7 +24,7 @@
24
24
  "check-circular": "madge -c --ts-config=tsconfig.json --extensions ts ./src"
25
25
  },
26
26
  "dependencies": {
27
- "@mocanetwork/airkit": "^1.7.0",
27
+ "@mocanetwork/airkit": "^1.8.0-beta.2",
28
28
  "@wagmi/core": "^2.x",
29
29
  "loglevel": "^1.8.1",
30
30
  "viem": "^2.x"