@reown/appkit-experimental 1.1.0 → 1.1.3

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.
Files changed (64) hide show
  1. package/dist/esm/exports/smart-session/index.js +1 -0
  2. package/dist/esm/exports/smart-session/index.js.map +1 -1
  3. package/dist/esm/src/smart-session/controllers/SmartSessionsController.js +74 -0
  4. package/dist/esm/src/smart-session/controllers/SmartSessionsController.js.map +1 -0
  5. package/dist/esm/src/smart-session/schema/index.js +37 -5
  6. package/dist/esm/src/smart-session/schema/index.js.map +1 -1
  7. package/dist/esm/src/smart-session/ui/components/index.js +88 -0
  8. package/dist/esm/src/smart-session/ui/components/index.js.map +1 -0
  9. package/dist/esm/src/smart-session/ui/components/styles.js +21 -0
  10. package/dist/esm/src/smart-session/ui/components/styles.js.map +1 -0
  11. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/index.js +88 -0
  12. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/index.js.map +1 -0
  13. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/styles.js +21 -0
  14. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/styles.js.map +1 -0
  15. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/index.js +88 -0
  16. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/index.js.map +1 -0
  17. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/styles.js +21 -0
  18. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/styles.js.map +1 -0
  19. package/dist/esm/src/smart-session/ui/permissions/wui-permission-contract-call/index.js +71 -0
  20. package/dist/esm/src/smart-session/ui/permissions/wui-permission-contract-call/index.js.map +1 -0
  21. package/dist/esm/src/smart-session/ui/permissions/wui-permission-contract-call/styles.js +11 -0
  22. package/dist/esm/src/smart-session/ui/permissions/wui-permission-contract-call/styles.js.map +1 -0
  23. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-created-view/index.js +79 -0
  24. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-created-view/index.js.map +1 -0
  25. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-created-view/styles.js +7 -0
  26. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-created-view/styles.js.map +1 -0
  27. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/index.js +169 -0
  28. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/index.js.map +1 -0
  29. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/styles.js +30 -0
  30. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/styles.js.map +1 -0
  31. package/dist/esm/tests/smart-session/requestValidation/mockRequest.js +14 -0
  32. package/dist/esm/tests/smart-session/requestValidation/mockRequest.js.map +1 -0
  33. package/dist/esm/tests/smart-session/requestValidation/validateCommonFields.test.js +290 -0
  34. package/dist/esm/tests/smart-session/requestValidation/validateCommonFields.test.js.map +1 -0
  35. package/dist/esm/tests/smart-session/requestValidation/validateContractCallPermission.test.js +135 -0
  36. package/dist/esm/tests/smart-session/requestValidation/validateContractCallPermission.test.js.map +1 -0
  37. package/dist/esm/tests/smart-session/requestValidation/validateERC20RecurringAllowancePermission.test.js +175 -0
  38. package/dist/esm/tests/smart-session/requestValidation/validateERC20RecurringAllowancePermission.test.js.map +1 -0
  39. package/dist/esm/tests/smart-session/requestValidation/validateNativeTokenRecurringAllowancePermission.test.js +137 -0
  40. package/dist/esm/tests/smart-session/requestValidation/validateNativeTokenRecurringAllowancePermission.test.js.map +1 -0
  41. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  42. package/dist/types/exports/smart-session/index.d.ts +1 -1
  43. package/dist/types/src/smart-session/controllers/SmartSessionsController.d.ts +9 -0
  44. package/dist/types/src/smart-session/helper/index.d.ts +32 -2
  45. package/dist/types/src/smart-session/schema/index.d.ts +133 -8
  46. package/dist/types/src/smart-session/ui/components/index.d.ts +18 -0
  47. package/dist/types/src/smart-session/ui/components/styles.d.ts +2 -0
  48. package/dist/types/src/smart-session/ui/components/wui-permission-list-item/index.d.ts +18 -0
  49. package/dist/types/src/smart-session/ui/components/wui-permission-list-item/styles.d.ts +2 -0
  50. package/dist/types/src/smart-session/ui/components/wui-smart-session-list-item/index.d.ts +18 -0
  51. package/dist/types/src/smart-session/ui/components/wui-smart-session-list-item/styles.d.ts +2 -0
  52. package/dist/types/src/smart-session/ui/permissions/wui-permission-contract-call/index.d.ts +20 -0
  53. package/dist/types/src/smart-session/ui/permissions/wui-permission-contract-call/styles.d.ts +2 -0
  54. package/dist/types/src/smart-session/ui/views/w3m-smart-session-created-view/index.d.ts +13 -0
  55. package/dist/types/src/smart-session/ui/views/w3m-smart-session-created-view/styles.d.ts +2 -0
  56. package/dist/types/src/smart-session/ui/views/w3m-smart-session-list-view/index.d.ts +19 -0
  57. package/dist/types/src/smart-session/ui/views/w3m-smart-session-list-view/styles.d.ts +2 -0
  58. package/dist/types/src/smart-session/utils/TypeUtils.d.ts +18 -1
  59. package/dist/types/tests/smart-session/requestValidation/mockRequest.d.ts +2 -0
  60. package/dist/types/tests/smart-session/requestValidation/validateCommonFields.test.d.ts +1 -0
  61. package/dist/types/tests/smart-session/requestValidation/validateContractCallPermission.test.d.ts +1 -0
  62. package/dist/types/tests/smart-session/requestValidation/validateERC20RecurringAllowancePermission.test.d.ts +1 -0
  63. package/dist/types/tests/smart-session/requestValidation/validateNativeTokenRecurringAllowancePermission.test.d.ts +1 -0
  64. package/package.json +4 -4
