@reown/appkit-experimental 1.1.3 → 1.1.4

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 (37) hide show
  1. package/dist/esm/exports/smart-session/index.js +2 -0
  2. package/dist/esm/exports/smart-session/index.js.map +1 -1
  3. package/dist/esm/src/smart-session/grantPermissions.js +5 -1
  4. package/dist/esm/src/smart-session/grantPermissions.js.map +1 -1
  5. package/dist/esm/tsconfig.tsbuildinfo +1 -1
  6. package/dist/types/exports/smart-session/index.d.ts +2 -0
  7. package/package.json +6 -4
  8. package/dist/esm/src/smart-session/controllers/SmartSessionsController.js +0 -74
  9. package/dist/esm/src/smart-session/controllers/SmartSessionsController.js.map +0 -1
  10. package/dist/esm/src/smart-session/ui/components/index.js +0 -88
  11. package/dist/esm/src/smart-session/ui/components/index.js.map +0 -1
  12. package/dist/esm/src/smart-session/ui/components/styles.js +0 -21
  13. package/dist/esm/src/smart-session/ui/components/styles.js.map +0 -1
  14. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/index.js +0 -88
  15. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/index.js.map +0 -1
  16. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/styles.js +0 -21
  17. package/dist/esm/src/smart-session/ui/components/wui-permission-list-item/styles.js.map +0 -1
  18. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/index.js +0 -88
  19. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/index.js.map +0 -1
  20. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/styles.js +0 -21
  21. package/dist/esm/src/smart-session/ui/components/wui-smart-session-list-item/styles.js.map +0 -1
  22. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/index.js +0 -169
  23. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/index.js.map +0 -1
  24. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/styles.js +0 -30
  25. package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/styles.js.map +0 -1
  26. package/dist/esm/tests/smart-session/requestValidation.test.js +0 -423
  27. package/dist/esm/tests/smart-session/requestValidation.test.js.map +0 -1
  28. package/dist/types/src/smart-session/controllers/SmartSessionsController.d.ts +0 -9
  29. package/dist/types/src/smart-session/ui/components/index.d.ts +0 -18
  30. package/dist/types/src/smart-session/ui/components/styles.d.ts +0 -2
  31. package/dist/types/src/smart-session/ui/components/wui-permission-list-item/index.d.ts +0 -18
  32. package/dist/types/src/smart-session/ui/components/wui-permission-list-item/styles.d.ts +0 -2
  33. package/dist/types/src/smart-session/ui/components/wui-smart-session-list-item/index.d.ts +0 -18
  34. package/dist/types/src/smart-session/ui/components/wui-smart-session-list-item/styles.d.ts +0 -2
  35. package/dist/types/src/smart-session/ui/views/w3m-smart-session-list-view/index.d.ts +0 -19
  36. package/dist/types/src/smart-session/ui/views/w3m-smart-session-list-view/styles.d.ts +0 -2
  37. package/dist/types/tests/smart-session/requestValidation.test.d.ts +0 -1
@@ -1,2 +1,4 @@
1
1
  export { grantPermissions, isSmartSessionSupported } from '../../src/smart-session/grantPermissions.js';
2
2
  export * from '../../src/smart-session/utils/TypeUtils.js';
3
+ export * from '../../src/smart-session/ui/views/w3m-smart-session-created-view/index.js';
4
+ export * from '../../src/smart-session/ui/permissions/wui-permission-contract-call/index.js';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@reown/appkit-experimental",
3
- "version": "1.1.3",
3
+ "version": "1.1.4",
4
4
  "type": "module",
5
5
  "main": "./dist/esm/exports/index.js",
6
6
  "types": "./dist/types/exports/index.d.ts",
@@ -30,9 +30,11 @@
30
30
  "dependencies": {
31
31
  "axios": "1.7.2",
32
32
  "zod": "3.22.4",
33
- "@reown/appkit": "1.1.3",
34
- "@reown/appkit-core": "1.1.3",
35
- "@reown/appkit-common": "1.1.3"
33
+ "lit": "3.1.0",
34
+ "@reown/appkit": "1.1.4",
35
+ "@reown/appkit-core": "1.1.4",
36
+ "@reown/appkit-common": "1.1.4",
37
+ "@reown/appkit-ui": "1.1.4"
36
38
  },
