@reown/appkit-adapter-solana 1.6.6 → 1.6.7-basic-test.8.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.
Files changed (54) hide show
  1. package/dist/esm/src/tests/AuthProvider.test.js +112 -0
  2. package/dist/esm/src/tests/AuthProvider.test.js.map +1 -0
  3. package/dist/esm/src/tests/GenericProvider.test.js +110 -0
  4. package/dist/esm/src/tests/GenericProvider.test.js.map +1 -0
  5. package/dist/esm/src/tests/WalletConnectProvider.test.js +336 -0
  6. package/dist/esm/src/tests/WalletConnectProvider.test.js.map +1 -0
  7. package/dist/esm/src/tests/WalletStandardProvider.test.js +117 -0
  8. package/dist/esm/src/tests/WalletStandardProvider.test.js.map +1 -0
  9. package/dist/esm/src/tests/client.test.js +216 -0
  10. package/dist/esm/src/tests/client.test.js.map +1 -0
  11. package/dist/esm/src/tests/createSendTransaction.test.js +37 -0
  12. package/dist/esm/src/tests/createSendTransaction.test.js.map +1 -0
  13. package/dist/esm/src/tests/mocks/AppKit.js +61 -0
  14. package/dist/esm/src/tests/mocks/AppKit.js.map +1 -0
  15. package/dist/esm/src/tests/mocks/AuthConnector.js +29 -0
  16. package/dist/esm/src/tests/mocks/AuthConnector.js.map +1 -0
  17. package/dist/esm/src/tests/mocks/CoinbaseWallet.js +15 -0
  18. package/dist/esm/src/tests/mocks/CoinbaseWallet.js.map +1 -0
  19. package/dist/esm/src/tests/mocks/Connection.js +12 -0
  20. package/dist/esm/src/tests/mocks/Connection.js.map +1 -0
  21. package/dist/esm/src/tests/mocks/Options.js +17 -0
  22. package/dist/esm/src/tests/mocks/Options.js.map +1 -0
  23. package/dist/esm/src/tests/mocks/Transaction.js +27 -0
  24. package/dist/esm/src/tests/mocks/Transaction.js.map +1 -0
  25. package/dist/esm/src/tests/mocks/UniversalProvider.js +111 -0
  26. package/dist/esm/src/tests/mocks/UniversalProvider.js.map +1 -0
  27. package/dist/esm/src/tests/mocks/W3mFrameProvider.js +42 -0
  28. package/dist/esm/src/tests/mocks/W3mFrameProvider.js.map +1 -0
  29. package/dist/esm/src/tests/mocks/WalletStandard.js +70 -0
  30. package/dist/esm/src/tests/mocks/WalletStandard.js.map +1 -0
  31. package/dist/esm/src/tests/util/TestConstants.js +17 -0
  32. package/dist/esm/src/tests/util/TestConstants.js.map +1 -0
  33. package/dist/esm/src/tests/withSolanaNamespace.test.js +11 -0
  34. package/dist/esm/src/tests/withSolanaNamespace.test.js.map +1 -0
  35. package/dist/esm/src/utils/handleMobileWalletRedirection.js +14 -0
  36. package/dist/esm/src/utils/handleMobileWalletRedirection.js.map +1 -0
  37. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  38. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  39. package/dist/types/src/tests/AuthProvider.test.d.ts +1 -0
  40. package/dist/types/src/tests/GenericProvider.test.d.ts +1 -0
  41. package/dist/types/src/tests/WalletConnectProvider.test.d.ts +1 -0
  42. package/dist/types/src/tests/WalletStandardProvider.test.d.ts +1 -0
  43. package/dist/types/src/tests/client.test.d.ts +1 -0
  44. package/dist/types/src/tests/createSendTransaction.test.d.ts +1 -0
  45. package/dist/types/src/tests/mocks/AppKit.d.ts +3 -0
  46. package/dist/types/src/tests/mocks/CoinbaseWallet.d.ts +2 -0
  47. package/dist/types/src/tests/mocks/Options.d.ts +3 -0
  48. package/dist/types/src/tests/mocks/Transaction.d.ts +3 -0
  49. package/dist/types/src/tests/mocks/UniversalProvider.d.ts +4 -0
  50. package/dist/types/src/tests/mocks/W3mFrameProvider.d.ts +3 -0
  51. package/dist/types/src/tests/util/TestConstants.d.ts +17 -0
  52. package/dist/types/src/tests/withSolanaNamespace.test.d.ts +1 -0
  53. package/dist/types/src/utils/handleMobileWalletRedirection.d.ts +4 -0
  54. package/package.json +8 -11