@@ -1,2 +1,2 @@
1
1
  export { grantPermissions, isSmartSessionSupported } from '../../src/smart-session/grantPermissions.js';
2
- export type { KeyType, SmartSessionGrantPermissionsRequest, SmartSessionGrantPermissionsResponse } from '../../src/smart-session/utils/TypeUtils.js';
2
+ export * from '../../src/smart-session/utils/TypeUtils.js';
@@ -0,0 +1,9 @@
1
+ import type { SmartSession } from '../utils/TypeUtils.js';
2
+ export type SmartSessionsControllerState = {
3
+ sessions: SmartSession[];
4
+ };
5
+ export declare const SmartSessionsController: {
6
+ state: SmartSessionsControllerState;
7
+ subscribeKey<K extends "sessions">(key: K, callback: (value: SmartSessionsControllerState[K]) => void): () => void;
8
+ getSmartSessions(): Promise<SmartSession[]>;
9
+ };
@@ -26,7 +26,22 @@ export declare function validateRequest(request: SmartSessionGrantPermissionsReq
26
26
  operation?: import("../utils/TypeUtils.js").Operation | undefined;
27
27
  }[];
28
28
  };
29
- }, ...{
29
+ } | {
30
+ type: "native-token-recurring-allowance";
31
+ data: {
32
+ allowance: string;
33
+ start: number;
34
+ period: number;
35
+ };
36
+ } | {
37
+ type: "erc20-recurring-allowance";
38
+ data: {
39
+ allowance: string;
40
+ start: number;
41
+ period: number;
42
+ token: string;
43
+ };
44
+ }, ...({
30
45
  type: "contract-call";
31
46
  data: {
32
47
  address: string;
@@ -41,7 +56,22 @@ export declare function validateRequest(request: SmartSessionGrantPermissionsReq
41
56
  operation?: import("../utils/TypeUtils.js").Operation | undefined;
42
57
  }[];
43
58
  };
44
- }[]];
59
+ } | {
60
+ type: "native-token-recurring-allowance";
61
+ data: {
62
+ allowance: string;
63
+ start: number;
64
+ period: number;
65
+ };
66
+ } | {
67
+ type: "erc20-recurring-allowance";
68
+ data: {
69
+ allowance: string;
70
+ start: number;
71
+ period: number;
72
+ token: string;
73
+ };
74
+ })[]];
45
75
  policies: {
46
76
  type: string;
47
77
  data: Record<string, unknown>;
@@ -14,7 +14,9 @@ export declare const ERROR_MESSAGES: {
14
14
  INVALID_PUBLIC_KEY_FORMAT: string;
15
15
  INVALID_PERMISSIONS: string;
16
16
  INVALID_PERMISSIONS_TYPE: string;
17
- INVALID_PERMISSIONS_TYPE_LITERALS: string;
17
+ INVALID_ALLOWANCE_FORMAT: string;
18
+ INVALID_START: string;
19
+ INVALID_PERIOD: string;
18
20
  INVALID_POLICIES: string;
19
21
  INVALID_POLICIES_TYPE: string;
20
22
  INVALID_GRANT_PERMISSIONS_RESPONSE: string;
@@ -64,8 +66,8 @@ export declare const SmartSessionGrantPermissionsRequestSchema: z.ZodObject<{
64
66
  }[];
65
67
  };
66
68
  }>;
