@etherplay/connect 0.0.35 → 0.0.36

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.d.ts CHANGED
@@ -54,6 +54,7 @@ export type WalletMechanism<WalletName extends string | undefined, Address exten
54
54
  });
55
55
  export type Mechanism = AlchemyMechanism | WalletMechanism<string | undefined, `0x${string}` | undefined>;
56
56
  export type FullfilledMechanism = AlchemyMechanism | WalletMechanism<string, `0x${string}`>;
57
+ export type TargetStep = 'WalletConnected' | 'SignedIn';
57
58
  export type WalletState<WalletProviderType> = {
58
59
  provider: WalletProvider<WalletProviderType>;
59
60
  accounts: `0x${string}`[];
@@ -70,11 +71,16 @@ export type WalletState<WalletProviderType> = {
70
71
  status: 'disconnected';
71
72
  connecting: boolean;
72
73
  });
73
- type WalletConnected<WalletProviderType> = {
74
+ type WaitingForSignature<WalletProviderType> = {
74
75
  step: 'WaitingForSignature';
75
76
  mechanism: WalletMechanism<string, `0x${string}`>;
76
77
  wallet: WalletState<WalletProviderType>;
77
78
  };
79
+ type WalletConnected<WalletProviderType> = {
80
+ step: 'WalletConnected';
81
+ mechanism: WalletMechanism<string, `0x${string}`>;
82
+ wallet: WalletState<WalletProviderType>;
83
+ };
78
84
  type SignedIn<WalletProviderType> = {
79
85
  step: 'SignedIn';
80
86
  mechanism: AlchemyMechanism;
@@ -116,18 +122,27 @@ export type Connection<WalletProviderType> = {
116
122
  step: 'ChooseWalletAccount';
117
123
  mechanism: WalletMechanism<string, undefined>;
118
124
  wallet: WalletState<WalletProviderType>;
119
- } | {
120
- step: 'WalletConnected';
121
- mechanism: WalletMechanism<string, `0x${string}`>;
125
+ } | WalletConnected<WalletProviderType> | WaitingForSignature<WalletProviderType> | SignedIn<WalletProviderType>);
126
+ export type SignedInWithWallet<WalletProviderType> = Extract<Connection<WalletProviderType>, {
127
+ step: 'SignedIn';
122
128
  wallet: WalletState<WalletProviderType>;
123
- } | WalletConnected<WalletProviderType> | SignedIn<WalletProviderType>);
124
- export type ConnectionStore<WalletProviderType> = {
129
+ }>;
130
+ export type WalletConnectedState<WalletProviderType> = Extract<Connection<WalletProviderType>, {
131
+ step: 'WalletConnected';
132
+ }>;
133
+ export type ConnectedWithWallet<WalletProviderType> = WalletConnectedState<WalletProviderType> | SignedInWithWallet<WalletProviderType>;
134
+ export type SignedInState<WalletProviderType> = Extract<Connection<WalletProviderType>, {
135
+ step: 'SignedIn';
136
+ }>;
137
+ export declare function isTargetStepReached<WalletProviderType, Target extends TargetStep, WalletOnly extends boolean = false>(connection: Connection<WalletProviderType>, targetStep: Target, walletOnly?: WalletOnly): connection is Target extends 'WalletConnected' ? ConnectedWithWallet<WalletProviderType> : WalletOnly extends true ? SignedInWithWallet<WalletProviderType> : SignedInState<WalletProviderType>;
138
+ export type ConnectionOptions = {
139
+ requireUserConfirmationBeforeSignatureRequest?: boolean;
140
+ doNotStoreLocally?: boolean;
141
+ requestSignatureRightAway?: boolean;
142
+ };
143
+ export type ConnectionStore<WalletProviderType, Target extends TargetStep = 'SignedIn', WalletOnly extends boolean = false> = {
125
144
  subscribe: (run: (value: Connection<WalletProviderType>) => void) => () => void;
126
- connect: (mechanism?: Mechanism, options?: {
127
- requireUserConfirmationBeforeSignatureRequest?: boolean;
128
- doNotStoreLocally?: boolean;
129
- requestSignatureRightAway?: boolean;
130
- }) => Promise<void>;
145
+ connect: (mechanism?: Target extends 'WalletConnected' ? WalletMechanism<string | undefined, `0x${string}` | undefined> : WalletOnly extends true ? WalletMechanism<string | undefined, `0x${string}` | undefined> : Mechanism, options?: ConnectionOptions) => Promise<void>;
131
146
  cancel: () => void;
132
147
  back: (step: 'MechanismToChoose' | 'Idle' | 'WalletToChoose') => void;
133
148
  requestSignature: () => Promise<void>;
@@ -138,49 +153,95 @@ export type ConnectionStore<WalletProviderType> = {
138
153
  getSignatureForPublicKeyPublication: () => Promise<`0x${string}`>;
139
154
  switchWalletChain: (chainInfo?: BasicChainInfo) => Promise<void>;
140
155
  unlock: () => Promise<void>;
141
- ensureConnected: {
142
- (step: 'WalletConnected', mechanism?: WalletMechanism<string | undefined, `0x${string}` | undefined>, options?: {
143
- requireUserConfirmationBeforeSignatureRequest?: boolean;
144
- doNotStoreLocally?: boolean;
145
- requestSignatureRightAway?: boolean;
146
- }): Promise<WalletConnected<WalletProviderType>>;
147
- (step: 'SignedIn', mechanism?: Mechanism, options?: {
148
- requireUserConfirmationBeforeSignatureRequest?: boolean;
149
- doNotStoreLocally?: boolean;
150
- requestSignatureRightAway?: boolean;
151
- }): Promise<SignedIn<WalletProviderType>>;
152
- (mechanism?: Mechanism, options?: {
153
- requireUserConfirmationBeforeSignatureRequest?: boolean;
154
- doNotStoreLocally?: boolean;
155
- requestSignatureRightAway?: boolean;
156
- }): Promise<SignedIn<WalletProviderType>>;
156
+ ensureConnected: Target extends 'WalletConnected' ? {
157
+ (options?: ConnectionOptions): Promise<WalletConnected<WalletProviderType>>;
158
+ (step: 'WalletConnected', mechanism?: WalletMechanism<string | undefined, `0x${string}` | undefined>, options?: ConnectionOptions): Promise<WalletConnected<WalletProviderType>>;
159
+ } : WalletOnly extends true ? {
160
+ (options?: ConnectionOptions): Promise<SignedInWithWallet<WalletProviderType>>;
161
+ (step: 'WalletConnected', mechanism?: WalletMechanism<string | undefined, `0x${string}` | undefined>, options?: ConnectionOptions): Promise<WalletConnected<WalletProviderType>>;
162
+ (step: 'SignedIn', mechanism?: WalletMechanism<string | undefined, `0x${string}` | undefined>, options?: ConnectionOptions): Promise<SignedInWithWallet<WalletProviderType>>;
163
+ } : {
164
+ (options?: ConnectionOptions): Promise<SignedIn<WalletProviderType>>;
165
+ (step: 'WalletConnected', mechanism?: WalletMechanism<string | undefined, `0x${string}` | undefined>, options?: ConnectionOptions): Promise<WalletConnected<WalletProviderType>>;
166
+ (step: 'SignedIn', mechanism?: Mechanism, options?: ConnectionOptions): Promise<SignedIn<WalletProviderType>>;
157
167
  };
168
+ isTargetStepReached: (connection: Connection<WalletProviderType>) => connection is Target extends 'WalletConnected' ? ConnectedWithWallet<WalletProviderType> : WalletOnly extends true ? SignedInWithWallet<WalletProviderType> : SignedInState<WalletProviderType>;
169
+ targetStep: Target;
170
+ walletOnly: WalletOnly;
158
171
  provider: WalletProviderType;
159
172
  chainId: string;
160
173
  chainInfo: ChainInfo<WalletProviderType>;
161
174
  };
162
175
  export declare function createConnection<WalletProviderType>(settings: {
163
- signingOrigin?: string;
164
- walletHost: string;
176
+ targetStep: 'WalletConnected';
177
+ walletHost?: string;
178
+ chainInfo: ChainInfo<WalletProviderType>;
179
+ walletConnector: WalletConnector<WalletProviderType>;
165
180
  autoConnect?: boolean;
166
- autoConnectWallet?: boolean;
181
+ alwaysUseCurrentAccount?: boolean;
182
+ prioritizeWalletProvider?: boolean;
183
+ requestsPerSecond?: number;
184
+ }): ConnectionStore<WalletProviderType, 'WalletConnected'>;
185
+ export declare function createConnection(settings: {
186
+ targetStep: 'WalletConnected';
187
+ walletHost?: string;
188
+ chainInfo: ChainInfo<UnderlyingEthereumProvider>;
189
+ walletConnector?: undefined;
190
+ autoConnect?: boolean;
191
+ alwaysUseCurrentAccount?: boolean;
192
+ prioritizeWalletProvider?: boolean;
193
+ requestsPerSecond?: number;
194
+ }): ConnectionStore<UnderlyingEthereumProvider, 'WalletConnected', true>;
195
+ export declare function createConnection<WalletProviderType>(settings: {
196
+ targetStep?: 'SignedIn';
197
+ walletOnly: true;
198
+ walletHost?: string;
199
+ chainInfo: ChainInfo<WalletProviderType>;
167
200
  walletConnector: WalletConnector<WalletProviderType>;
201
+ signingOrigin?: string;
202
+ autoConnect?: boolean;
168
203
  requestSignatureAutomaticallyIfPossible?: boolean;
169
204
  alwaysUseCurrentAccount?: boolean;
170
- chainInfo: ChainInfo<WalletProviderType>;
171
205
  prioritizeWalletProvider?: boolean;
172
206
  requestsPerSecond?: number;
173
- }): ConnectionStore<WalletProviderType>;
207
+ }): ConnectionStore<WalletProviderType, 'SignedIn', true>;
174
208
  export declare function createConnection(settings: {
209
+ targetStep?: 'SignedIn';
210
+ walletOnly: true;
211
+ walletHost?: string;
212
+ chainInfo: ChainInfo<UnderlyingEthereumProvider>;
213
+ walletConnector?: undefined;
175
214
  signingOrigin?: string;
215
+ autoConnect?: boolean;
216
+ requestSignatureAutomaticallyIfPossible?: boolean;
217
+ alwaysUseCurrentAccount?: boolean;
218
+ prioritizeWalletProvider?: boolean;
219
+ requestsPerSecond?: number;
220
+ }): ConnectionStore<UnderlyingEthereumProvider, 'SignedIn', true>;
221
+ export declare function createConnection<WalletProviderType>(settings: {
222
+ targetStep?: 'SignedIn';
223
+ walletOnly?: false;
176
224
  walletHost: string;
225
+ chainInfo: ChainInfo<WalletProviderType>;
226
+ walletConnector: WalletConnector<WalletProviderType>;
227
+ signingOrigin?: string;
177
228
  autoConnect?: boolean;
178
- autoConnectWallet?: boolean;
179
- walletConnector?: undefined;
180
229
  requestSignatureAutomaticallyIfPossible?: boolean;
181
230
  alwaysUseCurrentAccount?: boolean;
231
+ prioritizeWalletProvider?: boolean;
232
+ requestsPerSecond?: number;
233
+ }): ConnectionStore<WalletProviderType, 'SignedIn', false>;
234
+ export declare function createConnection(settings: {
235
+ targetStep?: 'SignedIn';
236
+ walletOnly?: false;
237
+ walletHost: string;
182
238
  chainInfo: ChainInfo<UnderlyingEthereumProvider>;
239
+ walletConnector?: undefined;
240
+ signingOrigin?: string;
241
+ autoConnect?: boolean;
242
+ requestSignatureAutomaticallyIfPossible?: boolean;
243
+ alwaysUseCurrentAccount?: boolean;
183
244
  prioritizeWalletProvider?: boolean;
184
245
  requestsPerSecond?: number;
185
- }): ConnectionStore<UnderlyingEthereumProvider>;
246
+ }): ConnectionStore<UnderlyingEthereumProvider, 'SignedIn', false>;
186
247
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -4,6 +4,24 @@ import { createPopupLauncher } from './popup.js';
4
4
  import { fromEntropyKeyToMnemonic, fromSignatureToKey, originKeyMessage, originPublicKeyPublicationMessage, } from '@etherplay/alchemy';