@@ -0,0 +1,112 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { ConstantsUtil } from '@reown/appkit-common';
3
+ import { AuthProvider } from '../providers/AuthProvider';
4
+ import { mockLegacyTransaction, mockVersionedTransaction } from './mocks/Transaction';
5
+ import { mockW3mFrameProvider } from './mocks/W3mFrameProvider';
6
+ import { TestConstants } from './util/TestConstants';
7
+ describe('AuthProvider specific tests', () => {
8
+ let provider = mockW3mFrameProvider();
9
+ let getActiveChain = vi.fn(() => TestConstants.chains[0]);
10
+ let authProvider = new AuthProvider({
11
+ w3mFrameProvider: mockW3mFrameProvider(),
12
+ getActiveChain,
13
+ chains: TestConstants.chains
14
+ });
15
+ beforeEach(() => {
16
+ provider = mockW3mFrameProvider();
17
+ getActiveChain = vi.fn(() => TestConstants.chains[0]);
18
+ authProvider = new AuthProvider({
19
+ w3mFrameProvider: mockW3mFrameProvider(),
20
+ getActiveChain,
21
+ chains: TestConstants.chains
22
+ });
23
+ });
24
+ it('should have correct metadata', () => {
25
+ expect(authProvider).toEqual(expect.objectContaining({
26
+ id: ConstantsUtil.CONNECTOR_ID.AUTH,
27
+ name: ConstantsUtil.CONNECTOR_NAMES.AUTH,
28
+ type: 'AUTH',
29
+ chain: ConstantsUtil.CHAIN.SOLANA,
30
+ provider
31
+ }));
32
+ });
33
+ it('should call connect', async () => {
34
+ await authProvider.connect();
35
+ expect(provider.connect).toHaveBeenCalled();
36
+ });
37
+ it('should call disconnect', async () => {
38
+ await authProvider.disconnect();
39
+ expect(provider.disconnect).toHaveBeenCalled();
40
+ });
41
+ it('should call signMessage with correct params', async () => {
42
+ await authProvider.connect();
43
+ const message = new Uint8Array([1, 2, 3, 4, 5]);
44
+ await authProvider.signMessage(message);
45
+ expect(provider.request).toHaveBeenCalledWith({
46
+ method: 'solana_signMessage',
47
+ params: {
48
+ message: '7bWpTW',
49
+ pubkey: TestConstants.accounts[0].address
50
+ }
51
+ });
52
+ });
53
+ it('should call signTransaction with correct params', async () => {
54
+ await authProvider.connect();
55
+ const transaction = mockLegacyTransaction();
56
+ await authProvider.signTransaction(transaction);
57
+ expect(provider.request).toHaveBeenCalledWith({
58
+ method: 'solana_signTransaction',
59
+ params: {
60
+ transaction: 'AKhoybLLJS1deDJDyjELDNhfkBBX3k4dt4bBfmppjfPVVimhQdFEfDo8AiFcCBCC9VkYWV2r3jkh9n1DAXEhnJPwMmnsrx6huAVrhHAbmRUqfUuWZ9aWMGmdEWaeroCnPR6jkEnjJcn14a59TZhkiTXMygMqu4KaqD1TqzE8vNHSw3YgbW24cfqWfQczGysuy4ugxj4TGSpqRtNmf5D7zRRa76eJTeZEaBcBQGkqxb31vBRXDMdQzGEbq'
61
+ }
62
+ });
63
+ });
64
+ it('should call signTransaction with correct params for VersionedTransaction', async () => {
65
+ await authProvider.connect();
66
+ const transaction = mockVersionedTransaction();
67
+ await authProvider.signTransaction(transaction);
68
+ expect(provider.request).toHaveBeenCalledWith({
69
+ method: 'solana_signTransaction',
70
+ params: {
71
+ transaction: '48ckoQL1HhH5aqU1ifKqpQkwq3WPDgMnsHHQkVfddisxYcapwAVXr8hejTi2jeJpMPkZMsF72SwmJFDByyfRtaknz4ytCYNAcdHrxtrHa9hTjMKckVQrFFqS8zG63Wj5mJ6wPfj8dv1wKu2XkU6GSXSGdQmuvfRv3K6LUSMbK5XSP3yBGb1SDZKCuoFX4qDKcKhCG7Awn3ssAWB1yRaXMd6mS6HQHKSF11FTp3jTH2HKUNbKyyuGh4tYtq8b'
72
+ }
73
+ });
74
+ });
75
+ it('should call signAndSendTransaction with correct params', async () => {
76
+ await authProvider.connect();
77
+ const transaction = mockLegacyTransaction();
78
+ await authProvider.signAndSendTransaction(transaction);
79
+ expect(provider.request).toHaveBeenCalledWith({
80
+ method: 'solana_signAndSendTransaction',
81
+ params: {
82
+ transaction: 'AKhoybLLJS1deDJDyjELDNhfkBBX3k4dt4bBfmppjfPVVimhQdFEfDo8AiFcCBCC9VkYWV2r3jkh9n1DAXEhnJPwMmnsrx6huAVrhHAbmRUqfUuWZ9aWMGmdEWaeroCnPR6jkEnjJcn14a59TZhkiTXMygMqu4KaqD1TqzE8vNHSw3YgbW24cfqWfQczGysuy4ugxj4TGSpqRtNmf5D7zRRa76eJTeZEaBcBQGkqxb31vBRXDMdQzGEbq',
83
+ options: undefined
84
+ }
85
+ });
86
+ await authProvider.signAndSendTransaction(transaction, {
87
+ preflightCommitment: 'singleGossip'
88
+ });
89
+ expect(provider.request).toHaveBeenCalledWith({
90
+ method: 'solana_signAndSendTransaction',
91
+ params: {
92
+ transaction: 'AKhoybLLJS1deDJDyjELDNhfkBBX3k4dt4bBfmppjfPVVimhQdFEfDo8AiFcCBCC9VkYWV2r3jkh9n1DAXEhnJPwMmnsrx6huAVrhHAbmRUqfUuWZ9aWMGmdEWaeroCnPR6jkEnjJcn14a59TZhkiTXMygMqu4KaqD1TqzE8vNHSw3YgbW24cfqWfQczGysuy4ugxj4TGSpqRtNmf5D7zRRa76eJTeZEaBcBQGkqxb31vBRXDMdQzGEbq',
93
+ options: { preflightCommitment: 'singleGossip' }
94
+ }
95
+ });
96
+ });
97
+ it('should call signAllTransactions with correct params', async () => {
98
+ await authProvider.connect();
99
+ const transactions = [mockLegacyTransaction(), mockVersionedTransaction()];
100
+ await authProvider.signAllTransactions(transactions);
101
+ expect(provider.request).toHaveBeenCalledWith({
102
+ method: 'solana_signAllTransactions',
103
+ params: {
104
+ transactions: [
105
+ 'AKhoybLLJS1deDJDyjELDNhfkBBX3k4dt4bBfmppjfPVVimhQdFEfDo8AiFcCBCC9VkYWV2r3jkh9n1DAXEhnJPwMmnsrx6huAVrhHAbmRUqfUuWZ9aWMGmdEWaeroCnPR6jkEnjJcn14a59TZhkiTXMygMqu4KaqD1TqzE8vNHSw3YgbW24cfqWfQczGysuy4ugxj4TGSpqRtNmf5D7zRRa76eJTeZEaBcBQGkqxb31vBRXDMdQzGEbq',
106
+ '48ckoQL1HhH5aqU1ifKqpQkwq3WPDgMnsHHQkVfddisxYcapwAVXr8hejTi2jeJpMPkZMsF72SwmJFDByyfRtaknz4ytCYNAcdHrxtrHa9hTjMKckVQrFFqS8zG63Wj5mJ6wPfj8dv1wKu2XkU6GSXSGdQmuvfRv3K6LUSMbK5XSP3yBGb1SDZKCuoFX4qDKcKhCG7Awn3ssAWB1yRaXMd6mS6HQHKSF11FTp3jTH2HKUNbKyyuGh4tYtq8b'
107
+ ]
108
+ }
109
+ });
110
+ });
111
+ });
112
+ //# sourceMappingURL=AuthProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AuthProvider.test.js","sourceRoot":"","sources":["../../../../src/tests/AuthProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,110 @@
1
+ import { isVersionedTransaction } from '@solana/wallet-adapter-base';
2
+ import { Transaction, VersionedTransaction } from '@solana/web3.js';
3
+ import { beforeAll, describe, expect, it, vi } from 'vitest';
4
+ import { AuthProvider } from '../providers/AuthProvider.js';
5
+ import { CoinbaseWalletProvider } from '../providers/CoinbaseWalletProvider.js';
6
+ import { SolanaWalletConnectProvider } from '../providers/SolanaWalletConnectProvider.js';
7
+ import { WalletStandardProvider } from '../providers/WalletStandardProvider.js';
8
+ import { mockCoinbaseWallet } from './mocks/CoinbaseWallet.js';
9
+ import { mockLegacyTransaction, mockVersionedTransaction } from './mocks/Transaction.js';
10
+ import { mockUniversalProvider } from './mocks/UniversalProvider.js';
11
+ import { mockW3mFrameProvider } from './mocks/W3mFrameProvider.js';
12
+ import { mockWalletStandard } from './mocks/WalletStandard.js';
13
+ import { TestConstants } from './util/TestConstants.js';
14
+ const getActiveChain = vi.fn(() => TestConstants.chains[0]);
15
+ const providers = [
16
+ {
17
+ name: 'WalletConnectProvider',
18
+ provider: new SolanaWalletConnectProvider({
19
+ provider: mockUniversalProvider(),
20
+ chains: TestConstants.chains,
21
+ getActiveChain
22
+ })
23
+ },
24
+ {
25
+ name: 'WalletStandardProvider',
26
+ provider: new WalletStandardProvider({
27
+ wallet: mockWalletStandard(),
28
+ getActiveChain,
29
+ requestedChains: TestConstants.chains
30
+ })
31
+ },
32
+ {
33
+ name: 'AuthProvider',
34
+ provider: new AuthProvider({
35
+ getActiveChain,
36
+ chains: TestConstants.chains,
37
+ w3mFrameProvider: mockW3mFrameProvider()
38
+ })
39
+ },
40
+ {
41
+ name: 'CoinbaseWalletProvider',
42
+ provider: new CoinbaseWalletProvider({
43
+ provider: mockCoinbaseWallet(),
44
+ chains: TestConstants.chains,
45
+ getActiveChain
46
+ })
47
+ }
48
+ ];
49
+ describe.each(providers)('Generic provider tests for $name', ({ provider }) => {
50
+ const events = {
51
+ connect: vi.fn(),
52
+ disconnect: vi.fn(),
53
+ accountsChanged: vi.fn(),
54
+ chainChanged: vi.fn()
55
+ };
56
+ beforeAll(() => {
57
+ provider.on('connect', events.connect);
58
+ provider.on('disconnect', events.disconnect);
59
+ provider.on('accountsChanged', events.accountsChanged);
60
+ provider.on('chainChanged', events.chainChanged);
61
+ });
62
+ it('should connect, return address and emit event', async () => {
63
+ const address = await provider.connect();
64
+ expect(address).toEqual(TestConstants.accounts[0].address);
65
+ expect(events.connect).toHaveBeenCalledWith(TestConstants.accounts[0].publicKey);
66
+ });
67
+ it('should signMessage', async () => {
68
+ const result = await provider.signMessage(new TextEncoder().encode('test'));
69
+ expect(result).toBeInstanceOf(Uint8Array);
70
+ });
71
+ it('should signTransaction with Legacy Transaction', async () => {
72
+ const result = await provider.signTransaction(mockLegacyTransaction());
73
+ expect(result).toBeInstanceOf(Transaction);
74
+ });
75
+ it('should signTransaction with Versioned Transaction', async () => {
76
+ const result = await provider.signTransaction(mockVersionedTransaction());
77
+ expect(result).toBeInstanceOf(VersionedTransaction);
78
+ });
79
+ it('should signAndSendTransaction with Legacy Transaction', async () => {
80
+ const result = await provider.signAndSendTransaction(mockLegacyTransaction());
81
+ expect(result).toBeTypeOf('string');
82
+ });
83
+ it('should signAndSendTransaction with Versioned Transaction', async () => {
84
+ const result = await provider.signAndSendTransaction(mockVersionedTransaction());
85
+ expect(result).toBeTypeOf('string');
86
+ });
87
+ it('should signAllTransactions with AnyTransaction', async () => {
88
+ const transactions = [
89
+ mockLegacyTransaction(),
90
+ mockVersionedTransaction(),
91
+ mockLegacyTransaction(),
92
+ mockVersionedTransaction()
93
+ ];
94
+ const result = await provider.signAllTransactions(transactions);
95
+ expect(result).toHaveLength(transactions.length);
96
+ transactions.forEach((transaction, index) => {
97
+ if (isVersionedTransaction(transaction)) {
98
+ expect(result[index]).toBeInstanceOf(VersionedTransaction);
99
+ }
100
+ else {
101
+ expect(result[index]).toBeInstanceOf(Transaction);
102
+ }
103
+ });
104
+ });
105
+ it('should disconnect and emit event', async () => {
106
+ await provider.disconnect();
107
+ expect(events.disconnect).toHaveBeenCalledWith(undefined);
108
+ });
109
+ });
110
+ //# sourceMappingURL=GenericProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GenericProvider.test.js","sourceRoot":"","sources":["../../../../src/tests/GenericProvider.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,336 @@
1
+ import { beforeEach, describe, expect, it, vi } from 'vitest';
2
+ import { SolanaWalletConnectProvider } from '../providers/SolanaWalletConnectProvider.js';
3
+ import { WalletConnectMethodNotSupportedError } from '../providers/shared/Errors.js';
4
+ import { mockLegacyTransaction, mockVersionedTransaction } from './mocks/Transaction.js';
5
+ import { mockUniversalProvider, mockUniversalProviderSession } from './mocks/UniversalProvider.js';
6
+ import { TestConstants } from './util/TestConstants.js';
7
+ describe('WalletConnectProvider specific tests', () => {
8
+ let provider = mockUniversalProvider();
9
+ let getActiveChain = vi.fn(() => TestConstants.chains[0]);
10
+ let walletConnectProvider = new SolanaWalletConnectProvider({
11
+ provider,
12
+ chains: TestConstants.chains,
13
+ getActiveChain
14
+ });
15
+ beforeEach(() => {
16
+ provider = mockUniversalProvider();
17
+ getActiveChain = vi.fn(() => TestConstants.chains[0]);
18
+ walletConnectProvider = new SolanaWalletConnectProvider({
19
+ provider,
20
+ chains: TestConstants.chains,
21
+ getActiveChain
22
+ });
23
+ });
24
+ it('should call connect', async () => {
25
+ await walletConnectProvider.connect();
26
+ expect(provider.connect).toHaveBeenCalled();
27
+ });
28
+ it('should call disconnect', async () => {
29
+ await walletConnectProvider.disconnect();
30
+ expect(provider.disconnect).toHaveBeenCalled();
31
+ });
32
+ it('should call signMessage with correct params', async () => {
33
+ await walletConnectProvider.connect();
34
+ const message = new Uint8Array([1, 2, 3, 4, 5]);
35
+ await walletConnectProvider.signMessage(message);
36
+ expect(provider.request).toHaveBeenCalledWith({
37
+ method: 'solana_signMessage',
38
+ params: {
39
+ message: '7bWpTW',
40
+ pubkey: TestConstants.accounts[0].address
41
+ }
42
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
43
+ });
44
+ it('should call signTransaction with correct params', async () => {
45
+ await walletConnectProvider.connect();
46
+ const transaction = mockLegacyTransaction();
47
+ await walletConnectProvider.signTransaction(transaction);
48
+ expect(provider.request).toHaveBeenCalledWith({
49
+ method: 'solana_signTransaction',
50
+ params: {
51
+ feePayer: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgoP',
52
+ instructions: [
53
+ {
54
+ data: '3Bxs4NN8M2Yn4TLb',
55
+ keys: [
56
+ {
57
+ isSigner: true,
58
+ isWritable: true,
59
+ pubkey: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgoP'
60
+ },
61
+ {
62
+ isSigner: false,
63
+ isWritable: true,
64
+ pubkey: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgoP'
65
+ }
66
+ ],
67
+ programId: '11111111111111111111111111111111'
68
+ }
69
+ ],
70
+ recentBlockhash: 'EZySCpmzXRuUtM95P2JGv9SitqYph6Nv6HaYBK7a8PKJ',
71
+ transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECFj6WhBP/eepC4T4bDgYuJMiSVXNh9IvPWv1ZDUV52gYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmaU6FiJxS/swxct+H8Iree7FERP/8vrGuAdF90ANelAQECAAAMAgAAAICWmAAAAAAA',
72
+ pubkey: TestConstants.accounts[0].address
73
+ }
74
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
75
+ });
76
+ it('should call signTransaction with correct params for VersionedTransaction', async () => {
77
+ await walletConnectProvider.connect();
78
+ const transaction = mockVersionedTransaction();
79
+ await walletConnectProvider.signTransaction(transaction);
80
+ expect(provider.request).toHaveBeenCalledWith({
81
+ method: 'solana_signTransaction',
82
+ params: {
83
+ transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQABAhY+loQT/3nqQuE+Gw4GLiTIklVzYfSLz1r9WQ1FedoGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJmlOhYicUv7MMXLfh/CK3nuxRET//L6xrgHRfdADXpQEBAgAADAIAAACAlpgAAAAAAAA=',
84
+ pubkey: TestConstants.accounts[0].address
85
+ }
86
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
87
+ });
88
+ it('should call signAndSendTransaction with correct params', async () => {
89
+ await walletConnectProvider.connect();
90
+ const transaction = mockLegacyTransaction();
91
+ await walletConnectProvider.signAndSendTransaction(transaction);
92
+ expect(provider.request).toHaveBeenCalledWith({
93
+ method: 'solana_signAndSendTransaction',
94
+ params: {
95
+ transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECFj6WhBP/eepC4T4bDgYuJMiSVXNh9IvPWv1ZDUV52gYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmaU6FiJxS/swxct+H8Iree7FERP/8vrGuAdF90ANelAQECAAAMAgAAAICWmAAAAAAA',
96
+ pubkey: TestConstants.accounts[0].address,
97
+ sendOptions: undefined
98
+ }
99
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
100
+ await walletConnectProvider.signAndSendTransaction(transaction, {
101
+ preflightCommitment: 'singleGossip'
102
+ });
103
+ expect(provider.request).toHaveBeenCalledWith({
104
+ method: 'solana_signAndSendTransaction',
105
+ params: {
106
+ transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECFj6WhBP/eepC4T4bDgYuJMiSVXNh9IvPWv1ZDUV52gYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmaU6FiJxS/swxct+H8Iree7FERP/8vrGuAdF90ANelAQECAAAMAgAAAICWmAAAAAAA',
107
+ pubkey: TestConstants.accounts[0].address,
108
+ sendOptions: { preflightCommitment: 'singleGossip' }
109
+ }
110
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
111
+ });
112
+ it('should return the same transaction if the response comes with signature (legacy)', async () => {
113
+ await walletConnectProvider.connect();
114
+ const transaction = mockLegacyTransaction();
115
+ expect(transaction.signatures.length).toEqual(0);
116
+ vi.spyOn(provider, 'request').mockImplementationOnce(() => Promise.resolve({
117
+ signature: '2Lb1KQHWfbV3pWMqXZveFWqneSyhH95YsgCENRWnArSkLydjN1M42oB82zSd6BBdGkM9pE6sQLQf1gyBh8KWM2c4'
118
+ }));
119
+ const result = await walletConnectProvider.signTransaction(transaction);
120
+ expect(result).toBe(transaction);
121
+ expect(result.signatures.length).toEqual(1);
122
+ });
123
+ it('should use the correct chain id for requests', async () => {
124
+ await walletConnectProvider.connect();
125
+ getActiveChain.mockImplementation(() => ({ id: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1' }));
126
+ await walletConnectProvider.signMessage(new Uint8Array([1, 2, 3, 4, 5]));
127
+ expect(provider.request).toHaveBeenCalledWith({
128
+ method: 'solana_signMessage',
129
+ params: {
130
+ message: '7bWpTW',
131
+ pubkey: TestConstants.accounts[0].address
132
+ }
133
+ }, 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1');
134
+ });
135
+ it('should replace old deprecated replacement for requests', async () => {
136
+ vi.spyOn(provider, 'connect').mockImplementation(() => {
137
+ const session = mockUniversalProviderSession({}, [
138
+ { id: '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ' },
139
+ { id: '8E9rvCKLFQia2Y35HXjjpWzj8weVo44K' }
140
+ ]);
141
+ Object.assign(provider, { session });
142
+ return Promise.resolve(session);
143
+ });
144
+ await walletConnectProvider.connect();
145
+ await walletConnectProvider.signMessage(new Uint8Array([1, 2, 3, 4, 5]));
146
+ expect(provider.request).toHaveBeenCalledWith({
147
+ method: 'solana_signMessage',
148
+ params: {
149
+ message: '7bWpTW',
150
+ pubkey: TestConstants.accounts[0].address
151
+ }
152
+ }, 'solana:4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ');
153
+ });
154
+ it('should replace old deprecated devnet for requests', async () => {
155
+ vi.spyOn(provider, 'connect').mockImplementation(() => {
156
+ const session = mockUniversalProviderSession({}, [
157
+ { id: '4sGjMW1sUnHzSxGspuhpqLDx6wiyjNtZ' },
158
+ { id: '8E9rvCKLFQia2Y35HXjjpWzj8weVo44K' }
159
+ ]);
160
+ Object.assign(provider, { session });
161
+ return Promise.resolve(session);
162
+ });
163
+ getActiveChain.mockImplementation(() => ({ id: 'EtWTRABZaYq6iMfeYKouRu166VU2xqa1' }));
164
+ await walletConnectProvider.connect();
165
+ await walletConnectProvider.signMessage(new Uint8Array([1, 2, 3, 4, 5]));
166
+ expect(provider.request).toHaveBeenCalledWith({
167
+ method: 'solana_signMessage',
168
+ params: {
169
+ message: '7bWpTW',
170
+ pubkey: TestConstants.accounts[0].address
171
+ }
172
+ }, 'solana:8E9rvCKLFQia2Y35HXjjpWzj8weVo44K');
173
+ });
174
+ it('should call signTransaction correctly for signAllTransactions', async () => {
175
+ await walletConnectProvider.connect();
176
+ const transactions = [mockLegacyTransaction(), mockVersionedTransaction()];
177
+ await walletConnectProvider.signAllTransactions(transactions);
178
+ expect(provider.request).toHaveBeenNthCalledWith(1, {
179
+ method: 'solana_signTransaction',
180
+ params: {
181
+ feePayer: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgoP',
182
+ instructions: [
183
+ {
184
+ data: '3Bxs4NN8M2Yn4TLb',
185
+ keys: [
186
+ {
187
+ isSigner: true,
188
+ isWritable: true,
189
+ pubkey: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgoP'
190
+ },
191
+ {
192
+ isSigner: false,
193
+ isWritable: true,
194
+ pubkey: '2VqKhjZ766ZN3uBtBpb7Ls3cN4HrocP1rzxzekhVEgoP'
195
+ }
196
+ ],
197
+ programId: '11111111111111111111111111111111'
198
+ }
199
+ ],
200
+ recentBlockhash: 'EZySCpmzXRuUtM95P2JGv9SitqYph6Nv6HaYBK7a8PKJ',
201
+ transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECFj6WhBP/eepC4T4bDgYuJMiSVXNh9IvPWv1ZDUV52gYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmaU6FiJxS/swxct+H8Iree7FERP/8vrGuAdF90ANelAQECAAAMAgAAAICWmAAAAAAA',
202
+ pubkey: TestConstants.accounts[0].address
203
+ }
204
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
205
+ expect(provider.request).toHaveBeenNthCalledWith(2, {
206
+ method: 'solana_signTransaction',
207
+ params: {
208
+ transaction: 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQABAhY+loQT/3nqQuE+Gw4GLiTIklVzYfSLz1r9WQ1FedoGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJmlOhYicUv7MMXLfh/CK3nuxRET//L6xrgHRfdADXpQEBAgAADAIAAACAlpgAAAAAAAA=',
209
+ pubkey: TestConstants.accounts[0].address
210
+ }
211
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
212
+ });
213
+ it('should get chains from namespace accounts', async () => {
214
+ vi.spyOn(provider, 'connect').mockImplementationOnce(() => {
215
+ const session = mockUniversalProviderSession({
216
+ namespaces: {
217
+ solana: {
218
+ chains: undefined,
219
+ methods: [
220
+ 'solana_signTransaction',
221
+ 'solana_signMessage',
222
+ 'solana_signAndSendTransaction'
223
+ ],
224
+ events: [],
225
+ accounts: [`solana:${TestConstants.chains[0]?.id}:${TestConstants.accounts[0].address}`]
226
+ }
227
+ }
228
+ });
229
+ Object.assign(provider, { session });
230
+ return Promise.resolve(session);
231
+ });
232
+ await walletConnectProvider.connect();
233
+ expect(walletConnectProvider.chains).toEqual([TestConstants.chains[0]]);
234
+ });
235
+ it('should throw an error if the wallet does not support the signMessage method', async () => {
236
+ vi.spyOn(provider, 'connect').mockImplementationOnce(() => {
237
+ const session = mockUniversalProviderSession({
238
+ namespaces: {
239
+ solana: {
240
+ chains: undefined,
241
+ methods: [],
242
+ events: [],
243
+ accounts: [`solana:${TestConstants.chains[0]?.id}:${TestConstants.accounts[0].address}`]
244
+ }
245
+ }
246
+ });
247
+ Object.assign(provider, { session });
248
+ return Promise.resolve(session);
249
+ });
250
+ await walletConnectProvider.connect();
251
+ await expect(() => walletConnectProvider.signMessage(new Uint8Array([1, 2, 3, 4, 5]))).rejects.toThrow(WalletConnectMethodNotSupportedError);
252
+ });
253
+ it('should throw an error if the wallet does not support the signTransaction method', async () => {
254
+ vi.spyOn(provider, 'connect').mockImplementationOnce(() => {
255
+ const session = mockUniversalProviderSession({
256
+ namespaces: {
257
+ solana: {
258
+ chains: undefined,
259
+ methods: ['solana_signMessage'],
260
+ events: [],
261
+ accounts: [`solana:${TestConstants.chains[0]?.id}:${TestConstants.accounts[0].address}`]
262
+ }
263
+ }
264
+ });
265
+ Object.assign(provider, { session });
266
+ return Promise.resolve(session);
267
+ });
268
+ await walletConnectProvider.connect();
269
+ await expect(() => walletConnectProvider.signTransaction(mockLegacyTransaction())).rejects.toThrow(WalletConnectMethodNotSupportedError);
270
+ });
271
+ it('should throw an error if the wallet does not support the signAndSendTransaction method', async () => {
272
+ vi.spyOn(provider, 'connect').mockImplementationOnce(() => {
273
+ const session = mockUniversalProviderSession({
274
+ namespaces: {
275
+ solana: {
276
+ chains: undefined,
277
+ methods: ['solana_signMessage'],
278
+ events: [],
279
+ accounts: [`solana:${TestConstants.chains[0]?.id}:${TestConstants.accounts[0].address}`]
280
+ }
281
+ }
282
+ });
283
+ Object.assign(provider, { session });
284
+ return Promise.resolve(session);
285
+ });
286
+ await walletConnectProvider.connect();
287
+ await expect(() => walletConnectProvider.signAndSendTransaction(mockLegacyTransaction())).rejects.toThrow(WalletConnectMethodNotSupportedError);
288
+ });
289
+ it('should throw an error if the wallet does not support the signAllTransactions method', async () => {
290
+ vi.spyOn(provider, 'connect').mockImplementationOnce(() => {
291
+ const session = mockUniversalProviderSession({
292
+ namespaces: {
293
+ solana: {
294
+ chains: undefined,
295
+ methods: ['solana_signMessage'],
296
+ events: [],
297
+ accounts: [`solana:${TestConstants.chains[0]?.id}:${TestConstants.accounts[0].address}`]
298
+ }
299
+ }
300
+ });
301
+ Object.assign(provider, { session });
302
+ return Promise.resolve(session);
303
+ });
304
+ await walletConnectProvider.connect();
305
+ await expect(() => walletConnectProvider.signAllTransactions([mockLegacyTransaction()])).rejects.toThrow(WalletConnectMethodNotSupportedError);
306
+ });
307
+ it('should request signAllTransactions with batched transactions', async () => {
308
+ vi.spyOn(provider, 'connect').mockImplementationOnce(() => {
309
+ const session = mockUniversalProviderSession({
310
+ namespaces: {
311
+ solana: {
312
+ chains: ['solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp'],
313
+ methods: ['solana_signAllTransactions'],
314
+ events: [],
315
+ accounts: [`solana:${TestConstants.chains[0]?.id}:${TestConstants.accounts[0].address}`]
316
+ }
317
+ }
318
+ });
319
+ Object.assign(provider, { session });
320
+ return Promise.resolve(session);
321
+ });
322
+ await walletConnectProvider.connect();
323
+ const transactions = [mockLegacyTransaction(), mockVersionedTransaction()];
324
+ await walletConnectProvider.signAllTransactions(transactions);
325
+ expect(provider.request).toHaveBeenCalledWith({
326
+ method: 'solana_signAllTransactions',
327
+ params: {
328
+ transactions: [
329
+ 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAECFj6WhBP/eepC4T4bDgYuJMiSVXNh9IvPWv1ZDUV52gYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMmaU6FiJxS/swxct+H8Iree7FERP/8vrGuAdF90ANelAQECAAAMAgAAAICWmAAAAAAA',
330
+ 'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAQABAhY+loQT/3nqQuE+Gw4GLiTIklVzYfSLz1r9WQ1FedoGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJmlOhYicUv7MMXLfh/CK3nuxRET//L6xrgHRfdADXpQEBAgAADAIAAACAlpgAAAAAAAA='
331
+ ]
332
+ }
333
+ }, 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp');
334
+ });
335
+ });
336
+ //# sourceMappingURL=WalletConnectProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WalletConnectProvider.test.js","sourceRoot":"","sources":["../../../../src/tests/WalletConnectProvider.test.ts"],"names":[],"mappings":"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"}