@atxp/base 0.2.22 → 0.4.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 (65) hide show
  1. package/dist/baseAppAccount.js +6 -3
  2. package/dist/baseAppAccount.js.map +1 -1
  3. package/dist/baseAppPaymentMaker.js +22 -42
  4. package/dist/baseAppPaymentMaker.js.map +1 -1
  5. package/dist/eip1271JwtHelper.js +83 -0
  6. package/dist/eip1271JwtHelper.js.map +1 -0
  7. package/dist/index.cjs +630 -0
  8. package/dist/index.cjs.map +1 -0
  9. package/dist/index.d.ts +157 -6
  10. package/dist/index.js +623 -5
  11. package/dist/index.js.map +1 -1
  12. package/dist/mainWalletPaymentMaker.js +26 -48
  13. package/dist/mainWalletPaymentMaker.js.map +1 -1
  14. package/dist/smartWalletHelpers.js +6 -3
  15. package/dist/smartWalletHelpers.js.map +1 -1
  16. package/dist/spendPermissionUtils.js +4 -2
  17. package/dist/spendPermissionUtils.js.map +1 -1
  18. package/dist/storage.js +6 -4
  19. package/dist/storage.js.map +1 -1
  20. package/package.json +21 -7
  21. package/dist/baseAppAccount.d.ts +0 -33
  22. package/dist/baseAppAccount.d.ts.map +0 -1
  23. package/dist/baseAppAccount.ephemeral.test.d.ts +0 -2
  24. package/dist/baseAppAccount.ephemeral.test.d.ts.map +0 -1
  25. package/dist/baseAppAccount.ephemeral.test.js +0 -426
  26. package/dist/baseAppAccount.ephemeral.test.js.map +0 -1
  27. package/dist/baseAppAccount.mainWallet.test.d.ts +0 -2
  28. package/dist/baseAppAccount.mainWallet.test.d.ts.map +0 -1
  29. package/dist/baseAppAccount.mainWallet.test.js +0 -259
  30. package/dist/baseAppAccount.mainWallet.test.js.map +0 -1
  31. package/dist/baseAppPaymentMaker.d.ts +0 -16
  32. package/dist/baseAppPaymentMaker.d.ts.map +0 -1
  33. package/dist/baseAppPaymentMaker.test.d.ts +0 -2
  34. package/dist/baseAppPaymentMaker.test.d.ts.map +0 -1
  35. package/dist/baseAppPaymentMaker.test.js +0 -113
  36. package/dist/baseAppPaymentMaker.test.js.map +0 -1
  37. package/dist/compatibility.test.d.ts +0 -2
  38. package/dist/compatibility.test.d.ts.map +0 -1
  39. package/dist/compatibility.test.js +0 -94
  40. package/dist/compatibility.test.js.map +0 -1
  41. package/dist/environment.test.d.ts +0 -2
  42. package/dist/environment.test.d.ts.map +0 -1
  43. package/dist/environment.test.js +0 -77
  44. package/dist/environment.test.js.map +0 -1
  45. package/dist/index.d.ts.map +0 -1
  46. package/dist/mainWalletPaymentMaker.d.ts +0 -22
  47. package/dist/mainWalletPaymentMaker.d.ts.map +0 -1
  48. package/dist/mainWalletPaymentMaker.test.d.ts +0 -2
  49. package/dist/mainWalletPaymentMaker.test.d.ts.map +0 -1
  50. package/dist/mainWalletPaymentMaker.test.js +0 -340
  51. package/dist/mainWalletPaymentMaker.test.js.map +0 -1
  52. package/dist/smartWalletHelpers.d.ts +0 -13
  53. package/dist/smartWalletHelpers.d.ts.map +0 -1
  54. package/dist/spendPermissionUtils.d.ts +0 -9
  55. package/dist/spendPermissionUtils.d.ts.map +0 -1
  56. package/dist/storage.d.ts +0 -51
  57. package/dist/storage.d.ts.map +0 -1
  58. package/dist/testHelpers.d.ts +0 -88
  59. package/dist/testHelpers.d.ts.map +0 -1
  60. package/dist/testHelpers.js +0 -202
  61. package/dist/testHelpers.js.map +0 -1
  62. package/dist/types.d.ts +0 -35
  63. package/dist/types.d.ts.map +0 -1
  64. package/dist/types.js +0 -3
  65. package/dist/types.js.map +0 -1
