@etherplay/connect 0.0.35 → 0.0.37

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":"AAAA,OAAO,KAAK,EAAC,gBAAgB,EAAE,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACxE,OAAO,KAAK,EAAC,eAAe,EAAE,YAAY,EAAE,cAAc,EAAC,MAAM,6BAA6B,CAAC;AAC/F,OAAO,EAA0B,KAAK,0BAA0B,EAAC,MAAM,sCAAsC,CAAC;AAG9G,OAAO,EACN,wBAAwB,EAExB,gBAAgB,EAChB,iCAAiC,EACjC,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAC,wBAAwB,EAAE,iCAAiC,EAAE,gBAAgB,EAAC,CAAC;AACvF,YAAY,EAAC,aAAa,EAAC,CAAC;AAE5B,YAAY,EAAC,0BAA0B,EAAC,CAAC;AAEzC,MAAM,MAAM,cAAc,GAAG;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,OAAO,CAAC,EAAE;QAClB,QAAQ,CAAC,OAAO,EAAE;YACjB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;SACxB,CAAC;KACF,CAAC;IACF,QAAQ,CAAC,cAAc,CAAC,EAAE;QACzB,QAAQ,CAAC,OAAO,EAAE;YACjB,GAAG,EAAE,MAAM,CAAC;SACZ,CAAC;KACF,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,cAAc,CAAC,EAAE;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KACf,CAAC;IACF,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAE7B,SAAS,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,mBAAmB,GAAG,cAAc,GAAG;IAC3C,QAAQ,CAAC,OAAO,EAAE;QACjB,QAAQ,CAAC,OAAO,EAAE;YACjB,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;SACxB,CAAC;KACF,CAAC;CACF,CAAC;AAEF,KAAK,qBAAqB,CAAC,kBAAkB,IAAI,cAAc,GAAG;IACjE,QAAQ,EAAE,kBAAkB,CAAC;CAC7B,CAAC;AAEF,MAAM,MAAM,SAAS,CAAC,kBAAkB,IAAI,mBAAmB,GAAG,qBAAqB,CAAC,kBAAkB,CAAC,CAAC;AAE5G,MAAM,MAAM,aAAa,GAAG;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,gBAAgB,CAAC;CAE5B,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,UAAU,SAAS,MAAM,GAAG,SAAS,EAAE,OAAO,SAAS,KAAK,MAAM,EAAE,GAAG,SAAS,IAAI;IAC/G,IAAI,EAAE,QAAQ,CAAC;CACf,GAAG,CAAC,UAAU,SAAS,SAAS,GAAG;IAAC,IAAI,CAAC,EAAE,SAAS,CAAA;CAAC,GAAG;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,CAAC,GAC3E,CAAC,OAAO,SAAS,SAAS,GAAG;IAAC,OAAO,CAAC,EAAE,SAAS,CAAA;CAAC,GAAG;IAAC,OAAO,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAE1E,MAAM,MAAM,SAAS,GAAG,gBAAgB,GAAG,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,CAAC;AAE1G,MAAM,MAAM,mBAAmB,GAAG,gBAAgB,GAAG,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;AAE5F,MAAM,MAAM,UAAU,GAAG,iBAAiB,GAAG,UAAU,CAAC;AAExD,MAAM,MAAM,WAAW,CAAC,kBAAkB,IAAI;IAC7C,QAAQ,EAAE,cAAc,CAAC,kBAAkB,CAAC,CAAC;IAC7C,QAAQ,EAAE,KAAK,MAAM,EAAE,EAAE,CAAC;IAC1B,cAAc,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,EAAE,aAAa,GAAG,gBAAgB,GAAG,KAAK,CAAC;CACzD,GAAG,CAAC;IAAC,MAAM,EAAE,WAAW,CAAA;CAAC,GAAG;IAAC,MAAM,EAAE,QAAQ,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAC,GAAG;IAAC,MAAM,EAAE,cAAc,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAC,CAAC,CAAC;AAErH,KAAK,mBAAmB,CAAC,kBAAkB,IAAI;IAC9C,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACxC,CAAC;AAEF,KAAK,eAAe,CAAC,kBAAkB,IAAI;IAC1C,IAAI,EAAE,iBAAiB,CAAC;IACxB,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACxC,CAAC;AAEF,KAAK,QAAQ,CAAC,kBAAkB,IAC7B;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,gBAAgB,CAAC;IAC5B,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;CACjB,GACD;IACA,IAAI,EAAE,UAAU,CAAC;IACjB,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAC,CAAC;IAClD,OAAO,EAAE,aAAa,CAAC;IACvB,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACvC,CAAC;AAEL,MAAM,MAAM,UAAU,CAAC,kBAAkB,IAAI;IAI5C,KAAK,CAAC,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,GAAG,CAAA;KAAC,CAAC;IAEvC,OAAO,EAAE,YAAY,CAAC,kBAAkB,CAAC,EAAE,CAAC;CAC5C,GAAG,CACD;IACA,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,SAAS,CAAC;CACjB,GAED;IACA,IAAI,EAAE,mBAAmB,CAAC;IAC1B,MAAM,EAAE,SAAS,CAAC;CACjB,GAGD;IACA,IAAI,EAAE,eAAe,CAAC;IACtB,MAAM,EAAE,SAAS,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,gBAAgB,CAAC;CAC3B,GAED;IACA,IAAI,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;CAChD,GAED;IACA,IAAI,EAAE,4BAA4B,CAAC;IACnC,MAAM,EAAE,SAAS,CAAC;IAClB,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC7C,GAGD;IACA,IAAI,EAAE,qBAAqB,CAAC;IAC5B,SAAS,EAAE,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAC9C,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAC;CACvC,GAGD,eAAe,CAAC,kBAAkB,CAAC,GAEnC,mBAAmB,CAAC,kBAAkB,CAAC,GAMvC,QAAQ,CAAC,kBAAkB,CAAC,CAC9B,CAAC;AAIF,MAAM,MAAM,kBAAkB,CAAC,kBAAkB,IAAI,OAAO,CAC3D,UAAU,CAAC,kBAAkB,CAAC,EAC9B;IAAC,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,WAAW,CAAC,kBAAkB,CAAC,CAAA;CAAC,CAC3D,CAAC;AAGF,MAAM,MAAM,oBAAoB,CAAC,kBAAkB,IAAI,OAAO,CAC7D,UAAU,CAAC,kBAAkB,CAAC,EAC9B;IAAC,IAAI,EAAE,iBAAiB,CAAA;CAAC,CACzB,CAAC;AAKF,MAAM,MAAM,mBAAmB,CAAC,kBAAkB,IAC/C,oBAAoB,CAAC,kBAAkB,CAAC,GACxC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC;AAG1C,MAAM,MAAM,aAAa,CAAC,kBAAkB,IAAI,OAAO,CAAC,UAAU,CAAC,kBAAkB,CAAC,EAAE;IAAC,IAAI,EAAE,UAAU,CAAA;CAAC,CAAC,CAAC;AAM5G,wBAAgB,mBAAmB,CAAC,kBAAkB,EAAE,MAAM,SAAS,UAAU,EAAE,UAAU,SAAS,OAAO,GAAG,KAAK,EACpH,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,EAC1C,UAAU,EAAE,MAAM,EAClB,UAAU,CAAC,EAAE,UAAU,GACrB,UAAU,IAAI,MAAM,SAAS,iBAAiB,GAC9C,mBAAmB,CAAC,kBAAkB,CAAC,GACvC,UAAU,SAAS,IAAI,GACtB,kBAAkB,CAAC,kBAAkB,CAAC,GACtC,aAAa,CAAC,kBAAkB,CAAC,CAapC;AA0BD,MAAM,MAAM,iBAAiB,GAAG;IAC/B,6CAA6C,CAAC,EAAE,OAAO,CAAC;IACxD,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACpC,CAAC;AAEF,MAAM,MAAM,eAAe,CAC1B,kBAAkB,EAClB,MAAM,SAAS,UAAU,GAAG,UAAU,EACtC,UAAU,SAAS,OAAO,GAAG,KAAK,IAC/B;IACH,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,KAAK,EAAE,UAAU,CAAC,kBAAkB,CAAC,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;IAChF,OAAO,EAAE,CACR,SAAS,CAAC,EAAE,MAAM,SAAS,iBAAiB,GACzC,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,GAC9D,UAAU,SAAS,IAAI,GACtB,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,GAC9D,SAAS,EACb,OAAO,CAAC,EAAE,iBAAiB,KACvB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,MAAM,EAAE,MAAM,IAAI,CAAC;IACnB,IAAI,EAAE,CAAC,IAAI,EAAE,mBAAmB,GAAG,MAAM,GAAG,gBAAgB,KAAK,IAAI,CAAC;IACtE,gBAAgB,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,gBAAgB,EAAE,CACjB,OAAO,EAAE,KAAK,MAAM,EAAE,EACtB,OAAO,CAAC,EAAE;QAAC,6CAA6C,EAAE,OAAO,CAAA;KAAC,KAC9D,IAAI,CAAC;IACV,UAAU,EAAE,MAAM,IAAI,CAAC;IACvB,mCAAmC,EAAE,MAAM,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAC;IAClE,iBAAiB,EAAE,CAAC,SAAS,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACjE,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAG5B,eAAe,EAAE,MAAM,SAAS,iBAAiB,GAC9C;QACA,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC5E,CACC,IAAI,EAAE,iBAAiB,EACvB,SAAS,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,EAC1E,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;KAChD,GACA,UAAU,SAAS,IAAI,GACtB;QAEA,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAC/E,CACC,IAAI,EAAE,iBAAiB,EACvB,SAAS,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,EAC1E,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChD,CACC,IAAI,EAAE,UAAU,EAChB,SAAS,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,EAC1E,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,CAAC,CAAC;KACnD,GACA;QACA,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;QACrE,CACC,IAAI,EAAE,iBAAiB,EACvB,SAAS,CAAC,EAAE,eAAe,CAAC,MAAM,GAAG,SAAS,EAAE,KAAK,MAAM,EAAE,GAAG,SAAS,CAAC,EAC1E,OAAO,CAAC,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,CAAC,kBAAkB,CAAC,CAAC,CAAC;QAChD,CAAC,IAAI,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC,CAAC;KAC9G,CAAC;IAGL,mBAAmB,EAAE,CACpB,UAAU,EAAE,UAAU,CAAC,kBAAkB,CAAC,KACtC,UAAU,IAAI,MAAM,SAAS,iBAAiB,GAChD,mBAAmB,CAAC,kBAAkB,CAAC,GACvC,UAAU,SAAS,IAAI,GACtB,kBAAkB,CAAC,kBAAkB,CAAC,GACtC,aAAa,CAAC,kBAAkB,CAAC,CAAC;IAGtC,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IAGvB,QAAQ,EAAE,kBAAkB,CAAC;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;CACzC,CAAC;AAKF,wBAAgB,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE;IAC9D,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACrD,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,eAAe,CAAC,kBAAkB,EAAE,iBAAiB,CAAC,CAAC;AAG3D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IAC1C,UAAU,EAAE,iBAAiB,CAAC;IAC9B,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,eAAe,CAAC,0BAA0B,EAAE,iBAAiB,EAAE,IAAI,CAAC,CAAC;AAGzE,wBAAgB,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE;IAC9D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,eAAe,CAAC,kBAAkB,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAG1D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IAC1C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,EAAE,IAAI,CAAC;IACjB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,eAAe,CAAC,0BAA0B,EAAE,UAAU,EAAE,IAAI,CAAC,CAAC;AAGlE,wBAAgB,gBAAgB,CAAC,kBAAkB,EAAE,QAAQ,EAAE;IAC9D,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC,kBAAkB,CAAC,CAAC;IACzC,eAAe,EAAE,eAAe,CAAC,kBAAkB,CAAC,CAAC;IACrD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,eAAe,CAAC,kBAAkB,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC;AAG3D,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IAC1C,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,UAAU,CAAC,EAAE,KAAK,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,SAAS,CAAC,0BAA0B,CAAC,CAAC;IACjD,eAAe,CAAC,EAAE,SAAS,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,uCAAuC,CAAC,EAAE,OAAO,CAAC;IAClD,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAClC,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,MAAM,CAAC;CAC3B,GAAG,eAAe,CAAC,0BAA0B,EAAE,UAAU,EAAE,KAAK,CAAC,CAAC"}
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 });
@@ -471,6 +478,9 @@ export function createConnection(settings) {
471
478
  }
