@reown/appkit-experimental 1.1.5 → 1.1.7
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/esm/exports/smart-session/index.js +14 -1
- package/dist/esm/exports/smart-session/index.js.map +1 -1
- package/dist/esm/src/smart-session/controllers/SmartSessionsController.js +139 -0
- package/dist/esm/src/smart-session/controllers/SmartSessionsController.js.map +1 -0
- package/dist/esm/src/smart-session/grantPermissions.js.map +1 -1
- package/dist/esm/src/smart-session/ui/permissions/wui-permission-contract-call/index.js +5 -5
- package/dist/esm/src/smart-session/ui/permissions/wui-permission-contract-call/index.js.map +1 -1
- package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/index.js +233 -0
- package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/index.js.map +1 -0
- package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/styles.js +38 -0
- package/dist/esm/src/smart-session/ui/views/w3m-smart-session-list-view/styles.js.map +1 -0
- package/dist/esm/src/smart-session/utils/CosignerService.js +9 -0
- package/dist/esm/src/smart-session/utils/CosignerService.js.map +1 -1
- package/dist/esm/tests/smart-session/grantPermissions.test.js +19 -19
- package/dist/esm/tests/smart-session/grantPermissions.test.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/types/exports/smart-session/index.d.ts +6 -1
- package/dist/types/src/smart-session/controllers/SmartSessionsController.d.ts +14 -0
- package/dist/types/src/smart-session/ui/views/w3m-smart-session-list-view/index.d.ts +24 -0
- package/dist/types/src/smart-session/ui/views/w3m-smart-session-list-view/styles.d.ts +2 -0
- package/dist/types/src/smart-session/utils/CosignerService.d.ts +1 -0
- package/dist/types/src/smart-session/utils/TypeUtils.d.ts +19 -0
- package/package.json +8 -7
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { describe, expect, it, beforeEach, vi } from 'vitest';
|
|
2
|
-
import { grantPermissions } from '../../src/smart-session/grantPermissions';
|
|
3
2
|
import { ChainController, ConnectionController, OptionsController } from '@reown/appkit-core';
|
|
4
3
|
import { ProviderUtil } from '@reown/appkit/store';
|
|
5
4
|
import { CosignerService } from '../../src/smart-session/utils/CosignerService';
|
|
6
5
|
import { extractChainAndAddress, isValidSupportedCaipAddress, assertWalletGrantPermissionsResponse } from '../../src/smart-session/helper/index.js';
|
|
7
6
|
import { donutContractAbi } from '../data/abi';
|
|
8
7
|
import { ERROR_MESSAGES } from '../../src/smart-session/schema';
|
|
8
|
+
import { SmartSessionsController } from '../../src/smart-session/controllers/SmartSessionsController';
|
|
9
9
|
vi.mock('@reown/appkit-core');
|
|
10
10
|
vi.mock('@reown/appkit/store');
|
|
11
11
|
vi.mock('../../src/smart-session/utils/CosignerService');
|
|
@@ -13,8 +13,8 @@ describe('grantPermissions', () => {
|
|
|
13
13
|
let mockRequest;
|
|
14
14
|
const expiry = Date.now() + 1000;
|
|
15
15
|
beforeEach(() => {
|
|
16
|
-
;
|
|
17
|
-
|
|
16
|
+
SmartSessionsController.state.sessions = [];
|
|
17
|
+
mockRequest = {
|
|
18
18
|
address: '0x1234567890123456789012345678901234567890',
|
|
19
19
|
chainId: '0x1',
|
|
20
20
|
expiry: expiry,
|
|
@@ -39,8 +39,8 @@ describe('grantPermissions', () => {
|
|
|
39
39
|
}
|
|
40
40
|
],
|
|
41
41
|
policies: []
|
|
42
|
-
}
|
|
43
|
-
|
|
42
|
+
};
|
|
43
|
+
vi.resetAllMocks();
|
|
44
44
|
vi.mocked(OptionsController.state).projectId = 'test-project-id';
|
|
45
45
|
vi.mocked(ChainController.state).activeCaipAddress =
|
|
46
46
|
'eip155:1:0x1234567890123456789012345678901234567890';
|
|
@@ -104,7 +104,7 @@ describe('grantPermissions', () => {
|
|
|
104
104
|
vi.mocked(CosignerService.prototype.activatePermissions).mockResolvedValue(undefined);
|
|
105
105
|
});
|
|
106
106
|
it('should successfully grant permissions and invoke required methods', async () => {
|
|
107
|
-
const result = await grantPermissions(mockRequest);
|
|
107
|
+
const result = await SmartSessionsController.grantPermissions(mockRequest);
|
|
108
108
|
expect(result).toEqual({
|
|
109
109
|
permissions: [
|
|
110
110
|
{
|
|
@@ -130,7 +130,7 @@ describe('grantPermissions', () => {
|
|
|
130
130
|
});
|
|
131
131
|
it('should throw an error for unsupported namespace', async () => {
|
|
132
132
|
vi.mocked(ChainController.state).activeCaipAddress = undefined;
|
|
133
|
-
await expect(grantPermissions(mockRequest)).rejects.toThrow(ERROR_MESSAGES.UNSUPPORTED_NAMESPACE);
|
|
133
|
+
await expect(SmartSessionsController.grantPermissions(mockRequest)).rejects.toThrow(ERROR_MESSAGES.UNSUPPORTED_NAMESPACE);
|
|
134
134
|
});
|
|
135
135
|
it('should throw an error when grantPermissions returns null', async () => {
|
|
136
136
|
vi.mocked(ConnectionController._getClient).mockReturnValueOnce({
|
|
@@ -146,38 +146,38 @@ describe('grantPermissions', () => {
|
|
|
146
146
|
}),
|
|
147
147
|
grantPermissions: vi.fn().mockResolvedValue(null)
|
|
148
148
|
});
|
|
149
|
-
await expect(grantPermissions(mockRequest)).rejects.toThrow(ERROR_MESSAGES.NO_RESPONSE_RECEIVED);
|
|
149
|
+
await expect(SmartSessionsController.grantPermissions(mockRequest)).rejects.toThrow(ERROR_MESSAGES.NO_RESPONSE_RECEIVED);
|
|
150
150
|
});
|
|
151
151
|
it('should handle network errors', async () => {
|
|
152
152
|
vi.mocked(CosignerService.prototype.addPermission).mockRejectedValue(new Error('Network error'));
|
|
153
|
-
await expect(grantPermissions(mockRequest)).rejects.toThrow('Network error');
|
|
153
|
+
await expect(SmartSessionsController.grantPermissions(mockRequest)).rejects.toThrow('Network error');
|
|
154
154
|
});
|
|
155
155
|
it('should throw an error for invalid chainId format', async () => {
|
|
156
156
|
const invalidRequest = { ...mockRequest, chainId: '1' };
|
|
157
|
-
await expect(grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_CHAIN_ID_FORMAT);
|
|
157
|
+
await expect(SmartSessionsController.grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_CHAIN_ID_FORMAT);
|
|
158
158
|
});
|
|
159
159
|
it('should throw an error for invalid expiry', async () => {
|
|
160
160
|
const invalidRequest = { ...mockRequest, expiry: -1 };
|
|
161
|
-
await expect(grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_EXPIRY);
|
|
161
|
+
await expect(SmartSessionsController.grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_EXPIRY);
|
|
162
162
|
});
|
|
163
163
|
it('should throw an error for empty permissions', async () => {
|
|
164
164
|
const invalidRequest = { ...mockRequest, permissions: [] };
|
|
165
|
-
await expect(grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_PERMISSIONS);
|
|
165
|
+
await expect(SmartSessionsController.grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_PERMISSIONS);
|
|
166
166
|
});
|
|
167
167
|
it('should throw an error for invalid policies', async () => {
|
|
168
168
|
const invalidRequest = { ...mockRequest, policies: {} };
|
|
169
|
-
await expect(grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_POLICIES_TYPE);
|
|
169
|
+
await expect(SmartSessionsController.grantPermissions(invalidRequest)).rejects.toThrow(ERROR_MESSAGES.INVALID_POLICIES_TYPE);
|
|
170
170
|
});
|
|
171
171
|
it('should throw an error for invalid signer', async () => {
|
|
172
172
|
const invalidRequest = { ...mockRequest, signer: null };
|
|
173
|
-
await expect(grantPermissions(invalidRequest)).rejects.toThrow();
|
|
173
|
+
await expect(SmartSessionsController.grantPermissions(invalidRequest)).rejects.toThrow();
|
|
174
174
|
});
|
|
175
175
|
it('should throw an error for invalid signer type', async () => {
|
|
176
176
|
const invalidRequest = { ...mockRequest, signer: { type: {}, data: {} } };
|
|
177
|
-
await expect(grantPermissions(invalidRequest)).rejects.toThrow();
|
|
177
|
+
await expect(SmartSessionsController.grantPermissions(invalidRequest)).rejects.toThrow();
|
|
178
178
|
});
|
|
179
179
|
it('should successfully update the signer in request for valid key signer', async () => {
|
|
180
|
-
await grantPermissions(mockRequest);
|
|
180
|
+
await SmartSessionsController.grantPermissions(mockRequest);
|
|
181
181
|
expect(mockRequest.signer).toEqual({
|
|
182
182
|
type: 'keys',
|
|
183
183
|
data: {
|
|
@@ -193,7 +193,7 @@ describe('grantPermissions', () => {
|
|
|
193
193
|
type: 'keys',
|
|
194
194
|
data: { keys: [{ type: 'secp256k1', publicKey: '0xexisting-key' }] }
|
|
195
195
|
};
|
|
196
|
-
await grantPermissions(mockRequest);
|
|
196
|
+
await SmartSessionsController.grantPermissions(mockRequest);
|
|
197
197
|
expect(mockRequest.signer).toEqual({
|
|
198
198
|
type: 'keys',
|
|
199
199
|
data: {
|
|
@@ -206,7 +206,7 @@ describe('grantPermissions', () => {
|
|
|
206
206
|
});
|
|
207
207
|
it('should throw an error when CosignerService addPermission fails', async () => {
|
|
208
208
|
vi.mocked(CosignerService.prototype.addPermission).mockRejectedValue(new Error('Cosigner error'));
|
|
209
|
-
await expect(grantPermissions(mockRequest)).rejects.toThrow('Cosigner error');
|
|
209
|
+
await expect(SmartSessionsController.grantPermissions(mockRequest)).rejects.toThrow('Cosigner error');
|
|
210
210
|
});
|
|
211
211
|
it('should throw an error when ConnectionController grantPermissions fails', async () => {
|
|
212
212
|
vi.mocked(ConnectionController._getClient).mockReturnValueOnce({
|
|
@@ -222,7 +222,7 @@ describe('grantPermissions', () => {
|
|
|
222
222
|
}),
|
|
223
223
|
grantPermissions: vi.fn().mockRejectedValue(new Error('Connection error'))
|
|
224
224
|
});
|
|
225
|
-
await expect(grantPermissions(mockRequest)).rejects.toThrow('Connection error');
|
|
225
|
+
await expect(SmartSessionsController.grantPermissions(mockRequest)).rejects.toThrow('Connection error');
|
|
226
226
|
});
|
|
227
227
|
it('should return undefined for an invalid address in extractAddress', () => {
|
|
228
228
|
const invalidCaipAddress = 'eip155:1:invalid-address';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"grantPermissions.test.js","sourceRoot":"","sources":["../../../../tests/smart-session/grantPermissions.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,UAAU,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAC7D,OAAO,
|
|
1
|
+
{"version":3,"file":"grantPermissions.test.js","sourceRoot":"","sources":["../../../../tests/smart-session/grantPermissions.test.ts"],"names":[],"mappings":"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"}
|