37
39
  "devDependencies": {
38
40
  "@types/axios-mock-adapter": "1.10.0",
@@ -1,74 +0,0 @@
1
- import { subscribeKey as subKey } from 'valtio/vanilla/utils';
2
- import { proxy } from 'valtio/vanilla';
3
- import { AccountController, BlockchainApiController, SnackController } from '@reown/appkit-core';
4
- const state = proxy({
5
- sessions: []
6
- });
7
- export const SmartSessionsController = {
8
- state,
9
- subscribeKey(key, callback) {
10
- return subKey(state, key, callback);
11
- },
12
- async getSmartSessions() {
13
- try {
14
- const caipAddress = AccountController.state.caipAddress;
15
- if (!caipAddress) {
16
- return [];
17
- }
18
- const sessions = (await BlockchainApiController.getSmartSessions(caipAddress));
19
- state.sessions = sessions.pcis;
20
- return sessions.pcis;
21
- }
22
- catch (e) {
23
- SnackController.showError('Error fetching smart sessions');
24
- const MOCK_SESSIONS = [
25
- {
26
- project: {
27
- id: '0x123',
28
- name: 'Uniswap',
29
- url: 'https://app.uniswap.org',
30
- iconUrl: 'https://app.uniswap.org/static/media/uniswap-wallet-icon.12b3568891522db07d59.png'
31
- },
32
- pci: '0x123',
33
- expiry: Date.now() + 10000,
34
- permissions: [],
35
- policies: [],
36
- createdAt: Date.now() - 10000,
37
- context: '0x123'
38
- },
39
- {
40
- project: {
41
- id: '0x123',
42
- name: 'Uniswap',
43
- url: 'https://app.uniswap.org',
44
- iconUrl: 'https://app.uniswap.org/static/media/uniswap-wallet-icon.12b3568891522db07d59.png'
45
- },
46
- pci: '0x123',
47
- expiry: Date.now() - 5000,
48
- permissions: [],
49
- policies: [],
50
- createdAt: Date.now() - 15000,
51
- context: '0x123'
52
- },
53
- {
54
- project: {
55
- id: '0x123',
56
- name: 'Uniswap',
57
- url: 'https://app.uniswap.org',
58
- iconUrl: 'https://app.uniswap.org/static/media/uniswap-wallet-icon.12b3568891522db07d59.png'
59
- },
60
- pci: '0x123',
61
- expiry: Date.now() + 10000,
62
- permissions: [],
63
- policies: [],
64
- createdAt: Date.now() - 10000,
65
- context: '0x123',
66
- revokedAt: Date.now()
67
- }
68
- ];
69
- state.sessions = MOCK_SESSIONS;
70
- return MOCK_SESSIONS;
71
- }
72
- }
73
- };
74
- //# sourceMappingURL=SmartSessionsController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SmartSessionsController.js","sourceRoot":"","sources":["../../../../../src/smart-session/controllers/SmartSessionsController.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,IAAI,MAAM,EAAE,MAAM,sBAAsB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAA;AAEtC,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAA;AAUhG,MAAM,KAAK,GAAG,KAAK,CAA+B;IAChD,QAAQ,EAAE,EAAE;CACb,CAAC,CAAA;AAGF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,KAAK;IACL,YAAY,CACV,GAAM,EACN,QAA0D;QAE1D,OAAO,MAAM,CAAC,KAAK,EAAE,GAAG,EAAE,QAAQ,CAAC,CAAA;IACrC,CAAC;IACD,KAAK,CAAC,gBAAgB;QACpB,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,iBAAiB,CAAC,KAAK,CAAC,WAAW,CAAA;YACvD,IAAI,CAAC,WAAW,EAAE,CAAC;gBACjB,OAAO,EAAE,CAAA;YACX,CAAC;YAED,MAAM,QAAQ,GAAG,CAAC,MAAM,uBAAuB,CAAC,gBAAgB,CAAC,WAAW,CAAC,CAE5E,CAAA;YACD,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAA;YAE9B,OAAO,QAAQ,CAAC,IAAI,CAAA;QACtB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,eAAe,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAA;YAE1D,MAAM,aAAa,GAAmB;gBACpC;oBACE,OAAO,EAAE;wBACP,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,yBAAyB;wBAC9B,OAAO,EACL,mFAAmF;qBACtF;oBACD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAM;oBAC3B,WAAW,EAAE,EAAE;oBACf,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAM;oBAC9B,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,OAAO,EAAE;wBACP,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,yBAAyB;wBAC9B,OAAO,EACL,mFAAmF;qBACtF;oBACD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI;oBACzB,WAAW,EAAE,EAAE;oBACf,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAM;oBAC9B,OAAO,EAAE,OAAO;iBACjB;gBACD;oBACE,OAAO,EAAE;wBACP,EAAE,EAAE,OAAO;wBACX,IAAI,EAAE,SAAS;wBACf,GAAG,EAAE,yBAAyB;wBAC9B,OAAO,EACL,mFAAmF;qBACtF;oBACD,GAAG,EAAE,OAAO;oBACZ,MAAM,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAM;oBAC3B,WAAW,EAAE,EAAE;oBACf,QAAQ,EAAE,EAAE;oBACZ,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,KAAM;oBAC9B,OAAO,EAAE,OAAO;oBAChB,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE;iBACtB;aACF,CAAA;YAED,KAAK,CAAC,QAAQ,GAAG,aAAa,CAAA;YAE9B,OAAO,aAAa,CAAA;QACtB,CAAC;IACH,CAAC;CACF,CAAA"}
@@ -1,88 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { AccountController, EventsController, RouterController } from '@reown/appkit-core';
8
- import { customElement } from '@reown/appkit-ui';
9
- import { LitElement, html } from 'lit';
10
- import styles from './styles.js';
11
- import { state } from 'lit/decorators.js';
12
- import { W3mFrameRpcConstants } from '@reown/appkit-wallet';
13
- let W3mAccountTokensWidget = class W3mAccountTokensWidget extends LitElement {
14
- constructor() {
15
- super();
16
- this.unsubscribe = [];
17
- this.tokenBalance = AccountController.state.tokenBalance;
18
- this.unsubscribe.push(...[
19
- AccountController.subscribe(val => {
20
- this.tokenBalance = val.tokenBalance;
21
- })
22
- ]);
23
- }
24
- disconnectedCallback() {
25
- this.unsubscribe.forEach(unsubscribe => unsubscribe());
26
- }
27
- render() {
28
- return html `${this.tokenTemplate()}`;
29
- }
30
- tokenTemplate() {
31
- if (this.tokenBalance && this.tokenBalance?.length > 0) {
32
- return html `<wui-flex class="contentContainer" flexDirection="column" gap="xs">
33
- ${this.tokenItemTemplate()}
34
- </wui-flex>`;
35
- }
36
- return html ` <wui-flex flexDirection="column" gap="xs"
37
- ><wui-list-description
38
- @click=${this.onBuyClick.bind(this)}
39
- text="Buy Crypto"
40
- description="Easy with card or bank account"
41
- icon="card"
42
- iconColor="success-100"
43
- iconBackgroundColor="success-100"
44
- tag="popular"
45
- ></wui-list-description
46
- ><wui-list-description
47
- @click=${this.onReceiveClick.bind(this)}
48
- text="Receive funds"
49
- description="Transfer tokens on your wallet"
50
- icon="arrowBottomCircle"
51
- iconColor="fg-200"
52
- iconBackgroundColor="fg-200"
53
- ></wui-list-description
54
- ></wui-flex>`;
55
- }
56
- tokenItemTemplate() {
57
- return this.tokenBalance?.map(token => html `<wui-list-token
58
- tokenName=${token.name}
59
- tokenImageUrl=${token.iconUrl}
60
- tokenAmount=${token.quantity.numeric}
61
- tokenValue=${token.value}
62
- tokenCurrency=${token.symbol}
63
- ></wui-list-token>`);
64
- }
65
- onReceiveClick() {
66
- RouterController.push('WalletReceive');
67
- }
68
- onBuyClick() {
69
- EventsController.sendEvent({
70
- type: 'track',
71
- event: 'SELECT_BUY_CRYPTO',
72
- properties: {
73
- isSmartAccount: AccountController.state.preferredAccountType ===
74
- W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
75
- }
76
- });
77
- RouterController.push('OnRampProviders');
78
- }
79
- };
80
- W3mAccountTokensWidget.styles = styles;
81
- __decorate([
82
- state()
83
- ], W3mAccountTokensWidget.prototype, "tokenBalance", void 0);
84
- W3mAccountTokensWidget = __decorate([
85
- customElement('w3m-account-tokens-widget')
86
- ], W3mAccountTokensWidget);
87
- export { W3mAccountTokensWidget };
88
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/smart-session/ui/components/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAGpD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,UAAU;IASpD;QACE,KAAK,EAAE,CAAA;QAND,gBAAW,GAAmB,EAAE,CAAA;QAGvB,iBAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAA;QAIlE,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG;YACD,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;YACtC,CAAC,CAAC;SACH,CACF,CAAA;IACH,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IACxD,CAAC;IAGe,MAAM;QACpB,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAA;IACtC,CAAC;IAGO,aAAa;QACnB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAA;UACP,IAAI,CAAC,iBAAiB,EAAE;kBAChB,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;iBAS1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;iBAO9B,CAAA;IACf,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAC3B,KAAK,CAAC,EAAE,CACN,IAAI,CAAA;sBACU,KAAK,CAAC,IAAI;0BACN,KAAK,CAAC,OAAO;wBACf,KAAK,CAAC,QAAQ,CAAC,OAAO;uBACvB,KAAK,CAAC,KAAK;0BACR,KAAK,CAAC,MAAM;2BACX,CACtB,CAAA;IACH,CAAC;IAEO,cAAc;QACpB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IAEO,UAAU;QAChB,gBAAgB,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE;gBACV,cAAc,EACZ,iBAAiB,CAAC,KAAK,CAAC,oBAAoB;oBAC5C,oBAAoB,CAAC,aAAa,CAAC,aAAa;aACnD;SACF,CAAC,CAAA;QACF,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;;AArFsB,6BAAM,GAAG,MAAM,AAAT,CAAS;AAMrB;IAAhB,KAAK,EAAE;4DAA4D;AAPzD,sBAAsB;IADlC,aAAa,CAAC,2BAA2B,CAAC;GAC9B,sBAAsB,CAuFlC"}
@@ -1,21 +0,0 @@
1
- import { css } from 'lit';
2
- export default css `
3
- :host {
4
- width: 100%;
5
- }
6
-
7
- wui-flex {
8
- width: 100%;
9
- }
10
-
11
- .contentContainer {
12
- max-height: 280px;
13
- overflow: scroll;
14
- scrollbar-width: none;
15
- }
16
-
17
- .contentContainer::-webkit-scrollbar {
18
- display: none;
19
- }
20
- `;
21
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../src/smart-session/ui/components/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;CAkBjB,CAAA"}
@@ -1,88 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { AccountController, EventsController, RouterController } from '@reown/appkit-core';
8
- import { customElement } from '@reown/appkit-ui';
9
- import { LitElement, html } from 'lit';
10
- import styles from './styles.js';
11
- import { state } from 'lit/decorators.js';
12
- import { W3mFrameRpcConstants } from '@reown/appkit-wallet';
13
- let W3mAccountTokensWidget = class W3mAccountTokensWidget extends LitElement {
14
- constructor() {
15
- super();
16
- this.unsubscribe = [];
17
- this.tokenBalance = AccountController.state.tokenBalance;
18
- this.unsubscribe.push(...[
19
- AccountController.subscribe(val => {
20
- this.tokenBalance = val.tokenBalance;
21
- })
22
- ]);
23
- }
24
- disconnectedCallback() {
25
- this.unsubscribe.forEach(unsubscribe => unsubscribe());
26
- }
27
- render() {
28
- return html `${this.tokenTemplate()}`;
29
- }
30
- tokenTemplate() {
31
- if (this.tokenBalance && this.tokenBalance?.length > 0) {
32
- return html `<wui-flex class="contentContainer" flexDirection="column" gap="xs">
33
- ${this.tokenItemTemplate()}
34
- </wui-flex>`;
35
- }
36
- return html ` <wui-flex flexDirection="column" gap="xs"
37
- ><wui-list-description
38
- @click=${this.onBuyClick.bind(this)}
39
- text="Buy Crypto"
40
- description="Easy with card or bank account"
41
- icon="card"
42
- iconColor="success-100"
43
- iconBackgroundColor="success-100"
44
- tag="popular"
45
- ></wui-list-description
46
- ><wui-list-description
47
- @click=${this.onReceiveClick.bind(this)}
48
- text="Receive funds"
49
- description="Transfer tokens on your wallet"
50
- icon="arrowBottomCircle"
51
- iconColor="fg-200"
52
- iconBackgroundColor="fg-200"
53
- ></wui-list-description
54
- ></wui-flex>`;
55
- }
56
- tokenItemTemplate() {
57
- return this.tokenBalance?.map(token => html `<wui-list-token
58
- tokenName=${token.name}
59
- tokenImageUrl=${token.iconUrl}
60
- tokenAmount=${token.quantity.numeric}
61
- tokenValue=${token.value}
62
- tokenCurrency=${token.symbol}
63
- ></wui-list-token>`);
64
- }
65
- onReceiveClick() {
66
- RouterController.push('WalletReceive');
67
- }
68
- onBuyClick() {
69
- EventsController.sendEvent({
70
- type: 'track',
71
- event: 'SELECT_BUY_CRYPTO',
72
- properties: {
73
- isSmartAccount: AccountController.state.preferredAccountType ===
74
- W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
75
- }
76
- });
77
- RouterController.push('OnRampProviders');
78
- }
79
- };
80
- W3mAccountTokensWidget.styles = styles;
81
- __decorate([
82
- state()
83
- ], W3mAccountTokensWidget.prototype, "tokenBalance", void 0);
84
- W3mAccountTokensWidget = __decorate([
85
- customElement('w3m-account-tokens-widget')
86
- ], W3mAccountTokensWidget);
87
- export { W3mAccountTokensWidget };
88
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/smart-session/ui/components/wui-permission-list-item/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAGpD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,UAAU;IASpD;QACE,KAAK,EAAE,CAAA;QAND,gBAAW,GAAmB,EAAE,CAAA;QAGvB,iBAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAA;QAIlE,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG;YACD,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;YACtC,CAAC,CAAC;SACH,CACF,CAAA;IACH,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IACxD,CAAC;IAGe,MAAM;QACpB,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAA;IACtC,CAAC;IAGO,aAAa;QACnB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAA;UACP,IAAI,CAAC,iBAAiB,EAAE;kBAChB,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;iBAS1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;iBAO9B,CAAA;IACf,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAC3B,KAAK,CAAC,EAAE,CACN,IAAI,CAAA;sBACU,KAAK,CAAC,IAAI;0BACN,KAAK,CAAC,OAAO;wBACf,KAAK,CAAC,QAAQ,CAAC,OAAO;uBACvB,KAAK,CAAC,KAAK;0BACR,KAAK,CAAC,MAAM;2BACX,CACtB,CAAA;IACH,CAAC;IAEO,cAAc;QACpB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IAEO,UAAU;QAChB,gBAAgB,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE;gBACV,cAAc,EACZ,iBAAiB,CAAC,KAAK,CAAC,oBAAoB;oBAC5C,oBAAoB,CAAC,aAAa,CAAC,aAAa;aACnD;SACF,CAAC,CAAA;QACF,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;;AArFsB,6BAAM,GAAG,MAAM,AAAT,CAAS;AAMrB;IAAhB,KAAK,EAAE;4DAA4D;AAPzD,sBAAsB;IADlC,aAAa,CAAC,2BAA2B,CAAC;GAC9B,sBAAsB,CAuFlC"}
@@ -1,21 +0,0 @@
1
- import { css } from 'lit';
2
- export default css `
3
- :host {
4
- width: 100%;
5
- }
6
-
7
- wui-flex {
8
- width: 100%;
9
- }
10
-
11
- .contentContainer {
12
- max-height: 280px;
13
- overflow: scroll;
14
- scrollbar-width: none;
15
- }
16
-
17
- .contentContainer::-webkit-scrollbar {
18
- display: none;
19
- }
20
- `;
21
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../../src/smart-session/ui/components/wui-permission-list-item/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;CAkBjB,CAAA"}
@@ -1,88 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { AccountController, EventsController, RouterController } from '@reown/appkit-core';
8
- import { customElement } from '@reown/appkit-ui';
9
- import { LitElement, html } from 'lit';
10
- import styles from './styles.js';
11
- import { state } from 'lit/decorators.js';
12
- import { W3mFrameRpcConstants } from '@reown/appkit-wallet';
13
- let W3mAccountTokensWidget = class W3mAccountTokensWidget extends LitElement {
14
- constructor() {
15
- super();
16
- this.unsubscribe = [];
17
- this.tokenBalance = AccountController.state.tokenBalance;
18
- this.unsubscribe.push(...[
19
- AccountController.subscribe(val => {
20
- this.tokenBalance = val.tokenBalance;
21
- })
22
- ]);
23
- }
24
- disconnectedCallback() {
25
- this.unsubscribe.forEach(unsubscribe => unsubscribe());
26
- }
27
- render() {
28
- return html `${this.tokenTemplate()}`;
29
- }
30
- tokenTemplate() {
31
- if (this.tokenBalance && this.tokenBalance?.length > 0) {
32
- return html `<wui-flex class="contentContainer" flexDirection="column" gap="xs">
33
- ${this.tokenItemTemplate()}
34
- </wui-flex>`;
35
- }
36
- return html ` <wui-flex flexDirection="column" gap="xs"
37
- ><wui-list-description
38
- @click=${this.onBuyClick.bind(this)}
39
- text="Buy Crypto"
40
- description="Easy with card or bank account"
41
- icon="card"
42
- iconColor="success-100"
43
- iconBackgroundColor="success-100"
44
- tag="popular"
45
- ></wui-list-description
46
- ><wui-list-description
47
- @click=${this.onReceiveClick.bind(this)}
48
- text="Receive funds"
49
- description="Transfer tokens on your wallet"
50
- icon="arrowBottomCircle"
51
- iconColor="fg-200"
52
- iconBackgroundColor="fg-200"
53
- ></wui-list-description
54
- ></wui-flex>`;
55
- }
56
- tokenItemTemplate() {
57
- return this.tokenBalance?.map(token => html `<wui-list-token
58
- tokenName=${token.name}
59
- tokenImageUrl=${token.iconUrl}
60
- tokenAmount=${token.quantity.numeric}
61
- tokenValue=${token.value}
62
- tokenCurrency=${token.symbol}
63
- ></wui-list-token>`);
64
- }
65
- onReceiveClick() {
66
- RouterController.push('WalletReceive');
67
- }
68
- onBuyClick() {
69
- EventsController.sendEvent({
70
- type: 'track',
71
- event: 'SELECT_BUY_CRYPTO',
72
- properties: {
73
- isSmartAccount: AccountController.state.preferredAccountType ===
74
- W3mFrameRpcConstants.ACCOUNT_TYPES.SMART_ACCOUNT
75
- }
76
- });
77
- RouterController.push('OnRampProviders');
78
- }
79
- };
80
- W3mAccountTokensWidget.styles = styles;
81
- __decorate([
82
- state()
83
- ], W3mAccountTokensWidget.prototype, "tokenBalance", void 0);
84
- W3mAccountTokensWidget = __decorate([
85
- customElement('wui-smart-session-list-item')
86
- ], W3mAccountTokensWidget);
87
- export { W3mAccountTokensWidget };
88
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/smart-session/ui/components/wui-smart-session-list-item/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC1F,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AACtC,OAAO,MAAM,MAAM,aAAa,CAAA;AAChC,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAA;AACzC,OAAO,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAA;AAGpD,IAAM,sBAAsB,GAA5B,MAAM,sBAAuB,SAAQ,UAAU;IASpD;QACE,KAAK,EAAE,CAAA;QAND,gBAAW,GAAmB,EAAE,CAAA;QAGvB,iBAAY,GAAG,iBAAiB,CAAC,KAAK,CAAC,YAAY,CAAA;QAIlE,IAAI,CAAC,WAAW,CAAC,IAAI,CACnB,GAAG;YACD,iBAAiB,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE;gBAChC,IAAI,CAAC,YAAY,GAAG,GAAG,CAAC,YAAY,CAAA;YACtC,CAAC,CAAC;SACH,CACF,CAAA;IACH,CAAC;IAEe,oBAAoB;QAClC,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA;IACxD,CAAC;IAGe,MAAM;QACpB,OAAO,IAAI,CAAA,GAAG,IAAI,CAAC,aAAa,EAAE,EAAE,CAAA;IACtC,CAAC;IAGO,aAAa;QACnB,IAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,MAAM,GAAG,CAAC,EAAE,CAAC;YACvD,OAAO,IAAI,CAAA;UACP,IAAI,CAAC,iBAAiB,EAAE;kBAChB,CAAA;QACd,CAAC;QAED,OAAO,IAAI,CAAA;;iBAEE,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;;;iBAS1B,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;;;;;;iBAO9B,CAAA;IACf,CAAC;IAEO,iBAAiB;QACvB,OAAO,IAAI,CAAC,YAAY,EAAE,GAAG,CAC3B,KAAK,CAAC,EAAE,CACN,IAAI,CAAA;sBACU,KAAK,CAAC,IAAI;0BACN,KAAK,CAAC,OAAO;wBACf,KAAK,CAAC,QAAQ,CAAC,OAAO;uBACvB,KAAK,CAAC,KAAK;0BACR,KAAK,CAAC,MAAM;2BACX,CACtB,CAAA;IACH,CAAC;IAEO,cAAc;QACpB,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,CAAA;IACxC,CAAC;IAEO,UAAU;QAChB,gBAAgB,CAAC,SAAS,CAAC;YACzB,IAAI,EAAE,OAAO;YACb,KAAK,EAAE,mBAAmB;YAC1B,UAAU,EAAE;gBACV,cAAc,EACZ,iBAAiB,CAAC,KAAK,CAAC,oBAAoB;oBAC5C,oBAAoB,CAAC,aAAa,CAAC,aAAa;aACnD;SACF,CAAC,CAAA;QACF,gBAAgB,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;IAC1C,CAAC;;AArFsB,6BAAM,GAAG,MAAM,AAAT,CAAS;AAMrB;IAAhB,KAAK,EAAE;4DAA4D;AAPzD,sBAAsB;IADlC,aAAa,CAAC,6BAA6B,CAAC;GAChC,sBAAsB,CAuFlC"}
@@ -1,21 +0,0 @@
1
- import { css } from 'lit';
2
- export default css `
3
- :host {
4
- width: 100%;
5
- }
6
-
7
- wui-flex {
8
- width: 100%;
9
- }
10
-
11
- .contentContainer {
12
- max-height: 280px;
13
- overflow: scroll;
14
- scrollbar-width: none;
15
- }
16
-
17
- .contentContainer::-webkit-scrollbar {
18
- display: none;
19
- }
20
- `;
21
- //# sourceMappingURL=styles.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"styles.js","sourceRoot":"","sources":["../../../../../../../src/smart-session/ui/components/wui-smart-session-list-item/styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,eAAe,GAAG,CAAA;;;;;;;;;;;;;;;;;;CAkBjB,CAAA"}
@@ -1,169 +0,0 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { CoreHelperUtil } from '@reown/appkit-core';
8
- import { customElement } from '@reown/appkit-ui';
9
- import { LitElement, html } from 'lit';
10
- import { state } from 'lit/decorators.js';
11
- import styles from './styles.js';
12
- import { SmartSessionsController } from '../../../controllers/SmartSessionsController.js';
13
- import { DateUtil } from '@reown/appkit-common';
14
- const TABS = 3;
15
- const TABS_PADDING = 48;
16
- const MODAL_MOBILE_VIEW_PX = 430;
17
- const SMART_SESSION_TABS = [{ label: 'Active' }, { label: 'Expired' }, { label: 'Revoked' }];
18
- let W3mSmartSessionListView = class W3mSmartSessionListView extends LitElement {
19
- constructor() {
20
- super();
21
- this.currentTab = 0;
22
- this.unsubscribe = [];
23
- this.sessions = SmartSessionsController.state.sessions;
24
- this.unsubscribe.push(SmartSessionsController.subscribeKey('sessions', sessions => {
25
- this.sessions = sessions;
26
- }));
27
- }
28
- firstUpdated() {
29
- SmartSessionsController.getSmartSessions();
30
- }
31
- render() {
32
- return html `<wui-flex
33
- flexDirection="column"
34
- .padding=${['0', 'xl', 'm', 'xl']}
35
- alignItems="center"
36
- gap="m"
37
- >
38
- <wui-tabs
39
- .onTabChange=${this.onTabChange.bind(this)}
40
- .activeTab=${this.currentTab}
41
- localTabWidth=${CoreHelperUtil.isMobile() && window.innerWidth < MODAL_MOBILE_VIEW_PX
42
- ? `${(window.innerWidth - TABS_PADDING) / TABS}px`
43
- : '104px'}
44
- .tabs=${SMART_SESSION_TABS}
45
- ></wui-tabs>
46
- ${this.listContentTemplate()}
47
- </wui-flex>`;
48
- }
49
- listContentTemplate() {
50
- const revokedSessions = this.sessions.filter(session => session.revokedAt);
51
- const expiredSessions = this.sessions.filter(session => session.expiry < Date.now());
52
- const activeSessions = this.sessions.filter(session => !session.revokedAt && session.expiry > Date.now());
53
- const sessionsByTab = [activeSessions, expiredSessions, revokedSessions];
54
- const sessions = sessionsByTab[this.currentTab] || [];
55
- return html `${this.groupedSessionsTemplate(sessions)}`;
56
- }
57
- groupedSessionsTemplate(sessions) {
58
- function getMonthName(monthNumber) {
59
- const date = new Date();
60
- date.setMonth(monthNumber);
61
- return date.toLocaleString('en-US', {
62
- month: 'long'
63
- });
64
- }
65
- function getTitle(year, month) {
66
- const currentYear = DateUtil.getYear();
67
- const monthName = getMonthName(month);
68
- const isCurrentYear = year === currentYear;
69
- const groupTitle = isCurrentYear ? monthName : `${monthName} ${year}`;
70
- return groupTitle;
71
- }
72
- const sessionsByYearAndMonth = sessions.reduce((acc, session) => {
73
- const date = new Date(session.createdAt);
74
- const year = date.getFullYear();
75
- const month = date.getMonth();
76
- if (!acc[year]) {
77
- acc[year] = {};
78
- }
79
- if (!acc[year][month]) {
80
- acc[year][month] = [];
81
- }
82
- acc[year][month].push(session);
83
- return acc;
84
- }, {});
85
- const sortedYearKeys = Object.keys(sessionsByYearAndMonth).sort().reverse();
86
- return sortedYearKeys.map(year => {
87
- const yearInt = parseInt(year, 10);
88
- const sortedMonthIndexes = new Array(12)
89
- .fill(null)
90
- .map((_, idx) => {
91
- const groupTitle = getTitle(yearInt, idx);
92
- const monthSessions = sessionsByYearAndMonth[yearInt]?.[idx];
93
- return {
94
- groupTitle,
95
- monthSessions
96
- };
97
- })
98
- .reverse();
99
- return sortedMonthIndexes.map(({ groupTitle, monthSessions }, index) => {
100
- const isLastGroup = index === sortedMonthIndexes.length - 1;
101
- if (!monthSessions) {
102
- return null;
103
- }
104
- return html `
105
- <wui-flex
106
- flexDirection="column"
107
- class="group-container"
108
- last-group="${isLastGroup ? 'true' : 'false'}"
109
- >
110
- <wui-flex
111
- alignItems="center"
112
- flexDirection="row"
113
- .padding=${['xs', 's', 's', 's']}
114
- >
115
- <wui-text variant="paragraph-500" color="fg-200">${groupTitle}</wui-text>
116
- </wui-flex>
117
- <wui-flex flexDirection="column" gap="m">
118
- ${this.templateSessions(monthSessions)}
119
- </wui-flex>
120
- </wui-flex>
121
- `;
122
- });
123
- });
124
- }
125
- templateSessions(sessions) {
126
- return sessions.map(session => {
127
- const { project } = session;
128
- function getVariant(val) {
129
- if (session.revokedAt) {
130
- return 'error';
131
- }
132
- return val.expiry < Date.now() ? 'shade' : 'success';
133
- }
134
- return html `<wui-flex
135
- class="session-container"
136
- gap="s"
137
- .padding=${['s', 's', 's', 's']}
138
- alignItems="center"
139
- justifyContent="space-between"
140
- >
141
- <wui-flex gap="xs">
142
- <img class="session-project-image" src=${project?.iconUrl} width="40px" height="40px" />
143
- <wui-flex flexDirection="column">
144
- <wui-text variant="small-400" color="fg-100">${project?.name}</wui-text>
145
- <wui-link>${project?.url}</wui-link>
146
- </wui-flex>
147
- </wui-flex>
148
- <wui-tag variant=${getVariant(session)}
149
- >${SMART_SESSION_TABS[this.currentTab]?.label}</wui-tag
150
- >
151
- </wui-flex>`;
152
- });
153
- }
154
- onTabChange(index) {
155
- this.currentTab = index;
156
- }
157
- };
158
- W3mSmartSessionListView.styles = styles;
159
- __decorate([
160
- state()
161
- ], W3mSmartSessionListView.prototype, "currentTab", void 0);
162
- __decorate([
163
- state()
164
- ], W3mSmartSessionListView.prototype, "sessions", void 0);
165
- W3mSmartSessionListView = __decorate([
166
- customElement('w3m-smart-session-list-view')
167
- ], W3mSmartSessionListView);
168
- export { W3mSmartSessionListView };
169
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../src/smart-session/ui/views/w3m-smart-session-list-view/index.ts"],"names":[],"mappings":"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"}