67
- permissions: z.ZodArray<z.ZodObject<{
68
- type: z.ZodEffects<z.ZodLiteral<"contract-call">, "contract-call", "contract-call">;
69
+ permissions: z.ZodArray<z.ZodUnion<[z.ZodObject<{
70
+ type: z.ZodLiteral<"contract-call">;
69
71
  data: z.ZodObject<{
70
72
  address: z.ZodString;
71
73
  abi: z.ZodArray<z.ZodRecord<z.ZodString, z.ZodUnknown>, "many">;
@@ -155,7 +157,70 @@ export declare const SmartSessionGrantPermissionsRequestSchema: z.ZodObject<{
155
157
  operation?: Operation | undefined;
156
158
  }[];
157
159
  };
158
- }>, "atleastone">;
160
+ }>, z.ZodObject<{
161
+ type: z.ZodLiteral<"native-token-recurring-allowance">;
162
+ data: z.ZodObject<{
163
+ allowance: z.ZodString;
164
+ start: z.ZodEffects<z.ZodNumber, number, number>;
165
+ period: z.ZodNumber;
166
+ }, "strip", z.ZodTypeAny, {
167
+ allowance: string;
168
+ start: number;
169
+ period: number;
170
+ }, {
171
+ allowance: string;
172
+ start: number;
173
+ period: number;
174
+ }>;
175
+ }, "strip", z.ZodTypeAny, {
176
+ type: "native-token-recurring-allowance";
177
+ data: {
178
+ allowance: string;
179
+ start: number;
180
+ period: number;
181
+ };
182
+ }, {
183
+ type: "native-token-recurring-allowance";
184
+ data: {
185
+ allowance: string;
186
+ start: number;
187
+ period: number;
188
+ };
189
+ }>, z.ZodObject<{
190
+ type: z.ZodLiteral<"erc20-recurring-allowance">;
191
+ data: z.ZodObject<{
192
+ token: z.ZodString;
193
+ allowance: z.ZodString;
194
+ start: z.ZodEffects<z.ZodNumber, number, number>;
195
+ period: z.ZodNumber;
196
+ }, "strip", z.ZodTypeAny, {
197
+ allowance: string;
198
+ start: number;
199
+ period: number;
200
+ token: string;
201
+ }, {
202
+ allowance: string;
203
+ start: number;
204
+ period: number;
205
+ token: string;
206
+ }>;
207
+ }, "strip", z.ZodTypeAny, {
208
+ type: "erc20-recurring-allowance";
209
+ data: {
210
+ allowance: string;
211
+ start: number;
212
+ period: number;
213
+ token: string;
214
+ };
215
+ }, {
216
+ type: "erc20-recurring-allowance";
217
+ data: {
218
+ allowance: string;
219
+ start: number;
220
+ period: number;
221
+ token: string;
222
+ };
223
+ }>]>, "atleastone">;
159
224
  policies: z.ZodArray<z.ZodObject<{
160
225
  type: z.ZodString;
161
226
  data: z.ZodRecord<z.ZodString, z.ZodUnknown>;
@@ -193,7 +258,22 @@ export declare const SmartSessionGrantPermissionsRequestSchema: z.ZodObject<{
193
258
  operation?: Operation | undefined;
194
259
  }[];
195
260
  };
