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