5
5
  import { withTimeout } from './utils.js';
6
6
  export { fromEntropyKeyToMnemonic, originPublicKeyPublicationMessage, originKeyMessage };
7
+ // Type guard - narrows Connection based on targetStep and walletOnly
8
+ // For 'WalletConnected' target: narrows to ConnectedWithWallet (WalletConnected | SignedIn-with-wallet)
9
+ // For 'SignedIn' target with walletOnly: narrows to SignedInWithWallet
10
+ // For 'SignedIn' target (default): narrows to SignedIn
11
+ export function isTargetStepReached(connection, targetStep, walletOnly) {
12
+ if (targetStep === 'WalletConnected') {
13
+ // For WalletConnected target, accept WalletConnected OR SignedIn-with-wallet
14
+ return connection.step === 'WalletConnected' || (connection.step === 'SignedIn' && connection.wallet !== undefined);
15
+ }
16
+ // For SignedIn target (regardless of walletOnly), only accept SignedIn
17
+ // walletOnly affects the return type narrowing, not the step check
18
+ if (walletOnly) {
19
+ // For SignedIn + walletOnly, only accept SignedIn-with-wallet
20
+ return connection.step === 'SignedIn' && connection.wallet !== undefined;
21
+ }
22
+ // For SignedIn target, accept any SignedIn variant
23
+ return connection.step === 'SignedIn';
24
+ }
7
25
  function viemChainInfoToSwitchChainInfo(chainInfo) {
8
26
  return {
9
27
  chainId: `0x${Number(chainInfo.id).toString(16)}`,
@@ -15,6 +33,7 @@ function viemChainInfoToSwitchChainInfo(chainInfo) {
15
33
  }
16
34
  const storageKeyAccount = '__origin_account';
17
35
  const storageKeyLastWallet = '__last_wallet';
36
+ // Implementation signature
18
37
  export function createConnection(settings) {
19
38
  function originToSignWith() {
20
39
  return settings.signingOrigin || origin;
@@ -27,15 +46,15 @@ export function createConnection(settings) {
27
46
  prioritizeWalletProvider: settings.prioritizeWalletProvider,
28
47
  requestsPerSecond: settings.requestsPerSecond,
29
48
  });
49
+ // Determine target step (defaults to 'SignedIn')
50
+ const targetStep = settings.targetStep || 'SignedIn';
30
51
  let autoConnect = true;
31
52
  if (typeof settings.autoConnect !== 'undefined') {
32
53
  autoConnect = settings.autoConnect;
33
54
  }
34
- let autoConnectWallet = true;
35
- if (typeof settings.autoConnectWallet !== 'undefined') {
36
- autoConnectWallet = settings.autoConnectWallet;
37
- }
38
- const requestSignatureAutomaticallyIfPossible = settings.requestSignatureAutomaticallyIfPossible || false;
55
+ // For SignedIn target, we can auto-request signature if configured
56
+ // For WalletConnected target, this is always false (we never auto-request signature)
57
+ const requestSignatureAutomaticallyIfPossible = targetStep === 'SignedIn' ? settings.requestSignatureAutomaticallyIfPossible || false : false;
39
58
  let $connection = { step: 'Idle', loading: true, wallet: undefined, wallets: [] };
40
59
  const _store = writable($connection);
41
60
  function set(connection) {
@@ -82,13 +101,18 @@ export function createConnection(settings) {
82
101
  }, 100);
83
102
  });
84
103
  }