472
479
  let remember = false;
473
480
  async function connect(mechanism, options) {
481
+ if (!mechanism && (targetStep === 'WalletConnected' || walletOnly)) {
482
+ mechanism = { type: 'wallet' };
483
+ }
474
484
  remember = !(options?.doNotStoreLocally || false);
475
485
  if (mechanism) {
476
486
  if (mechanism.type === 'wallet') {
@@ -688,6 +698,10 @@ export function createConnection(settings) {
688
698
  }
689
699
  }
690
700
  else {
701
+ // Popup-based auth requires walletHost
702
+ if (!settings.walletHost) {
703
+ throw new Error('walletHost is required for popup-based authentication (email, oauth, mnemonic)');
704
+ }
691
705
  popup = connectViaPopup({
692
706
  mechanism,
693
707
  walletHost: settings.walletHost,
@@ -740,18 +754,37 @@ export function createConnection(settings) {
740
754
  });
741
755
  }
742
756
  }
743
- async function ensureConnected(stepOrMechanism, mechanismOrOptions, options) {
744
- const step = typeof stepOrMechanism === 'string' ? stepOrMechanism : 'SignedIn';
745
- let mechanism = typeof stepOrMechanism === 'string' ? mechanismOrOptions : stepOrMechanism;
757
+ async function ensureConnected(stepOrMechanismOrOptions, mechanismOrOptions, options) {
758
+ // Determine if first arg is a step string, mechanism, or options
759
+ let step;
760
+ let mechanism;
761
+ let opts;
762
+ if (typeof stepOrMechanismOrOptions === 'string') {
763
+ // First arg is a step
764
+ step = stepOrMechanismOrOptions;
765
+ mechanism = mechanismOrOptions;
766
+ opts = options;
767
+ }
768
+ else if (stepOrMechanismOrOptions && 'type' in stepOrMechanismOrOptions) {
769
+ // First arg is a mechanism
770
+ step = targetStep; // Use configured target as default
771
+ mechanism = stepOrMechanismOrOptions;
772
+ opts = mechanismOrOptions;
773
+ }
774
+ else {
775
+ // First arg is options or undefined
776
+ step = targetStep; // Use configured target as default
777
+ mechanism = undefined;
778
+ opts = stepOrMechanismOrOptions;
779
+ }
780
+ // For WalletConnected step, default to wallet mechanism
746
781
  if (!mechanism && step === 'WalletConnected') {
747
782
  mechanism = { type: 'wallet' };
748
783
  }
749
- options = typeof stepOrMechanism === 'string' ? options : mechanismOrOptions;
750
784
  const promise = new Promise((resolve, reject) => {
751
785
  let forceConnect = false;
752
786
  if ($connection.step == 'WalletConnected' &&
753
787
  ($connection.wallet.status == 'locked' || $connection.wallet.status === 'disconnected')) {
754
- // console.log(`locked / disconnected : we assume it needs reconnection`);
755
788
  forceConnect = true;
756
789
  mechanism = $connection.mechanism; // we reuse existing mechanism as we just want to reconnect
757
790
  }
@@ -761,7 +794,7 @@ export function createConnection(settings) {
761
794
  }
762
795
  let idlePassed = $connection.step != 'Idle';
763
796
  if (!idlePassed || forceConnect) {
764
- connect(mechanism, options);
797
+ connect(mechanism, opts);
765
798
  }
766
799
  const unsubscribe = _store.subscribe((connection) => {
767
800
  if (connection.step === 'Idle' && idlePassed) {
@@ -1063,7 +1096,23 @@ export function createConnection(settings) {
1063
1096
  }
1064
1097
  }
1065
1098
  }
1066
- return {
1099
+ // Determine walletOnly (defaults to false, but true implies WalletConnected target behavior for mechanism)
1100
+ const walletOnly = settings.walletOnly || targetStep === 'WalletConnected';
1101
+ // Method on the store to check if target step is reached
1102
+ function storeIsTargetStepReached(connection) {
1103
+ if (targetStep === 'WalletConnected') {
1104
+ // For WalletConnected target, accept WalletConnected OR SignedIn-with-wallet
1105
+ return (connection.step === 'WalletConnected' || (connection.step === 'SignedIn' && connection.wallet !== undefined));
1106
+ }
1107
+ // For SignedIn target
1108
+ if (walletOnly) {
1109
+ // With walletOnly, only accept SignedIn-with-wallet
1110
+ return connection.step === 'SignedIn' && connection.wallet !== undefined;
1111
+ }
1112
+ // Accept any SignedIn variant
1113
+ return connection.step === 'SignedIn';
1114
+ }
1115
+ const store = {
1067
1116
  subscribe: _store.subscribe,
1068
1117
  connect,
1069
1118
  cancel,
@@ -1074,10 +1123,14 @@ export function createConnection(settings) {
1074
1123
  getSignatureForPublicKeyPublication,
1075
1124
  switchWalletChain,
1076
1125
  unlock,
1077
- ensureConnected,
1126
+ ensureConnected: ensureConnected, // Cast to bypass complex conditional typing
1127
+ isTargetStepReached: storeIsTargetStepReached, // Cast for type guard
1128
+ targetStep,
1129
+ walletOnly,
1078
1130
  provider: alwaysOnProviderWrapper.provider,
1079
1131
  chainId: '' + settings.chainInfo.id,
1080
1132
  chainInfo: settings.chainInfo,
1081
1133
  };
1134
+ return store;
1082
1135
  }
1083
1136
  //# sourceMappingURL=index.js.map