196
- }, ...{
261
+ } | {
262
+ type: "native-token-recurring-allowance";
263
+ data: {
264
+ allowance: string;
265
+ start: number;
266
+ period: number;
267
+ };
268
+ } | {
269
+ type: "erc20-recurring-allowance";
270
+ data: {
271
+ allowance: string;
272
+ start: number;
273
+ period: number;
274
+ token: string;
275
+ };
276
+ }, ...({
197
277
  type: "contract-call";
198
278
  data: {
199
279
  address: string;
@@ -208,7 +288,22 @@ export declare const SmartSessionGrantPermissionsRequestSchema: z.ZodObject<{
208
288
  operation?: Operation | undefined;
209
289
  }[];
210
290
  };
211
- }[]];
291
+ } | {
292
+ type: "native-token-recurring-allowance";
293
+ data: {
294
+ allowance: string;
295
+ start: number;
296
+ period: number;
297
+ };
298
+ } | {
299
+ type: "erc20-recurring-allowance";
300
+ data: {
301
+ allowance: string;
302
+ start: number;
303
+ period: number;
304
+ token: string;
305
+ };
306
+ })[]];
212
307
  policies: {
213
308
  type: string;
214
309
  data: Record<string, unknown>;
@@ -241,7 +336,22 @@ export declare const SmartSessionGrantPermissionsRequestSchema: z.ZodObject<{
241
336
  operation?: Operation | undefined;
242
337
  }[];
243
338
  };
244
- }, ...{
339
+ } | {
340
+ type: "native-token-recurring-allowance";
341
+ data: {
342
+ allowance: string;
343
+ start: number;
344
+ period: number;
345
+ };
346
+ } | {
347
+ type: "erc20-recurring-allowance";
348
+ data: {
349
+ allowance: string;
350
+ start: number;
351
+ period: number;
352
+ token: string;
353
+ };
354
+ }, ...({
245
355
  type: "contract-call";
246
356
  data: {
247
357
  address: string;
@@ -256,7 +366,22 @@ export declare const SmartSessionGrantPermissionsRequestSchema: z.ZodObject<{
256
366
  operation?: Operation | undefined;
257
367
  }[];
258
368
  };
259
- }[]];
369
+ } | {
370
+ type: "native-token-recurring-allowance";
371
+ data: {
372
+ allowance: string;
373
+ start: number;
374
+ period: number;
375
+ };
376
+ } | {
377
+ type: "erc20-recurring-allowance";
378
+ data: {
379
+ allowance: string;
380
+ start: number;
381
+ period: number;
382
+ token: string;
383
+ };
384
+ })[]];
260
385
  policies: {
261
386
  type: string;
262
387
  data: Record<string, unknown>;
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class W3mAccountTokensWidget extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ private unsubscribe;
5
+ private tokenBalance;
6
+ constructor();
7
+ disconnectedCallback(): void;
8
+ render(): import("lit").TemplateResult<1>;
9
+ private tokenTemplate;
10
+ private tokenItemTemplate;
11
+ private onReceiveClick;
12
+ private onBuyClick;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'w3m-account-tokens-widget': W3mAccountTokensWidget;
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class W3mAccountTokensWidget extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ private unsubscribe;
5
+ private tokenBalance;
6
+ constructor();
7
+ disconnectedCallback(): void;
8
+ render(): import("lit").TemplateResult<1>;
9
+ private tokenTemplate;
10
+ private tokenItemTemplate;
11
+ private onReceiveClick;
12
+ private onBuyClick;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'w3m-account-tokens-widget': W3mAccountTokensWidget;
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,18 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class W3mAccountTokensWidget extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ private unsubscribe;
5
+ private tokenBalance;
6
+ constructor();
7
+ disconnectedCallback(): void;
8
+ render(): import("lit").TemplateResult<1>;
9
+ private tokenTemplate;
10
+ private tokenItemTemplate;
11
+ private onReceiveClick;
12
+ private onBuyClick;
13
+ }
14
+ declare global {
15
+ interface HTMLElementTagNameMap {
16
+ 'wui-smart-session-list-item': W3mAccountTokensWidget;
17
+ }
18
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,20 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class WuiPermissionContractCall extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ functions?: {
5
+ functionName: string;
6
+ }[];
7
+ contractAddress?: `0x${string}`;
8
+ expiry?: number;
9
+ render(): import("lit").TemplateResult<1> | null;
10
+ }
11
+ declare global {
12
+ interface HTMLElementTagNameMap {
13
+ 'wui-permission-contract-call': WuiPermissionContractCall;
14
+ }
15
+ namespace JSX {
16
+ interface IntrinsicElements {
17
+ 'wui-permission-contract-call': Partial<WuiPermissionContractCall>;
18
+ }
19
+ }
20
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,13 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class W3mSmartSessionCreatedView extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ render(): import("lit").TemplateResult<1>;
5
+ private onboardingTemplate;
6
+ private buttonsTemplate;
7
+ private redirectToAccount;
8
+ }
9
+ declare global {
10
+ interface HTMLElementTagNameMap {
11
+ 'w3m-smart-session-created-view': W3mSmartSessionCreatedView;
12
+ }
13
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -0,0 +1,19 @@
1
+ import { LitElement } from 'lit';
2
+ export declare class W3mSmartSessionListView extends LitElement {
3
+ static styles: import("lit").CSSResult;
4
+ private currentTab;
5
+ private unsubscribe;
6
+ private sessions;
7
+ constructor();
8
+ firstUpdated(): void;
9
+ render(): import("lit").TemplateResult<1>;
10
+ private listContentTemplate;
11
+ private groupedSessionsTemplate;
12
+ private templateSessions;
13
+ private onTabChange;
14
+ }
15
+ declare global {
16
+ interface HTMLElementTagNameMap {
17
+ 'w3m-smart-session-list-view': W3mSmartSessionListView;
18
+ }
19
+ }
@@ -0,0 +1,2 @@
1
+ declare const _default: import("lit").CSSResult;
2
+ export default _default;
@@ -65,7 +65,24 @@ export type ContractCallPermission = {
65
65
  functions: FunctionPermission[];
66
66
  };
67
67
  };