104
+ // Auto-connect logic based on targetStep
105
+ // When targetStep: 'WalletConnected' - only check lastWallet
106
+ // When targetStep: 'SignedIn' - check originAccount first, then fallback to lastWallet
107
+ let autoConnectHandled = false;
85
108
  if (autoConnect) {
86
109
  if (typeof window !== 'undefined') {
87
- // set({step: 'Idle', loading: true, wallets: $connection.wallets});
88
110
  try {
89
- const existingAccount = getOriginAccount();
90
- if (existingAccount) {
91
- if (existingAccount.signer) {
111
+ // For SignedIn target, check for existing account first
112
+ if (targetStep === 'SignedIn') {
113
+ const existingAccount = getOriginAccount();
114
+ if (existingAccount && existingAccount.signer) {
115
+ autoConnectHandled = true;
92
116
  const mechanismUsed = existingAccount.mechanismUsed;
93
117
  if (mechanismUsed.type == 'wallet') {
94
118
  const walletMechanism = mechanismUsed;
@@ -98,15 +122,11 @@ export function createConnection(settings) {
98
122
  const chainIdAsHex = await withTimeout(walletProvider.getChainId());
99
123
  const chainId = Number(chainIdAsHex).toString();
100
124
  _wallet = { provider: walletProvider, chainId };
101
- // TODO
102
125
  alwaysOnProviderWrapper.setWalletProvider(walletProvider.underlyingProvider);
103
126
  watchForChainIdChange(_wallet.provider);
104
127
  let accounts = [];
105
- // try {
106
128
  accounts = await withTimeout(walletProvider.getAccounts());
107
129
  accounts = accounts.map((v) => v.toLowerCase());
108
- // } catch {}
109
- // // TODO try catch ? and use logic of onAccountChanged
110
130
  set({
111
131
  step: 'SignedIn',
112
132
  account: existingAccount,
@@ -123,7 +143,6 @@ export function createConnection(settings) {
123
143
  },
124
144
  });
125
145
  alwaysOnProviderWrapper.setWalletStatus('connected');
126
- // TODO use the same logic before hand
127
146
  onAccountChanged(accounts);
128
147
  watchForAccountChange(walletProvider);
129
148
  })
@@ -141,55 +160,43 @@ export function createConnection(settings) {
141
160
  });
142
161
  }
143
162
  }
144
- else {
145
- set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
146
- }
147
163
  }
148
- else {
149
- if (autoConnectWallet) {
150
- const lastWallet = getLastWallet();
151
- if (lastWallet) {
152
- waitForWallet(lastWallet.name)
153
- .then(async (walletDetails) => {
154
- const walletProvider = walletDetails.walletProvider;
155
- const chainIdAsHex = await withTimeout(walletProvider.getChainId());
156
- const chainId = Number(chainIdAsHex).toString();
157
- _wallet = { provider: walletProvider, chainId };
158
- // TODO
159
- alwaysOnProviderWrapper.setWalletProvider(walletProvider.underlyingProvider);
160
- watchForChainIdChange(_wallet.provider);
161
- let accounts = [];
162
- // try {
163
- accounts = await withTimeout(walletProvider.getAccounts());
164
- accounts = accounts.map((v) => v.toLowerCase());
165
- // } catch {}
166
- // // TODO try catch ? and use logic of onAccountChanged
167
- set({
168
- step: 'WalletConnected',
169
- mechanism: lastWallet,
170
- wallets: $connection.wallets,
171
- wallet: {
172
- provider: walletProvider,
173
- accounts,
174
- status: 'connected',
175
- accountChanged: undefined,
176
- chainId,
177
- invalidChainId: alwaysOnChainId != chainId,
178
- switchingChain: false,
179
- },
180
- });
181
- alwaysOnProviderWrapper.setWalletStatus('connected');
182
- // TODO use the same logic before hand
183
- onAccountChanged(accounts);
184
- watchForAccountChange(walletProvider);
185
- })
186
- .catch((err) => {
187
- set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
164
+ // For both targets, fallback to lastWallet if no account found (or WalletConnected target)
165
+ if (!autoConnectHandled) {
166
+ const lastWallet = getLastWallet();
167
+ if (lastWallet) {
168
+ waitForWallet(lastWallet.name)
169
+ .then(async (walletDetails) => {
170
+ const walletProvider = walletDetails.walletProvider;
171
+ const chainIdAsHex = await withTimeout(walletProvider.getChainId());
172
+ const chainId = Number(chainIdAsHex).toString();
173
+ _wallet = { provider: walletProvider, chainId };
174
+ alwaysOnProviderWrapper.setWalletProvider(walletProvider.underlyingProvider);
175
+ watchForChainIdChange(_wallet.provider);
176
+ let accounts = [];
177
+ accounts = await withTimeout(walletProvider.getAccounts());
178
+ accounts = accounts.map((v) => v.toLowerCase());
179
+ set({
180
+ step: 'WalletConnected',
181
+ mechanism: lastWallet,
182
+ wallets: $connection.wallets,
183
+ wallet: {
184
+ provider: walletProvider,
185
+ accounts,
186
+ status: 'connected',
187
+ accountChanged: undefined,
188
+ chainId,
189
+ invalidChainId: alwaysOnChainId != chainId,
190
+ switchingChain: false,
191
+ },
188
192
  });
189
- }
190
- else {
193
+ alwaysOnProviderWrapper.setWalletStatus('connected');
194
+ onAccountChanged(accounts);
195
+ watchForAccountChange(walletProvider);
196
+ })
197
+ .catch((err) => {
191
198
  set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
192
- }
199
+ });
193
200
  }
194
201
  else {
195
202
  set({ step: 'Idle', loading: false, wallet: undefined, wallets: $connection.wallets });
@@ -688,6 +695,10 @@ export function createConnection(settings) {
688
695
  }
689
696
  }
690
697
  else {
698
+ // Popup-based auth requires walletHost
699
+ if (!settings.walletHost) {
700
+ throw new Error('walletHost is required for popup-based authentication (email, oauth, mnemonic)');
701
+ }
691
702
  popup = connectViaPopup({
692
703
  mechanism,
693
704
  walletHost: settings.walletHost,
@@ -740,18 +751,37 @@ export function createConnection(settings) {
740
751
  });
741
752
  }
742
753
  }
743
- async function ensureConnected(stepOrMechanism, mechanismOrOptions, options) {
744
- const step = typeof stepOrMechanism === 'string' ? stepOrMechanism : 'SignedIn';
745
- let mechanism = typeof stepOrMechanism === 'string' ? mechanismOrOptions : stepOrMechanism;
754
+ async function ensureConnected(stepOrMechanismOrOptions, mechanismOrOptions, options) {
755
+ // Determine if first arg is a step string, mechanism, or options
756
+ let step;
757
+ let mechanism;
758
+ let opts;
759
+ if (typeof stepOrMechanismOrOptions === 'string') {
760
+ // First arg is a step
761
+ step = stepOrMechanismOrOptions;
762
+ mechanism = mechanismOrOptions;
763
+ opts = options;
764
+ }
765
+ else if (stepOrMechanismOrOptions && 'type' in stepOrMechanismOrOptions) {
766
+ // First arg is a mechanism
767
+ step = targetStep; // Use configured target as default
768
+ mechanism = stepOrMechanismOrOptions;
769
+ opts = mechanismOrOptions;
770
+ }
771
+ else {
772
+ // First arg is options or undefined
773
+ step = targetStep; // Use configured target as default
774
+ mechanism = undefined;
775
+ opts = stepOrMechanismOrOptions;
776
+ }
777
+ // For WalletConnected step, default to wallet mechanism
746
778
  if (!mechanism && step === 'WalletConnected') {
747
779
  mechanism = { type: 'wallet' };
748
780
  }
749
- options = typeof stepOrMechanism === 'string' ? options : mechanismOrOptions;
750
781
  const promise = new Promise((resolve, reject) => {
751
782
  let forceConnect = false;
752
783
  if ($connection.step == 'WalletConnected' &&
753
784
  ($connection.wallet.status == 'locked' || $connection.wallet.status === 'disconnected')) {
754
- // console.log(`locked / disconnected : we assume it needs reconnection`);
755
785
  forceConnect = true;
756
786
  mechanism = $connection.mechanism; // we reuse existing mechanism as we just want to reconnect
757
787
  }
@@ -761,7 +791,7 @@ export function createConnection(settings) {
761
791
  }
762
792
  let idlePassed = $connection.step != 'Idle';
763
793
  if (!idlePassed || forceConnect) {
764
- connect(mechanism, options);
794
+ connect(mechanism, opts);
765
795
  }
766
796
  const unsubscribe = _store.subscribe((connection) => {
767
797
  if (connection.step === 'Idle' && idlePassed) {
@@ -1063,7 +1093,23 @@ export function createConnection(settings) {
1063
1093
  }
1064
1094
  }
1065
1095
  }
1066
- return {
1096
+ // Determine walletOnly (defaults to false, but true implies WalletConnected target behavior for mechanism)
1097
+ const walletOnly = settings.walletOnly || targetStep === 'WalletConnected';
1098
+ // Method on the store to check if target step is reached
1099
+ function storeIsTargetStepReached(connection) {
1100
+ if (targetStep === 'WalletConnected') {
1101
+ // For WalletConnected target, accept WalletConnected OR SignedIn-with-wallet
1102
+ return (connection.step === 'WalletConnected' || (connection.step === 'SignedIn' && connection.wallet !== undefined));
1103
+ }
1104
+ // For SignedIn target
1105
+ if (walletOnly) {
1106
+ // With walletOnly, only accept SignedIn-with-wallet
1107
+ return connection.step === 'SignedIn' && connection.wallet !== undefined;
1108
+ }
1109
+ // Accept any SignedIn variant
1110
+ return connection.step === 'SignedIn';
1111
+ }
1112
+ const store = {
1067
1113
  subscribe: _store.subscribe,
1068
1114
  connect,
1069
1115
  cancel,
@@ -1074,10 +1120,14 @@ export function createConnection(settings) {
1074
1120
  getSignatureForPublicKeyPublication,
1075
1121
  switchWalletChain,
1076
1122
  unlock,
1077
- ensureConnected,
1123
+ ensureConnected: ensureConnected, // Cast to bypass complex conditional typing
1124
+ isTargetStepReached: storeIsTargetStepReached, // Cast for type guard
1125
+ targetStep,
1126
+ walletOnly,
1078
1127
  provider: alwaysOnProviderWrapper.provider,
1079
1128
  chainId: '' + settings.chainInfo.id,
1080
1129
  chainInfo: settings.chainInfo,
1081
1130
  };
1131
+ return store;
1082
1132
  }
1083
1133
  //# sourceMappingURL=index.js.map