@reown/appkit-adapter-bitcoin 1.7.2-rc2 → 1.7.2

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 (45) hide show
  1. package/dist/esm/tsconfig.build.tsbuildinfo +1 -1
  2. package/package.json +5 -5
  3. package/dist/esm/src/connectors/XverseConnector.js +0 -38
  4. package/dist/esm/src/connectors/XverseConnector.js.map +0 -1
  5. package/dist/esm/tests/BitcoinAdapter.test.js +0 -459
  6. package/dist/esm/tests/BitcoinAdapter.test.js.map +0 -1
  7. package/dist/esm/tests/connectors/LeatherConnector.test.js +0 -144
  8. package/dist/esm/tests/connectors/LeatherConnector.test.js.map +0 -1
  9. package/dist/esm/tests/connectors/OKXConnector.test.js +0 -172
  10. package/dist/esm/tests/connectors/OKXConnector.test.js.map +0 -1
  11. package/dist/esm/tests/connectors/SatsConnectConnector.test.js +0 -253
  12. package/dist/esm/tests/connectors/SatsConnectConnector.test.js.map +0 -1
  13. package/dist/esm/tests/connectors/WalletStandardConnector.test.js +0 -297
  14. package/dist/esm/tests/connectors/WalletStandardConnector.test.js.map +0 -1
  15. package/dist/esm/tests/connectors/XverseConnector.test.js +0 -71
  16. package/dist/esm/tests/connectors/XverseConnector.test.js.map +0 -1
  17. package/dist/esm/tests/mocks/mockSatsConnect.js +0 -60
  18. package/dist/esm/tests/mocks/mockSatsConnect.js.map +0 -1
  19. package/dist/esm/tests/mocks/mockUTXO.js +0 -15
  20. package/dist/esm/tests/mocks/mockUTXO.js.map +0 -1
  21. package/dist/esm/tests/mocks/mockUniversalProvider.js +0 -64
  22. package/dist/esm/tests/mocks/mockUniversalProvider.js.map +0 -1
  23. package/dist/esm/tests/mocks/mockWalletStandard.js +0 -47
  24. package/dist/esm/tests/mocks/mockWalletStandard.js.map +0 -1
  25. package/dist/esm/tests/utils/BitcoinApi.test.js +0 -48
  26. package/dist/esm/tests/utils/BitcoinApi.test.js.map +0 -1
  27. package/dist/esm/tests/utils/UnitsUtils.test.js +0 -21
  28. package/dist/esm/tests/utils/UnitsUtils.test.js.map +0 -1
  29. package/dist/esm/tests/utils/WalletConnectProvider.test.js +0 -275
  30. package/dist/esm/tests/utils/WalletConnectProvider.test.js.map +0 -1
  31. package/dist/esm/tsconfig.tsbuildinfo +0 -1
  32. package/dist/types/src/connectors/XverseConnector.d.ts +0 -7
  33. package/dist/types/tests/BitcoinAdapter.test.d.ts +0 -1
  34. package/dist/types/tests/connectors/LeatherConnector.test.d.ts +0 -1
  35. package/dist/types/tests/connectors/OKXConnector.test.d.ts +0 -1
  36. package/dist/types/tests/connectors/SatsConnectConnector.test.d.ts +0 -1
  37. package/dist/types/tests/connectors/WalletStandardConnector.test.d.ts +0 -1
  38. package/dist/types/tests/connectors/XverseConnector.test.d.ts +0 -1
  39. package/dist/types/tests/mocks/mockSatsConnect.d.ts +0 -27
  40. package/dist/types/tests/mocks/mockUTXO.d.ts +0 -2
  41. package/dist/types/tests/mocks/mockUniversalProvider.d.ts +0 -6
  42. package/dist/types/tests/mocks/mockWalletStandard.d.ts +0 -7
  43. package/dist/types/tests/utils/BitcoinApi.test.d.ts +0 -1
  44. package/dist/types/tests/utils/UnitsUtils.test.d.ts +0 -1
  45. package/dist/types/tests/utils/WalletConnectProvider.test.d.ts +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"BitcoinApi.test.js","sourceRoot":"","sources":["../../../../tests/utils/BitcoinApi.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAEjD,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAEhE,OAAO,EAAE,UAAU,EAAE,MAAM,4BAA4B,CAAA;AACvD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAE5C,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,UAAU,EAAE,GAAG,EAAE;QACxB,EAAE,CAAC,oBAAoB,EAAE,KAAK,IAAI,EAAE;YAClC,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC1C,MAAM,WAAW,GAAG,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,CAAC,CAAA;YAElE,QAAQ,CAAC,qBAAqB,CAAC;gBAC7B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;aACzC,CAAC,CAAA;YAET,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;gBACzC,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CAAC,qDAAqD,CAAC,CAAA;QAC9F,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,6BAA6B,EAAE,KAAK,IAAI,EAAE;YAC3C,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAC1C,MAAM,WAAW,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,CAAA;YAElC,QAAQ,CAAC,qBAAqB,CAAC;gBAC7B,EAAE,EAAE,IAAI;gBACR,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;aACzC,CAAC,CAAA;YAET,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC;gBACzC,OAAO,EAAE,cAAc;gBACvB,OAAO,EAAE,cAAc;aACxB,CAAC,CAAA;YAEF,MAAM,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAA;YACrC,MAAM,CAAC,QAAQ,CAAC,CAAC,oBAAoB,CACnC,6DAA6D,CAC9D,CAAA;QACH,CAAC,CAAC,CAAA;QAEF,EAAE,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;YAC1D,MAAM,QAAQ,GAAG,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC,CAAA;YAE1C,QAAQ,CAAC,qBAAqB,CAAC;gBAC7B,EAAE,EAAE,KAAK;gBACT,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;aAC1C,CAAC,CAAA;YAET,MAAM,MAAM,CACV,UAAU,CAAC,QAAQ,CAAC;gBAClB,OAAO,EAAE,OAAO;gBAChB,OAAO,EAAE,cAAc;aACxB,CAAC,CACH,CAAC,OAAO,CAAC,OAAO,CAAC,mCAAmC,CAAC,CAAA;QACxD,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,21 +0,0 @@
1
- import { describe, expect, it } from 'vitest';
2
- import { bitcoin } from '@reown/appkit/networks';
3
- import { UnitsUtil } from '../../src/utils/UnitsUtil';
4
- describe('UnitsUtils', () => {
5
- describe('parseSatoshis', () => {
6
- it.each([
7
- ['100000000', '1'],
8
- ['10000000', '0.1'],
9
- ['1000000', '0.01'],
10
- ['100000', '0.001'],
11
- ['10000', '0.0001'],
12
- ['1000', '0.00001'],
13
- ['100', '0.000001'],
14
- ['10', '0.0000001'],
15
- ['1', '0.00000001']
16
- ])('should parse %s satoshis to %s btc', (satoshis, expected) => {
17
- expect(UnitsUtil.parseSatoshis(satoshis, bitcoin)).toEqual(expected);
18
- });
19
- });
20
- });
21
- //# sourceMappingURL=UnitsUtils.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnitsUtils.test.js","sourceRoot":"","sources":["../../../../tests/utils/UnitsUtils.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAA;AAE7C,OAAO,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAA;AAEhD,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AAErD,QAAQ,CAAC,YAAY,EAAE,GAAG,EAAE;IAC1B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;QAC7B,EAAE,CAAC,IAAI,CAAC;YACN,CAAC,WAAW,EAAE,GAAG,CAAC;YAClB,CAAC,UAAU,EAAE,KAAK,CAAC;YACnB,CAAC,SAAS,EAAE,MAAM,CAAC;YACnB,CAAC,QAAQ,EAAE,OAAO,CAAC;YACnB,CAAC,OAAO,EAAE,QAAQ,CAAC;YACnB,CAAC,MAAM,EAAE,SAAS,CAAC;YACnB,CAAC,KAAK,EAAE,UAAU,CAAC;YACnB,CAAC,IAAI,EAAE,WAAW,CAAC;YACnB,CAAC,GAAG,EAAE,YAAY,CAAC;SACpB,CAAC,CAAC,oCAAoC,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,EAAE;YAC9D,MAAM,CAAC,SAAS,CAAC,aAAa,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAA;QACtE,CAAC,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC,CAAC,CAAA"}
@@ -1,275 +0,0 @@
1
- import { beforeEach, describe, expect, it, vi } from 'vitest';
2
- import { ConstantsUtil } from '@reown/appkit-common';
3
- import { bitcoin, bitcoinTestnet } from '@reown/appkit/networks';
4
- import { BitcoinWalletConnectConnector } from '../../src/connectors/BitcoinWalletConnectProvider';
5
- import { mockUniversalProvider } from '../mocks/mockUniversalProvider';
6
- describe('LeatherConnector', () => {
7
- let requestedChains;
8
- let provider;
9
- let getActiveChain;
10
- let universalProvider;
11
- beforeEach(() => {
12
- requestedChains = [bitcoin, bitcoinTestnet];
13
- universalProvider = mockUniversalProvider();
14
- getActiveChain = vi.fn(() => bitcoin);
15
- provider = new BitcoinWalletConnectConnector({
16
- provider: universalProvider,
17
- chains: requestedChains,
18
- getActiveChain: getActiveChain
19
- });
20
- });
21
- it('should validate the metadata', async () => {
22
- expect(provider.chain).toBe('bip122');
23
- expect(provider.type).toBe('WALLET_CONNECT');
24
- expect(provider.id).toBe(ConstantsUtil.CONNECTOR_ID.WALLET_CONNECT);
25
- expect(provider.name).toBe('WalletConnect');
26
- });
27
- it('should return the chains filtered by the requested chains', async () => {
28
- universalProvider.session = mockUniversalProvider.mockSession({
29
- namespaces: {
30
- bip122: {
31
- accounts: [`${bitcoin.caipNetworkId}:address`],
32
- events: [],
33
- methods: []
34
- },
35
- eip155: {
36
- accounts: [`eip155:1:evm_address`],
37
- events: [],
38
- methods: []
39
- }
40
- }
41
- });
42
- expect(provider.chains).toEqual([bitcoin]);
43
- });
44
- describe('connect', () => {
45
- it('should reject the connection', async () => {
46
- await expect(provider.connect()).rejects.toThrow('Connection of WalletConnectProvider should be done via UniversalAdapter');
47
- });
48
- });
49
- describe('disconnect', () => {
50
- it('should disconnect the provider', async () => {
51
- await provider.disconnect();
52
- expect(universalProvider.disconnect).toHaveBeenCalled();
53
- });
54
- });
55
- describe('signMessage', () => {
56
- beforeEach(() => {
57
- universalProvider.session = mockUniversalProvider.mockSession();
58
- });
59
- it('should sign the message and parse response', async () => {
60
- const requestSpy = vi.spyOn(universalProvider, 'request');
61
- requestSpy.mockResolvedValueOnce({
62
- signature: '6d6f636b5f7369676e6174757265'
63
- });
64
- const result = await provider.signMessage({
65
- message: 'mock_message',
66
- address: 'mock_address'
67
- });
68
- expect(requestSpy).toHaveBeenCalledWith({
69
- method: 'signMessage',
70
- params: {
71
- message: 'mock_message',
72
- account: 'mock_address',
73
- address: 'mock_address'
74
- }
75
- }, bitcoin.caipNetworkId);
76
- expect(result).toBe('bW9ja19zaWduYXR1cmU=');
77
- });
78
- it('should throw an error if the method is not supported', async () => {
79
- universalProvider.session = mockUniversalProvider.mockSession({
80
- namespaces: {
81
- bip122: {
82
- accounts: [`${bitcoin.caipNetworkId}:address`],
83
- events: [],
84
- methods: []
85
- }
86
- }
87
- });
88
- await expect(provider.signMessage({ message: 'mock_message', address: 'mock_address' })).rejects.toThrow('Method signMessage is not supported');
89
- });
90
- });
91
- describe('sendTransfer', () => {
92
- beforeEach(() => {
93
- universalProvider.session = mockUniversalProvider.mockSession();
94
- });
95
- it('should send the transfer and parse response', async () => {
96
- const requestSpy = vi.spyOn(universalProvider, 'request');
97
- requestSpy.mockResolvedValueOnce({ txid: 'mock_txid' });
98
- const result = await provider.sendTransfer({
99
- recipient: 'mock_recipient',
100
- amount: 'mock_amount'
101
- });
102
- expect(requestSpy).toHaveBeenCalledWith({
103
- method: 'sendTransfer',
104
- params: {
105
- account: 'address',
106
- recipientAddress: 'mock_recipient',
107
- amount: 'mock_amount'
108
- }
109
- }, bitcoin.caipNetworkId);
110
- expect(result).toBe('mock_txid');
111
- });
112
- it('should throw an error if the method is not supported', async () => {
113
- universalProvider.session = mockUniversalProvider.mockSession({
114
- namespaces: {
115
- bip122: {
116
- accounts: [`${bitcoin.caipNetworkId}:address`],
117
- events: [],
118
- methods: []
119
- }
120
- }
121
- });
122
- await expect(provider.sendTransfer({ recipient: 'mock_recipient', amount: 'mock_amount' })).rejects.toThrow('Method sendTransfer is not supported');
123
- });
124
- it('should throw an error if the account is not found', async () => {
125
- universalProvider.session = mockUniversalProvider.mockSession({
126
- namespaces: {
127
- bip122: {
128
- accounts: [],
129
- events: [],
130
- methods: ['sendTransfer']
131
- }
132
- }
133
- });
134
- await expect(provider.sendTransfer({ recipient: 'mock_recipient', amount: 'mock_amount' })).rejects.toThrow('Account not found');
135
- });
136
- it('should throw an error if account is malformed', async () => {
137
- universalProvider.session = mockUniversalProvider.mockSession({
138
- namespaces: {
139
- bip122: {
140
- accounts: ['address'],
141
- events: [],
142
- methods: ['sendTransfer']
143
- }
144
- }
145
- });
146
- await expect(provider.sendTransfer({ recipient: 'mock_recipient', amount: 'mock_amount' })).rejects.toThrow('Address not found');
147
- });
148
- });
149
- describe('getAccountAddresses', () => {
150
- beforeEach(() => {
151
- universalProvider.session = mockUniversalProvider.mockSession();
152
- });
153
- it('should get the account addresses and parse response', async () => {
154
- const requestSpy = vi.spyOn(universalProvider, 'request');
155
- requestSpy.mockResolvedValueOnce(['mock_address']);
156
- const result = await provider.getAccountAddresses();
157
- expect(requestSpy).toHaveBeenCalledWith({
158
- method: 'getAccountAddresses',
159
- params: undefined
160
- }, bitcoin.caipNetworkId);
161
- expect(result).toEqual([{ address: 'mock_address', purpose: 'payment' }]);
162
- });
163
- it('should throw an error if the method is not supported', async () => {
164
- universalProvider.session = mockUniversalProvider.mockSession({
165
- namespaces: {
166
- bip122: {
167
- accounts: [`${bitcoin.caipNetworkId}:address`],
168
- events: [],
169
- methods: []
170
- }
171
- }
172
- });
173
- await expect(provider.getAccountAddresses()).rejects.toThrow('Method getAccountAddresses is not supported');
174
- });
175
- });
176
- describe('signPSBT', () => {
177
- beforeEach(() => {
178
- universalProvider.session = mockUniversalProvider.mockSession();
179
- });
180
- it('should sign the PSBT and parse response', async () => {
181
- const requestSpy = vi.spyOn(universalProvider, 'request');
182
- requestSpy.mockResolvedValueOnce({ psbt: 'mock_psbt', txid: 'mock_txid' });
183
- const result = await provider.signPSBT({
184
- psbt: 'mock_psbt',
185
- signInputs: [],
186
- broadcast: true
187
- });
188
- expect(requestSpy).toHaveBeenCalledWith({
189
- method: 'signPsbt',
190
- params: {
191
- account: 'address',
192
- psbt: 'mock_psbt',
193
- signInputs: [],
194
- broadcast: true
195
- }
196
- }, bitcoin.caipNetworkId);
197
- expect(result).toEqual({ psbt: 'mock_psbt', txid: 'mock_txid' });
198
- });
199
- it('should throw an error if the method is not supported', async () => {
200
- universalProvider.session = mockUniversalProvider.mockSession({
201
- namespaces: {
202
- bip122: {
203
- accounts: [`${bitcoin.caipNetworkId}:address`],
204
- events: [],
205
- methods: []
206
- }
207
- }
208
- });
209
- await expect(provider.signPSBT({ psbt: 'mock_psbt', signInputs: [], broadcast: true })).rejects.toThrow('Method signPsbt is not supported');
210
- });
211
- it('should throw an error if the account is not found', async () => {
212
- universalProvider.session = mockUniversalProvider.mockSession({
213
- namespaces: {
214
- bip122: {
215
- accounts: [],
216
- events: [],
217
- methods: ['signPsbt']
218
- }
219
- }
220
- });
221
- await expect(provider.signPSBT({ psbt: 'mock_psbt', signInputs: [], broadcast: true })).rejects.toThrow('Account not found');
222
- });
223
- });
224
- describe('request', () => {
225
- it('should forward request to the universal provider', async () => {
226
- const requestSpy = vi.spyOn(universalProvider, 'request');
227
- requestSpy.mockResolvedValueOnce({ result: 'mock_result' });
228
- const result = await provider.request({ method: 'mock_method', params: {} });
229
- expect(requestSpy).toHaveBeenCalledWith({ method: 'mock_method', params: {} }, bitcoin.caipNetworkId);
230
- expect(result).toEqual({ result: 'mock_result' });
231
- });
232
- it('should throw if there is no active chain', async () => {
233
- getActiveChain.mockReturnValueOnce(undefined);
234
- await expect(provider.request({ method: 'mock_method', params: {} })).rejects.toThrow('Chain not found');
235
- });
236
- });
237
- describe('getAccount', () => {
238
- /**
239
- * These tests are to verify `getAccount` method without the `required` parameter.
240
- * As `getAccount` is private method, these tests should be removed when there is a
241
- * call to this method internally without the `required` parameter and the method
242
- * should be tested through public methods that call it.
243
- **/
244
- it('should return the account address', () => {
245
- universalProvider.session = mockUniversalProvider.mockSession();
246
- const result = provider.getAccount();
247
- expect(result).toBe('address');
248
- });
249
- it('should throw an error if the account is not found', () => {
250
- universalProvider.session = mockUniversalProvider.mockSession({
251
- namespaces: {
252
- bip122: {
253
- accounts: [],
254
- events: [],
255
- methods: []
256
- }
257
- }
258
- });
259
- expect(provider.getAccount()).toBeUndefined();
260
- });
261
- it('should throw an error if the account is malformed', () => {
262
- universalProvider.session = mockUniversalProvider.mockSession({
263
- namespaces: {
264
- bip122: {
265
- accounts: ['address'],
266
- events: [],
267
- methods: []
268
- }
269
- }
270
- });
271
- expect(provider.getAccount()).toBeUndefined();
272
- });
273
- });
274
- });
275
- //# sourceMappingURL=WalletConnectProvider.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WalletConnectProvider.test.js","sourceRoot":"","sources":["../../../../tests/utils/WalletConnectProvider.test.ts"],"names":[],"mappings":"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"}