@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.
- package/dist/baseAppAccount.js +15 -4
- package/dist/baseAppAccount.js.map +1 -1
- package/dist/baseAppPaymentMaker.js +43 -50
- package/dist/baseAppPaymentMaker.js.map +1 -1
- package/dist/eip1271JwtHelper.js +83 -0
- package/dist/eip1271JwtHelper.js.map +1 -0
- package/dist/index.cjs +630 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.ts +157 -6
- package/dist/index.js +623 -5
- package/dist/index.js.map +1 -1
- package/dist/mainWalletPaymentMaker.js +26 -48
- package/dist/mainWalletPaymentMaker.js.map +1 -1
- package/dist/smartWalletHelpers.js +6 -3
- package/dist/smartWalletHelpers.js.map +1 -1
- package/dist/spendPermissionUtils.js +19 -0
- package/dist/spendPermissionUtils.js.map +1 -0
- package/dist/storage.js +6 -4
- package/dist/storage.js.map +1 -1
- package/package.json +22 -8
- package/dist/baseAppAccount.d.ts +0 -28
- package/dist/baseAppAccount.d.ts.map +0 -1
- package/dist/baseAppAccount.ephemeral.test.d.ts +0 -2
- package/dist/baseAppAccount.ephemeral.test.d.ts.map +0 -1
- package/dist/baseAppAccount.ephemeral.test.js +0 -420
- package/dist/baseAppAccount.ephemeral.test.js.map +0 -1
- package/dist/baseAppAccount.mainWallet.test.d.ts +0 -2
- package/dist/baseAppAccount.mainWallet.test.d.ts.map +0 -1
- package/dist/baseAppAccount.mainWallet.test.js +0 -259
- package/dist/baseAppAccount.mainWallet.test.js.map +0 -1
- package/dist/baseAppPaymentMaker.d.ts +0 -16
- package/dist/baseAppPaymentMaker.d.ts.map +0 -1
- package/dist/baseAppPaymentMaker.test.d.ts +0 -2
- package/dist/baseAppPaymentMaker.test.d.ts.map +0 -1
- package/dist/baseAppPaymentMaker.test.js +0 -107
- package/dist/baseAppPaymentMaker.test.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/mainWalletPaymentMaker.d.ts +0 -22
- package/dist/mainWalletPaymentMaker.d.ts.map +0 -1
- package/dist/mainWalletPaymentMaker.test.d.ts +0 -2
- package/dist/mainWalletPaymentMaker.test.d.ts.map +0 -1
- package/dist/mainWalletPaymentMaker.test.js +0 -340
- package/dist/mainWalletPaymentMaker.test.js.map +0 -1
- package/dist/smartWalletHelpers.d.ts +0 -13
- package/dist/smartWalletHelpers.d.ts.map +0 -1
- package/dist/storage.d.ts +0 -51
- package/dist/storage.d.ts.map +0 -1
- package/dist/testHelpers.d.ts +0 -88
- package/dist/testHelpers.d.ts.map +0 -1
- package/dist/testHelpers.js +0 -202
- package/dist/testHelpers.js.map +0 -1
- package/dist/types.d.ts +0 -35
- package/dist/types.d.ts.map +0 -1
- package/dist/types.js +0 -3
- 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 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"baseAppAccount.mainWallet.test.d.ts","sourceRoot":"","sources":["../src/baseAppAccount.mainWallet.test.ts"],"names":[],"mappings":""}
|