@@ -1,426 +0,0 @@
1
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
2
- // Mock window object to simulate browser environment for ephemeral wallet tests
3
- Object.defineProperty(global, 'window', {
4
- value: {},
5
- writable: true,
6
- configurable: true
7
- });
8
- // Mock all external modules before imports
9
- vi.mock('@base-org/account', () => ({
10
- createBaseAccountSDK: vi.fn(() => ({
11
- getProvider: vi.fn(() => ({
12
- request: vi.fn()
13
- }))
14
- }))
15
- }));
16
- vi.mock('@base-org/account/spend-permission/browser', () => ({
17
- requestSpendPermission: vi.fn(),
18
- prepareSpendCallData: vi.fn()
19
- }));
20
- vi.mock('viem/account-abstraction', () => ({
21
- toCoinbaseSmartAccount: vi.fn(),
22
- createBundlerClient: vi.fn()
23
- }));
24
- vi.mock('viem', async () => {
25
- const actual = await vi.importActual('viem');
26
- return {
27
- ...actual,
28
- http: vi.fn(() => 'mock-transport'),
29
- createPublicClient: vi.fn(() => ({})),
30
- encodeFunctionData: vi.fn(() => '0xmockencodeddata')
31
- };
32
- });
33
- import { BaseAppAccount } from './baseAppAccount.js';
34
- import { MemoryStorage } from './storage.js';
35
- import { base } from 'viem/chains';
36
- import { USDC_CONTRACT_ADDRESS_BASE } from '@atxp/client';
37
- import BigNumber from 'bignumber.js';
38
- import { TEST_API_KEY, TEST_WALLET_ADDRESS, TEST_SMART_WALLET_ADDRESS, TEST_RECEIVER_ADDRESS, TEST_PRIVATE_KEY, TEST_PAYMASTER_URL, TEST_BUNDLER_URL, setupInitializationMocks, setupPaymentMocks, mockSpendPermission, mockExpiredSpendPermission, mockSmartAccount, mockBundlerClient, mockFailedBundlerClient, mockProvider, mockSpendCalls, getStorageKey, removeTimestamps, expectTimestampAround } from './testHelpers.js';
39
- describe('BaseAppAccount', () => {
40
- let mockStorage;
41
- beforeEach(() => {
42
- mockStorage = new MemoryStorage();
43
- vi.clearAllMocks();
44
- });
45
- afterEach(() => {
46
- vi.restoreAllMocks();
47
- });
48
- describe('initialize', () => {
49
- it('should create a new account when no stored data exists', async () => {
50
- const bundlerClient = mockBundlerClient();
51
- const mocks = await setupInitializationMocks({ bundlerClient });
52
- // Initialize account
53
- const account = await BaseAppAccount.initialize({
54
- walletAddress: TEST_WALLET_ADDRESS,
55
- apiKey: TEST_API_KEY,
56
- appName: 'Test App',
57
- storage: mockStorage
58
- });
59
- // Verify account creation
60
- expect(account).toBeDefined();
61
- expect(account.accountId).toBe(TEST_SMART_WALLET_ADDRESS);
62
- expect(account.paymentMakers).toBeDefined();
63
- expect(account.paymentMakers.base).toBeDefined();
64
- // Verify smart wallet was deployed
65
- expect(bundlerClient.sendUserOperation).toHaveBeenCalledWith({
66
- calls: [{
67
- to: TEST_SMART_WALLET_ADDRESS,
68
- value: 0n,
69
- data: '0x'
70
- }],
71
- paymaster: true
72
- });
73
- // Verify spend permission was requested
74
- expect(mocks.requestSpendPermission).toHaveBeenCalledWith({
75
- account: TEST_WALLET_ADDRESS,
76
- spender: TEST_SMART_WALLET_ADDRESS,
77
- token: USDC_CONTRACT_ADDRESS_BASE,
78
- chainId: base.id,
79
- allowance: 10n,
80
- periodInDays: 7,
81
- provider: expect.any(Object)
82
- });
83
- // Verify data was stored
84
- const storageKey = getStorageKey(TEST_WALLET_ADDRESS);
85
- const storedData = mockStorage.get(storageKey);
86
- expect(storedData).toBeTruthy();
87
- const parsedData = JSON.parse(storedData);
88
- expect(parsedData.privateKey).toBeDefined();
89
- // Compare permission structure (toMatchObject ignores extra properties in received)
90
- expect(parsedData.permission).toMatchObject(removeTimestamps(mockSpendPermission()));
91
- // Verify timestamps are reasonable
92
- expectTimestampAround(parsedData.permission.permission.start, 0); // Should be around now
93
- expectTimestampAround(parsedData.permission.permission.end, 604800); // Should be ~7 days from now
94
- });
95
- it('should reuse existing account when valid stored data exists', async () => {
96
- // Pre-store valid permission
97
- const permission = mockSpendPermission();
98
- const storageKey = getStorageKey(TEST_WALLET_ADDRESS);
99
- mockStorage.set(storageKey, JSON.stringify({
100
- privateKey: TEST_PRIVATE_KEY,
101
- permission
102
- }));
103
- const bundlerClient = mockBundlerClient();
104
- const mocks = await setupInitializationMocks({ bundlerClient });
105
- // Initialize account
106
- const account = await BaseAppAccount.initialize({
107
- walletAddress: TEST_WALLET_ADDRESS,
108
- apiKey: TEST_API_KEY,
109
- appName: 'Test App',
110
- storage: mockStorage
111
- });
112
- // Verify account was loaded from storage
113
- expect(account).toBeDefined();
114
- expect(account.accountId).toBe(TEST_SMART_WALLET_ADDRESS);
115
- // Verify smart wallet was NOT deployed (reusing existing)
116
- expect(bundlerClient.sendUserOperation).not.toHaveBeenCalled();
117
- expect(mocks.requestSpendPermission).not.toHaveBeenCalled();
118
- });
119
- it('should create new account when stored permission is expired', async () => {
120
- // Pre-store expired permission
121
- const expiredPermission = mockExpiredSpendPermission();
122
- const storageKey = getStorageKey(TEST_WALLET_ADDRESS);
123
- mockStorage.set(storageKey, JSON.stringify({
124
- privateKey: TEST_PRIVATE_KEY,
125
- permission: expiredPermission
126
- }));
127
- const newPermission = mockSpendPermission({ salt: '2', signature: '0xnewsignature' });
128
- const bundlerClient = mockBundlerClient();
129
- const mocks = await setupInitializationMocks({
130
- bundlerClient,
131
- spendPermission: newPermission
132
- });
133
- // Initialize account
134
- const account = await BaseAppAccount.initialize({
135
- walletAddress: TEST_WALLET_ADDRESS,
136
- apiKey: TEST_API_KEY,
137
- appName: 'Test App',
138
- storage: mockStorage
139
- });
140
- // Verify new account was created
141
- expect(account).toBeDefined();
142
- expect(bundlerClient.sendUserOperation).toHaveBeenCalled();
143
- expect(mocks.requestSpendPermission).toHaveBeenCalled();
144
- // Verify old data was removed and new data stored
145
- const storedData = mockStorage.get(storageKey);
146
- expect(storedData).toBeTruthy();
147
- const parsedData = JSON.parse(storedData);
148
- expect(parsedData.permission).toMatchObject(removeTimestamps(newPermission));
149
- // Verify timestamps are reasonable
150
- expectTimestampAround(parsedData.permission.permission.start, 0);
151
- expectTimestampAround(parsedData.permission.permission.end, 604800);
152
- });
153
- it('should use custom allowance and period when provided', async () => {
154
- const mocks = await setupInitializationMocks();
155
- // Initialize with custom values
156
- const customAllowance = 100n;
157
- const customPeriod = 30;
158
- await BaseAppAccount.initialize({
159
- walletAddress: TEST_WALLET_ADDRESS,
160
- apiKey: TEST_API_KEY,
161
- appName: 'Test App',
162
- allowance: customAllowance,
163
- periodInDays: customPeriod,
164
- storage: mockStorage
165
- });
166
- // Verify custom values were used
167
- expect(mocks.requestSpendPermission).toHaveBeenCalledWith(expect.objectContaining({
168
- allowance: customAllowance,
169
- periodInDays: customPeriod
170
- }));
171
- });
172
- it('should throw error when API key is not provided', async () => {
173
- await expect(BaseAppAccount.initialize({
174
- walletAddress: TEST_WALLET_ADDRESS,
175
- apiKey: '',
176
- appName: 'Test App',
177
- storage: mockStorage
178
- })).rejects.toThrow('Smart wallet API key is required');
179
- });
180
- it('should make all required blockchain calls when creating new account', async () => {
181
- const provider = mockProvider();
182
- const bundlerClient = mockBundlerClient();
183
- const smartAccount = mockSmartAccount();
184
- const permission = mockSpendPermission();
185
- const mocks = await setupInitializationMocks({
186
- provider,
187
- bundlerClient,
188
- smartAccount,
189
- spendPermission: permission
190
- });
191
- const { http } = await import('viem');
192
- // Initialize account
193
- await BaseAppAccount.initialize({
194
- walletAddress: TEST_WALLET_ADDRESS,
195
- apiKey: TEST_API_KEY,
196
- appName: 'Test App',
197
- storage: mockStorage
198
- });
199
- // Verify SDK initialization
200
- expect(mocks.createBaseAccountSDK).toHaveBeenCalledTimes(1);
201
- expect(mocks.createBaseAccountSDK).toHaveBeenCalledWith({
202
- appName: 'Test App',
203
- appChainIds: [base.id],
204
- paymasterUrls: {
205
- [base.id]: TEST_PAYMASTER_URL
206
- }
207
- });
208
- // Verify wallet_connect attempt
209
- expect(provider.request).toHaveBeenCalledWith({ method: 'wallet_connect' });
210
- // Verify public client creation
211
- expect(mocks.createPublicClient).toHaveBeenCalledWith({
212
- chain: base,
213
- transport: expect.anything()
214
- });
215
- expect(http).toHaveBeenCalledWith(`${TEST_BUNDLER_URL}/${TEST_API_KEY}`);
216
- // Verify smart account creation
217
- expect(mocks.toCoinbaseSmartAccount).toHaveBeenCalledWith({
218
- client: expect.anything(),
219
- owners: [expect.objectContaining({
220
- address: expect.any(String)
221
- })],
222
- version: '1'
223
- });
224
- // Verify bundler client creation
225
- expect(mocks.createBundlerClient).toHaveBeenCalledWith({
226
- account: smartAccount,
227
- client: expect.anything(),
228
- transport: expect.anything(),
229
- chain: base,
230
- paymaster: true,
231
- paymasterContext: {
232
- transport: expect.anything()
233
- }
234
- });
235
- // Verify smart wallet deployment
236
- expect(bundlerClient.sendUserOperation).toHaveBeenCalledTimes(1);
237
- expect(bundlerClient.sendUserOperation).toHaveBeenCalledWith({
238
- calls: [{
239
- to: TEST_SMART_WALLET_ADDRESS,
240
- value: 0n,
241
- data: '0x'
242
- }],
243
- paymaster: true
244
- });
245
- expect(bundlerClient.waitForUserOperationReceipt).toHaveBeenCalledWith({
246
- hash: '0xoperationhash'
247
- });
248
- // Verify spend permission request
249
- expect(mocks.requestSpendPermission).toHaveBeenCalledTimes(1);
250
- expect(mocks.requestSpendPermission).toHaveBeenCalledWith({
251
- account: TEST_WALLET_ADDRESS,
252
- spender: TEST_SMART_WALLET_ADDRESS,
253
- token: USDC_CONTRACT_ADDRESS_BASE,
254
- chainId: base.id,
255
- allowance: 10n,
256
- periodInDays: 7,
257
- provider: provider
258
- });
259
- });
260
- it('should skip deployment and permission when reusing stored account', async () => {
261
- // Pre-store valid permission
262
- const permission = mockSpendPermission();
263
- const storageKey = getStorageKey(TEST_WALLET_ADDRESS);
264
- mockStorage.set(storageKey, JSON.stringify({
265
- privateKey: TEST_PRIVATE_KEY,
266
- permission
267
- }));
268
- const provider = mockProvider();
269
- const bundlerClient = mockBundlerClient();
270
- const smartAccount = mockSmartAccount();
271
- const mocks = await setupInitializationMocks({
272
- provider,
273
- bundlerClient,
274
- smartAccount
275
- });
276
- const { http } = await import('viem');
277
- // Initialize account
278
- await BaseAppAccount.initialize({
279
- walletAddress: TEST_WALLET_ADDRESS,
280
- apiKey: TEST_API_KEY,
281
- appName: 'Test App',
282
- storage: mockStorage
283
- });
284
- // Verify SDK initialization still happens
285
- expect(mocks.createBaseAccountSDK).toHaveBeenCalledTimes(1);
286
- expect(mocks.createBaseAccountSDK).toHaveBeenCalledWith({
287
- appName: 'Test App',
288
- appChainIds: [base.id],
289
- paymasterUrls: {
290
- [base.id]: TEST_PAYMASTER_URL
291
- }
292
- });
293
- // Verify wallet_connect attempt still happens
294
- expect(provider.request).toHaveBeenCalledWith({ method: 'wallet_connect' });
295
- // Verify public client creation
296
- expect(mocks.createPublicClient).toHaveBeenCalledWith({
297
- chain: base,
298
- transport: expect.anything()
299
- });
300
- expect(http).toHaveBeenCalledWith(`${TEST_BUNDLER_URL}/${TEST_API_KEY}`);
301
- // Verify smart account creation with stored private key
302
- expect(mocks.toCoinbaseSmartAccount).toHaveBeenCalledWith({
303
- client: expect.anything(),
304
- owners: [expect.objectContaining({
305
- address: expect.any(String)
306
- })],
307
- version: '1'
308
- });
309
- // Verify bundler client creation
310
- expect(mocks.createBundlerClient).toHaveBeenCalledWith({
311
- account: smartAccount,
312
- client: expect.anything(),
313
- transport: expect.anything(),
314
- chain: base,
315
- paymaster: true,
316
- paymasterContext: {
317
- transport: expect.anything()
318
- }
319
- });
320
- // Verify NO smart wallet deployment
321
- expect(bundlerClient.sendUserOperation).not.toHaveBeenCalled();
322
- expect(bundlerClient.waitForUserOperationReceipt).not.toHaveBeenCalled();
323
- // Verify NO new spend permission request
324
- expect(mocks.requestSpendPermission).not.toHaveBeenCalled();
325
- });
326
- it('should handle wallet_connect failure gracefully', async () => {
327
- // Mock provider that fails wallet_connect
328
- const provider = mockProvider({
329
- request: vi.fn().mockRejectedValue(new Error('Wallet does not support wallet_connect'))
330
- });
331
- const bundlerClient = mockBundlerClient();
332
- const mocks = await setupInitializationMocks({ provider, bundlerClient });
333
- // Initialize account - should not throw despite wallet_connect failure
334
- const account = await BaseAppAccount.initialize({
335
- walletAddress: TEST_WALLET_ADDRESS,
336
- apiKey: TEST_API_KEY,
337
- appName: 'Test App',
338
- storage: mockStorage
339
- });
340
- // Verify initialization continued despite wallet_connect failure
341
- expect(account).toBeDefined();
342
- expect(provider.request).toHaveBeenCalledWith({ method: 'wallet_connect' });
343
- expect(bundlerClient.sendUserOperation).toHaveBeenCalled();
344
- expect(mocks.requestSpendPermission).toHaveBeenCalled();
345
- });
346
- it('should throw when smart wallet deployment fails', async () => {
347
- const bundlerClient = mockFailedBundlerClient({ failureType: 'deployment' });
348
- await setupInitializationMocks({ bundlerClient });
349
- // Initialize should throw
350
- await expect(BaseAppAccount.initialize({
351
- walletAddress: TEST_WALLET_ADDRESS,
352
- apiKey: TEST_API_KEY,
353
- appName: 'Test App',
354
- storage: mockStorage
355
- })).rejects.toThrow('Smart wallet deployment failed');
356
- });
357
- });
358
- describe('clearAllStoredData', () => {
359
- it('should remove stored data for the given wallet address', () => {
360
- const storageKey = getStorageKey(TEST_WALLET_ADDRESS);
361
- // Store some data
362
- mockStorage.set(storageKey, 'test-data');
363
- expect(mockStorage.get(storageKey)).toBe('test-data');
364
- // Clear the data
365
- BaseAppAccount.clearAllStoredData(TEST_WALLET_ADDRESS, mockStorage);
366
- // Verify data was removed
367
- expect(mockStorage.get(storageKey)).toBeNull();
368
- });
369
- it('should throw error when called outside browser without storage', () => {
370
- // Mock window as undefined (non-browser environment)
371
- const originalWindow = global.window;
372
- global.window = undefined;
373
- expect(() => {
374
- BaseAppAccount.clearAllStoredData(TEST_WALLET_ADDRESS);
375
- }).toThrow('clearAllStoredData requires a storage to be provided outside of browser environments');
376
- // Restore window
377
- global.window = originalWindow;
378
- });
379
- });
380
- describe('payment functionality', () => {
381
- it('should make payment using the ephemeral wallet', async () => {
382
- // Pre-store valid data
383
- const permission = mockSpendPermission();
384
- const storageKey = getStorageKey(TEST_WALLET_ADDRESS);
385
- mockStorage.set(storageKey, JSON.stringify({
386
- privateKey: TEST_PRIVATE_KEY,
387
- permission
388
- }));
389
- const bundlerClient = mockBundlerClient();
390
- const smartAccount = mockSmartAccount();
391
- const spendCalls = mockSpendCalls();
392
- await setupInitializationMocks({ bundlerClient, smartAccount });
393
- const { prepareSpendCallData } = await setupPaymentMocks({ spendCalls });
394
- // Initialize account
395
- const account = await BaseAppAccount.initialize({
396
- walletAddress: TEST_WALLET_ADDRESS,
397
- apiKey: TEST_API_KEY,
398
- appName: 'Test App',
399
- storage: mockStorage
400
- });
401
- // Make a payment
402
- const paymentMaker = account.paymentMakers.base;
403
- const amount = new BigNumber(1.5); // 1.5 USDC
404
- const txHash = await paymentMaker.makePayment(amount, 'USDC', TEST_RECEIVER_ADDRESS, 'test payment');
405
- // Verify payment was made
406
- expect(txHash).toBe('0xtxhash');
407
- expect(prepareSpendCallData).toHaveBeenCalledWith(permission, 1500000n); // 1.5 USDC in smallest units
408
- expect(bundlerClient.sendUserOperation).toHaveBeenCalledWith({
409
- account: smartAccount,
410
- calls: [
411
- // Spend permission calls
412
- { to: '0xcontract1', data: '0xdata1', value: 0n },
413
- { to: '0xcontract2', data: '0xdata2', value: 0n },
414
- // Transfer call
415
- {
416
- to: USDC_CONTRACT_ADDRESS_BASE,
417
- data: expect.any(String), // Encoded transfer function
418
- value: 0n
419
- }
420
- ],
421
- maxPriorityFeePerGas: expect.any(BigInt)
422
- });
423
- });
424
- });
425
- });
426
- //# sourceMappingURL=baseAppAccount.ephemeral.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseAppAccount.ephemeral.test.js","sourceRoot":"","sources":["../src/baseAppAccount.ephemeral.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=baseAppAccount.mainWallet.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseAppAccount.mainWallet.test.d.ts","sourceRoot":"","sources":["../src/baseAppAccount.mainWallet.test.ts"],"names":[],"mappings":""}