@reown/appkit-siwx 1.6.6-8edd53b.0 → 1.6.6-basic-test.2.0
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/src/index.js +0 -1
- package/dist/esm/src/index.js.map +1 -1
- package/dist/esm/src/verifiers/EIP155Verifier.js +2 -13
- package/dist/esm/src/verifiers/EIP155Verifier.js.map +1 -1
- package/dist/esm/tests/mocks/mockSession.js.map +1 -1
- package/dist/esm/tests/verifiers/EIP155Verifier.test.js +37 -95
- package/dist/esm/tests/verifiers/EIP155Verifier.test.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/dist/types/src/index.d.ts +0 -1
- package/dist/types/src/verifiers/EIP155Verifier.d.ts +1 -1
- package/package.json +3 -3
- package/dist/esm/src/core/index.js +0 -5
- package/dist/esm/src/core/index.js.map +0 -1
- package/dist/types/src/core/index.d.ts +0 -4
package/dist/esm/src/index.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,uBAAuB,CAAA;AACrC,cAAc,sBAAsB,CAAA;AACpC,cAAc,qBAAqB,CAAA;AACnC,cAAc,oBAAoB,CAAA"}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { verifyMessage } from 'viem';
|
|
2
2
|
import { ConstantsUtil } from '@reown/appkit-common';
|
|
3
|
-
import { ChainController } from '@reown/appkit-core';
|
|
4
3
|
import { SIWXVerifier } from '../core/SIWXVerifier.js';
|
|
5
4
|
/**
|
|
6
5
|
* Default verifier for EIP155 sessions.
|
|
@@ -11,18 +10,8 @@ export class EIP155Verifier extends SIWXVerifier {
|
|
|
11
10
|
this.chainNamespace = ConstantsUtil.CHAIN.EVM;
|
|
12
11
|
}
|
|
13
12
|
async verify(session) {
|
|
14
|
-
const caipNetwork = ChainController.state.chains
|
|
15
|
-
.get('eip155')
|
|
16
|
-
?.caipNetworks?.find(cn => cn.caipNetworkId === session.data.chainId);
|
|
17
|
-
if (!caipNetwork) {
|
|
18
|
-
throw new Error('EIP155.verify: CaipNetwork not found');
|
|
19
|
-
}
|
|
20
13
|
try {
|
|
21
|
-
|
|
22
|
-
chain: caipNetwork,
|
|
23
|
-
transport: http(caipNetwork?.rpcUrls.default.http[0])
|
|
24
|
-
});
|
|
25
|
-
return await client.verifyMessage({
|
|
14
|
+
return await verifyMessage({
|
|
26
15
|
message: session.message.toString(),
|
|
27
16
|
signature: session.signature,
|
|
28
17
|
address: session.data.accountAddress
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EIP155Verifier.js","sourceRoot":"","sources":["../../../../src/verifiers/EIP155Verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"EIP155Verifier.js","sourceRoot":"","sources":["../../../../src/verifiers/EIP155Verifier.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,MAAM,CAAA;AAEpC,OAAO,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAGpD,OAAO,EAAE,YAAY,EAAE,MAAM,yBAAyB,CAAA;AAEtD;;GAEG;AACH,MAAM,OAAO,cAAe,SAAQ,YAAY;IAAhD;;QACkB,mBAAc,GAAG,aAAa,CAAC,KAAK,CAAC,GAAG,CAAA;IAa1D,CAAC;IAXQ,KAAK,CAAC,MAAM,CAAC,OAAoB;QACtC,IAAI,CAAC;YACH,OAAO,MAAM,aAAa,CAAC;gBACzB,OAAO,EAAE,OAAO,CAAC,OAAO,CAAC,QAAQ,EAAE;gBACnC,SAAS,EAAE,OAAO,CAAC,SAA0B;gBAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,cAA+B;aACtD,CAAC,CAAA;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,KAAK,CAAA;QACd,CAAC;IACH,CAAC;CACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mockSession.js","sourceRoot":"","sources":["../../../../tests/mocks/mockSession.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mockSession.js","sourceRoot":"","sources":["../../../../tests/mocks/mockSession.ts"],"names":[],"mappings":"AAMA,MAAM,UAAU,WAAW,CACzB,WAAgC,EAAE,IAAI,EAAE,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE;IAExE,OAAO;QACL,IAAI,EAAE;YACJ,MAAM,EAAE,aAAa;YACrB,cAAc,EAAE,4CAA4C;YAC5D,SAAS,EAAE,qBAAqB;YAChC,OAAO,EAAE,UAAU;YACnB,GAAG,EAAE,oBAAoB;YACzB,OAAO,EAAE,GAAG;YACZ,KAAK,EAAE,KAAK;YACZ,GAAG,QAAQ,CAAC,IAAI;SACjB;QACD,OAAO,EAAE,QAAQ,CAAC,OAAO,IAAI,eAAe;QAC5C,SAAS,EACP,QAAQ,CAAC,SAAS;YAClB,sIAAsI;KACzI,CAAA;AACH,CAAC"}
|
|
@@ -1,107 +1,49 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import {
|
|
3
|
-
import { ChainController } from '@reown/appkit-core';
|
|
1
|
+
import { describe, expect, test } from 'vitest';
|
|
2
|
+
import {} from '@reown/appkit-core';
|
|
4
3
|
import { EIP155Verifier } from '../../src/index.js';
|
|
5
4
|
import { mockSession } from '../mocks/mockSession.js';
|
|
6
|
-
const
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
name: 'Mock Chain',
|
|
12
|
-
nativeCurrency: {
|
|
13
|
-
name: 'Mock Token',
|
|
14
|
-
symbol: 'MOCK',
|
|
15
|
-
decimals: 18
|
|
5
|
+
const cases = [
|
|
6
|
+
{
|
|
7
|
+
reason: 'valid session',
|
|
8
|
+
session: mockSession(),
|
|
9
|
+
expected: true
|
|
16
10
|
},
|
|
17
|
-
|
|
18
|
-
|
|
11
|
+
{
|
|
12
|
+
reason: 'invalid session with an invalid signature',
|
|
13
|
+
session: mockSession({
|
|
14
|
+
signature: '0x1234567890abcdef'
|
|
15
|
+
}),
|
|
16
|
+
expected: false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
reason: 'invalid session with an invalid account address',
|
|
20
|
+
session: mockSession({
|
|
21
|
+
data: {
|
|
22
|
+
accountAddress: '0x1234567890abcdef1234567890abcdef12345678'
|
|
23
|
+
}
|
|
24
|
+
}),
|
|
25
|
+
expected: false
|
|
26
|
+
}
|
|
27
|
+
];
|
|
19
28
|
describe('EIP155Verifier', () => {
|
|
20
29
|
const verifier = new EIP155Verifier();
|
|
21
|
-
beforeEach(() => {
|
|
22
|
-
vi.clearAllMocks();
|
|
23
|
-
});
|
|
24
30
|
test('should have eip155 as the chain namespace', () => {
|
|
25
31
|
expect(verifier.chainNamespace).toBe('eip155');
|
|
26
32
|
});
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
}))).toBe(false);
|
|
39
|
-
});
|
|
33
|
+
test('should verify only eip155 chain id', () => {
|
|
34
|
+
expect(verifier.shouldVerify(mockSession({
|
|
35
|
+
data: {
|
|
36
|
+
chainId: 'eip155:1'
|
|
37
|
+
}
|
|
38
|
+
}))).toBe(true);
|
|
39
|
+
expect(verifier.shouldVerify(mockSession({
|
|
40
|
+
data: {
|
|
41
|
+
chainId: 'solana:mainnet'
|
|
42
|
+
}
|
|
43
|
+
}))).toBe(false);
|
|
40
44
|
});
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
// Mock viem functions with proper typing
|
|
44
|
-
vi.mock('viem', () => ({
|
|
45
|
-
createPublicClient: vi.fn(() => ({
|
|
46
|
-
verifyMessage: vi.fn().mockResolvedValue(true)
|
|
47
|
-
})),
|
|
48
|
-
http: vi.fn()
|
|
49
|
-
}));
|
|
50
|
-
});
|
|
51
|
-
test('should successfully verify when caipNetwork is found', async () => {
|
|
52
|
-
const session = mockSession();
|
|
53
|
-
// Mock ChainController to return valid caipNetwork
|
|
54
|
-
vi.spyOn(ChainController.state.chains, 'get').mockReturnValue({
|
|
55
|
-
caipNetworks: [mockCaipNetwork]
|
|
56
|
-
});
|
|
57
|
-
const result = await verifier.verify(session);
|
|
58
|
-
expect(result).toBe(true);
|
|
59
|
-
expect(http).toHaveBeenCalledWith(mockHttp);
|
|
60
|
-
expect(createPublicClient).toHaveBeenCalledWith({
|
|
61
|
-
chain: expect.objectContaining(mockCaipNetwork),
|
|
62
|
-
transport: http(mockHttp)
|
|
63
|
-
});
|
|
64
|
-
const client = createPublicClient.mock.results[0].value;
|
|
65
|
-
expect(client.verifyMessage).toHaveBeenCalledWith({
|
|
66
|
-
message: session.message.toString(),
|
|
67
|
-
signature: session.signature,
|
|
68
|
-
address: session.data.accountAddress
|
|
69
|
-
});
|
|
70
|
-
});
|
|
71
|
-
test('should throw error when caipNetwork is not found', async () => {
|
|
72
|
-
const session = mockSession();
|
|
73
|
-
// Mock ChainController to return empty caipNetworks
|
|
74
|
-
vi.spyOn(ChainController.state.chains, 'get').mockReturnValue({
|
|
75
|
-
caipNetworks: []
|
|
76
|
-
});
|
|
77
|
-
await expect(verifier.verify(session)).rejects.toThrow('EIP155.verify: CaipNetwork not found');
|
|
78
|
-
});
|
|
79
|
-
test('should return false when verifyMessage fails', async () => {
|
|
80
|
-
const session = mockSession();
|
|
81
|
-
// Mock ChainController to return valid caipNetwork
|
|
82
|
-
vi.spyOn(ChainController.state.chains, 'get').mockReturnValue({
|
|
83
|
-
caipNetworks: [mockCaipNetwork]
|
|
84
|
-
});
|
|
85
|
-
// Mock verifyMessage to fail
|
|
86
|
-
vi.mocked(createPublicClient).mockImplementation(() => ({
|
|
87
|
-
verifyMessage: vi.fn().mockResolvedValue(false)
|
|
88
|
-
}));
|
|
89
|
-
const result = await verifier.verify(session);
|
|
90
|
-
expect(result).toBe(false);
|
|
91
|
-
});
|
|
92
|
-
test('should return false when verification throws error', async () => {
|
|
93
|
-
const session = mockSession();
|
|
94
|
-
// Mock ChainController to return valid caipNetwork
|
|
95
|
-
vi.spyOn(ChainController.state.chains, 'get').mockReturnValue({
|
|
96
|
-
caipNetworks: [mockCaipNetwork]
|
|
97
|
-
});
|
|
98
|
-
// Mock verifyMessage to throw error
|
|
99
|
-
vi.mocked(createPublicClient).mockImplementation(() => ({
|
|
100
|
-
verifyMessage: vi.fn().mockRejectedValue(new Error('Verification failed'))
|
|
101
|
-
}));
|
|
102
|
-
const result = await verifier.verify(session);
|
|
103
|
-
expect(result).toBe(false);
|
|
104
|
-
});
|
|
45
|
+
test.each(cases)(`should verify $reason`, async ({ session, expected }) => {
|
|
46
|
+
expect(await verifier.verify(session)).toBe(expected);
|
|
105
47
|
});
|
|
106
48
|
});
|
|
107
49
|
//# sourceMappingURL=EIP155Verifier.test.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EIP155Verifier.test.js","sourceRoot":"","sources":["../../../../tests/verifiers/EIP155Verifier.test.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"EIP155Verifier.test.js","sourceRoot":"","sources":["../../../../tests/verifiers/EIP155Verifier.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAA;AAE/C,OAAO,EAAoB,MAAM,oBAAoB,CAAA;AAErD,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACnD,OAAO,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAA;AAQrD,MAAM,KAAK,GAAW;IACpB;QACE,MAAM,EAAE,eAAe;QACvB,OAAO,EAAE,WAAW,EAAE;QACtB,QAAQ,EAAE,IAAI;KACf;IACD;QACE,MAAM,EAAE,2CAA2C;QACnD,OAAO,EAAE,WAAW,CAAC;YACnB,SAAS,EAAE,oBAAoB;SAChC,CAAC;QACF,QAAQ,EAAE,KAAK;KAChB;IACD;QACE,MAAM,EAAE,iDAAiD;QACzD,OAAO,EAAE,WAAW,CAAC;YACnB,IAAI,EAAE;gBACJ,cAAc,EAAE,4CAA4C;aAC7D;SACF,CAAC;QACF,QAAQ,EAAE,KAAK;KAChB;CACF,CAAA;AAED,QAAQ,CAAC,gBAAgB,EAAE,GAAG,EAAE;IAC9B,MAAM,QAAQ,GAAG,IAAI,cAAc,EAAE,CAAA;IAErC,IAAI,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACrD,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAChD,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC9C,MAAM,CACJ,QAAQ,CAAC,YAAY,CACnB,WAAW,CAAC;YACV,IAAI,EAAE;gBACJ,OAAO,EAAE,UAAU;aACpB;SACF,CAAC,CACH,CACF,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAEZ,MAAM,CACJ,QAAQ,CAAC,YAAY,CACnB,WAAW,CAAC;YACV,IAAI,EAAE;gBACJ,OAAO,EAAE,gBAAgB;aAC1B;SACF,CAAC,CACH,CACF,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACf,CAAC,CAAC,CAAA;IAEF,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,uBAAuB,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxE,MAAM,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACvD,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
|