68
- export type Permission = ContractCallPermission;
68
+ export type NativeTokenRecurringAllowancePermission = {
69
+ type: 'native-token-recurring-allowance';
70
+ data: {
71
+ allowance: `0x${string}`;
72
+ start: number;
73
+ period: number;
74
+ };
75
+ };
76
+ export type ERC20RecurringAllowancePermission = {
77
+ type: 'erc20-recurring-allowance';
78
+ data: {
79
+ token: `0x${string}`;
80
+ allowance: `0x${string}`;
81
+ start: number;
82
+ period: number;
83
+ };
84
+ };
85
+ export type Permission = ContractCallPermission | NativeTokenRecurringAllowancePermission | ERC20RecurringAllowancePermission;
69
86
  export type AddPermissionRequest = SmartSessionGrantPermissionsRequest;
70
87
  export type AddPermissionResponse = {
71
88
  pci: string;
@@ -0,0 +1,2 @@
1
+ import type { SmartSessionGrantPermissionsRequest } from '../../../exports/smart-session/index.js';
2
+ export declare function mockRequest(): Omit<SmartSessionGrantPermissionsRequest, "permissions">;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-experimental",
3
- "version": "1.1.0",
3
+ "version": "1.1.3",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/exports/index.js",
6
6
  "types": "./dist/types/exports/index.d.ts",
@@ -30,9 +30,9 @@
30
30
  "dependencies": {
31
31
  "axios": "1.7.2",
32
32
  "zod": "3.22.4",
33
- "@reown/appkit": "1.1.0",
34
- "@reown/appkit-core": "1.1.0",
35
- "@reown/appkit-common": "1.1.0"
33
+ "@reown/appkit": "1.1.3",
34
+ "@reown/appkit-core": "1.1.3",
35
+ "@reown/appkit-common": "1.1.3"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@types/axios-mock-adapter": "1.10.0",