@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,259 +0,0 @@
1
- // Mock all external modules before imports
2
- vi.mock('@base-org/account', () => ({
3
- createBaseAccountSDK: vi.fn(() => ({
4
- getProvider: vi.fn(() => ({
5
- request: vi.fn()
6
- }))
7
- }))
8
- }));
9
- import { describe, it, expect, vi, beforeEach, afterEach } from 'vitest';
10
- import { BaseAppAccount } from './baseAppAccount.js';
11
- import { MainWalletPaymentMaker } from './mainWalletPaymentMaker.js';
12
- import { MemoryStorage } from './storage.js';
13
- import BigNumber from 'bignumber.js';
14
- import { USDC_CONTRACT_ADDRESS_BASE } from '@atxp/client';
15
- import { TEST_API_KEY, TEST_WALLET_ADDRESS, mockProvider, mockBaseAccountSDK, } from './testHelpers.js';
16
- const { createBaseAccountSDK } = await import('@base-org/account');
17
- describe('BaseAppAccount - Main Wallet Mode', () => {
18
- let storage;
19
- beforeEach(() => {
20
- vi.clearAllMocks();
21
- storage = new MemoryStorage();
22
- });
23
- afterEach(() => {
24
- vi.restoreAllMocks();
25
- });
26
- describe('initialize with useEphemeralWallet=false', () => {
27
- it('should initialize without creating ephemeral wallet', async () => {
28
- const provider = mockProvider();
29
- const sdk = mockBaseAccountSDK({ provider });
30
- // @ts-expect-error - mocked function
31
- createBaseAccountSDK.mockReturnValue(sdk);
32
- const account = await BaseAppAccount.initialize({
33
- walletAddress: TEST_WALLET_ADDRESS,
34
- apiKey: TEST_API_KEY,
35
- appName: 'test-app',
36
- useEphemeralWallet: false,
37
- storage,
38
- });
39
- // Should have main wallet address as account ID
40
- expect(account.accountId).toBe(TEST_WALLET_ADDRESS);
41
- // Should have main wallet payment maker
42
- expect(account.paymentMakers['base']).toBeInstanceOf(MainWalletPaymentMaker);
43
- // Should still connect wallet
44
- expect(provider.request).toHaveBeenCalledWith({ method: 'wallet_connect' });
45
- // Should NOT create ephemeral wallet or request spend permission
46
- expect(createBaseAccountSDK).toHaveBeenCalledTimes(1);
47
- // Storage should remain empty (no ephemeral wallet data saved)
48
- const storageKey = `atxp-base-permission-${TEST_WALLET_ADDRESS}`;
49
- expect(storage.get(storageKey)).toBeNull();
50
- });
51
- it('should make correct blockchain calls in main wallet mode', async () => {
52
- const provider = mockProvider();
53
- const sdk = mockBaseAccountSDK({ provider });
54
- // @ts-expect-error - mocked function
55
- createBaseAccountSDK.mockReturnValue(sdk);
56
- await BaseAppAccount.initialize({
57
- walletAddress: TEST_WALLET_ADDRESS,
58
- apiKey: TEST_API_KEY,
59
- appName: 'test-app',
60
- useEphemeralWallet: false,
61
- storage,
62
- });
63
- // Verify SDK initialization
64
- expect(createBaseAccountSDK).toHaveBeenCalledWith({
65
- appName: 'test-app',
66
- appChainIds: [8453], // base.id
67
- paymasterUrls: {
68
- 8453: 'https://api.developer.coinbase.com/rpc/v1/base/snPdXqIzOGhRkGNJvEHM5bl9Hm3yRO3m'
69
- }
70
- });
71
- // Verify provider setup
72
- expect(sdk.getProvider).toHaveBeenCalled();
73
- // Verify wallet_connect attempt
74
- expect(provider.request).toHaveBeenCalledWith({ method: 'wallet_connect' });
75
- // Verify NO ephemeral wallet operations
76
- expect(provider.request).toHaveBeenCalledTimes(1); // Only wallet_connect
77
- });
78
- it('should handle wallet_connect failure gracefully', async () => {
79
- const provider = mockProvider();
80
- provider.request.mockRejectedValueOnce(new Error('wallet_connect not supported'));
81
- const sdk = mockBaseAccountSDK({ provider });
82
- // @ts-expect-error - mocked function
83
- createBaseAccountSDK.mockReturnValue(sdk);
84
- const account = await BaseAppAccount.initialize({
85
- walletAddress: TEST_WALLET_ADDRESS,
86
- apiKey: TEST_API_KEY,
87
- appName: 'test-app',
88
- useEphemeralWallet: false,
89
- storage,
90
- });
91
- expect(account.accountId).toBe(TEST_WALLET_ADDRESS);
92
- expect(account.paymentMakers['base']).toBeInstanceOf(MainWalletPaymentMaker);
93
- });
94
- it('should not require apiKey in main wallet mode', async () => {
95
- const provider = mockProvider();
96
- const sdk = mockBaseAccountSDK({ provider });
97
- // @ts-expect-error - mocked function
98
- createBaseAccountSDK.mockReturnValue(sdk);
99
- // Should not throw without API key when useEphemeralWallet=false
100
- const account = await BaseAppAccount.initialize({
101
- walletAddress: TEST_WALLET_ADDRESS,
102
- apiKey: '', // Empty API key
103
- appName: 'test-app',
104
- useEphemeralWallet: false,
105
- storage,
106
- });
107
- expect(account.accountId).toBe(TEST_WALLET_ADDRESS);
108
- });
109
- it('should pass the provider to MainWalletPaymentMaker', async () => {
110
- const provider = mockProvider();
111
- const sdk = mockBaseAccountSDK({ provider });
112
- // @ts-expect-error - mocked function
113
- createBaseAccountSDK.mockReturnValue(sdk);
114
- const account = await BaseAppAccount.initialize({
115
- walletAddress: TEST_WALLET_ADDRESS,
116
- apiKey: TEST_API_KEY,
117
- appName: 'test-app',
118
- useEphemeralWallet: false,
119
- storage,
120
- });
121
- // Get the payment maker and verify it has the right properties
122
- const paymentMaker = account.paymentMakers['base'];
123
- expect(paymentMaker).toBeInstanceOf(MainWalletPaymentMaker);
124
- // Test that the payment maker can use the provider
125
- await paymentMaker.generateJWT({ paymentRequestId: 'test', codeChallenge: 'test' });
126
- expect(provider.request).toHaveBeenCalledWith({
127
- method: 'personal_sign',
128
- params: expect.any(Array)
129
- });
130
- });
131
- it('should not interact with storage in main wallet mode', async () => {
132
- const provider = mockProvider();
133
- const sdk = mockBaseAccountSDK({ provider });
134
- // @ts-expect-error - mocked function
135
- createBaseAccountSDK.mockReturnValue(sdk);
136
- // Spy on storage methods
137
- const getSpy = vi.spyOn(storage, 'get');
138
- const setSpy = vi.spyOn(storage, 'set');
139
- const deleteSpy = vi.spyOn(storage, 'delete');
140
- await BaseAppAccount.initialize({
141
- walletAddress: TEST_WALLET_ADDRESS,
142
- apiKey: TEST_API_KEY,
143
- appName: 'test-app',
144
- useEphemeralWallet: false,
145
- storage,
146
- });
147
- // Storage should not be accessed in main wallet mode
148
- expect(getSpy).not.toHaveBeenCalled();
149
- expect(setSpy).not.toHaveBeenCalled();
150
- expect(deleteSpy).not.toHaveBeenCalled();
151
- });
152
- });
153
- describe('initialize with useEphemeralWallet not specified', () => {
154
- it('should default to ephemeral wallet mode for backward compatibility', async () => {
155
- const provider = mockProvider();
156
- const sdk = mockBaseAccountSDK({ provider });
157
- // @ts-expect-error - mocked function
158
- createBaseAccountSDK.mockReturnValue(sdk);
159
- // This should throw because apiKey is required for ephemeral wallet mode
160
- await expect(BaseAppAccount.initialize({
161
- walletAddress: TEST_WALLET_ADDRESS,
162
- apiKey: '', // Empty API key
163
- appName: 'test-app',
164
- storage,
165
- // useEphemeralWallet not specified - should default to true
166
- })).rejects.toThrow('Smart wallet API key is required for ephemeral wallet mode');
167
- });
168
- });
169
- describe('clearAllStoredData in main wallet mode', () => {
170
- it('should handle clearAllStoredData even though main wallet stores no data', () => {
171
- const setSpy = vi.spyOn(storage, 'set');
172
- const deleteSpy = vi.spyOn(storage, 'delete');
173
- // Should not throw
174
- BaseAppAccount.clearAllStoredData(TEST_WALLET_ADDRESS, storage);
175
- // Should attempt to delete even if nothing was stored
176
- expect(deleteSpy).toHaveBeenCalledWith(`atxp-base-permission-${TEST_WALLET_ADDRESS}`);
177
- expect(setSpy).not.toHaveBeenCalled();
178
- });
179
- });
180
- describe('payment functionality in main wallet mode', () => {
181
- it('should make payment using the main wallet', async () => {
182
- const provider = mockProvider();
183
- provider.request.mockImplementation(async ({ method }) => {
184
- if (method === 'wallet_connect')
185
- return undefined;
186
- if (method === 'personal_sign')
187
- return '0xmocksignature';
188
- if (method === 'eth_sendTransaction')
189
- return '0xtxhash';
190
- if (method === 'eth_getTransactionReceipt')
191
- return { status: '0x1', blockNumber: '0x100' };
192
- if (method === 'eth_blockNumber')
193
- return '0x102';
194
- throw new Error(`Unexpected method: ${method}`);
195
- });
196
- const sdk = mockBaseAccountSDK({ provider });
197
- // @ts-expect-error - mocked function
198
- createBaseAccountSDK.mockReturnValue(sdk);
199
- const account = await BaseAppAccount.initialize({
200
- walletAddress: TEST_WALLET_ADDRESS,
201
- apiKey: TEST_API_KEY,
202
- appName: 'test-app',
203
- useEphemeralWallet: false,
204
- storage,
205
- });
206
- const paymentMaker = account.paymentMakers['base'];
207
- expect(paymentMaker).toBeDefined();
208
- // Make a payment
209
- const txHash = await paymentMaker.makePayment(new BigNumber(1.5), 'USDC', '0x1234567890123456789012345678901234567890', 'Test payment');
210
- expect(txHash).toBe('0xtxhash');
211
- // Verify eth_sendTransaction was called (it's the 2nd call after wallet_connect)
212
- expect(provider.request).toHaveBeenCalledWith({
213
- method: 'eth_sendTransaction',
214
- params: [{
215
- from: TEST_WALLET_ADDRESS,
216
- to: USDC_CONTRACT_ADDRESS_BASE,
217
- data: expect.any(String),
218
- value: '0x0'
219
- }]
220
- });
221
- });
222
- it('should generate JWT for authentication', async () => {
223
- const provider = mockProvider();
224
- provider.request.mockImplementation(async ({ method }) => {
225
- if (method === 'wallet_connect')
226
- return undefined;
227
- if (method === 'personal_sign')
228
- return '0xmocksignature';
229
- throw new Error(`Unexpected method: ${method}`);
230
- });
231
- const sdk = mockBaseAccountSDK({ provider });
232
- // @ts-expect-error - mocked function
233
- createBaseAccountSDK.mockReturnValue(sdk);
234
- const account = await BaseAppAccount.initialize({
235
- walletAddress: TEST_WALLET_ADDRESS,
236
- apiKey: TEST_API_KEY,
237
- appName: 'test-app',
238
- useEphemeralWallet: false,
239
- storage,
240
- });
241
- const paymentMaker = account.paymentMakers['base'];
242
- const jwt = await paymentMaker.generateJWT({
243
- paymentRequestId: 'test-payment-id',
244
- codeChallenge: 'test-challenge'
245
- });
246
- // JWT should be base64url encoded
247
- expect(jwt).toMatch(/^[A-Za-z0-9_-]+$/);
248
- // Verify personal_sign was called
249
- expect(provider.request).toHaveBeenCalledWith({
250
- method: 'personal_sign',
251
- params: [
252
- expect.stringContaining('PayMCP Authorization Request'),
253
- TEST_WALLET_ADDRESS
254
- ]
255
- });
256
- });
257
- });
258
- });
259
- //# sourceMappingURL=baseAppAccount.mainWallet.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseAppAccount.mainWallet.test.js","sourceRoot":"","sources":["../src/baseAppAccount.mainWallet.test.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- import { type PaymentMaker } from '@atxp/client';
2
- import { Logger, Currency } from '@atxp/common';
3
- import { SpendPermission } from './types.js';
4
- import { type EphemeralSmartWallet } from './smartWalletHelpers.js';
5
- export declare class BaseAppPaymentMaker implements PaymentMaker {
6
- private logger;
7
- private spendPermission;
8
- private smartWallet;
9
- constructor(spendPermission: SpendPermission, smartWallet: EphemeralSmartWallet, logger?: Logger);
10
- generateJWT({ paymentRequestId, codeChallenge }: {
11
- paymentRequestId: string;
12
- codeChallenge: string;
13
- }): Promise<string>;
14
- makePayment(amount: BigNumber, currency: Currency, receiver: string, memo: string): Promise<string>;
15
- }
16
- //# sourceMappingURL=baseAppPaymentMaker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseAppPaymentMaker.d.ts","sourceRoot":"","sources":["../src/baseAppPaymentMaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAA8B,KAAK,YAAY,EAAE,MAAM,cAAc,CAAC;AAC7E,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAiB,MAAM,cAAc,CAAC;AAE/D,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,KAAK,oBAAoB,EAAE,MAAM,yBAAyB,CAAC;AAsDpE,qBAAa,mBAAoB,YAAW,YAAY;IACtD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,WAAW,CAAuB;gBAGxC,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,oBAAoB,EACjC,MAAM,CAAC,EAAE,MAAM;IAaX,WAAW,CAAC,EAAC,gBAAgB,EAAE,aAAa,EAAC,EAAE;QAAC,gBAAgB,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAC,GAAG,OAAO,CAAC,MAAM,CAAC;IAsDlH,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CA4D1G"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=baseAppPaymentMaker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseAppPaymentMaker.test.d.ts","sourceRoot":"","sources":["../src/baseAppPaymentMaker.test.ts"],"names":[],"mappings":""}
@@ -1,107 +0,0 @@
1
- import { describe, it, expect, vi } from 'vitest';
2
- // Mock all external modules before imports
3
- vi.mock('@base-org/account/spend-permission', () => ({
4
- prepareSpendCallData: vi.fn()
5
- }));
6
- vi.mock('viem', async () => {
7
- const actual = await vi.importActual('viem');
8
- return {
9
- ...actual,
10
- encodeFunctionData: vi.fn(() => '0xmockencodeddata')
11
- };
12
- });
13
- import { BaseAppPaymentMaker } from './baseAppPaymentMaker.js';
14
- import { USDC_CONTRACT_ADDRESS_BASE } from '@atxp/client';
15
- import BigNumber from 'bignumber.js';
16
- import { setupPaymentMocks, mockSpendPermission, mockEphemeralSmartWallet, mockBundlerClient, mockFailedBundlerClient, mockSpendCalls, TEST_RECEIVER_ADDRESS } from './testHelpers.js';
17
- describe('basePaymentMaker.generateJWT', () => {
18
- it('should generate EIP-1271 auth data with default payload', async () => {
19
- const permission = mockSpendPermission();
20
- const smartWallet = mockEphemeralSmartWallet();
21
- const paymentMaker = new BaseAppPaymentMaker(permission, smartWallet);
22
- const authData = await paymentMaker.generateJWT({ paymentRequestId: '', codeChallenge: 'testCodeChallenge' });
23
- // Should return base64-encoded EIP-1271 auth data
24
- expect(authData).toBeDefined();
25
- expect(typeof authData).toBe('string');
26
- // Decode and verify the auth data
27
- const decoded = JSON.parse(Buffer.from(authData, 'base64').toString('utf-8'));
28
- expect(decoded.type).toBe('EIP1271_AUTH');
29
- expect(decoded.walletAddress).toBe(smartWallet.address);
30
- expect(decoded.message).toContain('PayMCP Authorization Request');
31
- expect(decoded.signature).toBeDefined();
32
- expect(decoded.timestamp).toBeDefined();
33
- expect(decoded.nonce).toBeDefined();
34
- expect(decoded.code_challenge).toBe('testCodeChallenge');
35
- });
36
- it('should include payment request id if provided', async () => {
37
- const permission = mockSpendPermission();
38
- const smartWallet = mockEphemeralSmartWallet();
39
- const paymentMaker = new BaseAppPaymentMaker(permission, smartWallet);
40
- const paymentRequestId = 'id1';
41
- const authData = await paymentMaker.generateJWT({ paymentRequestId, codeChallenge: '' });
42
- // Decode and verify the auth data includes payment request ID
43
- const decoded = JSON.parse(Buffer.from(authData, 'base64').toString('utf-8'));
44
- expect(decoded.payment_request_id).toEqual(paymentRequestId);
45
- expect(decoded.message).toContain(`Payment Request ID: ${paymentRequestId}`);
46
- });
47
- });
48
- describe('baseAppPaymentMaker.makePayment', () => {
49
- it('should successfully make a USDC payment', async () => {
50
- const permission = mockSpendPermission();
51
- const bundlerClient = mockBundlerClient();
52
- const smartWallet = mockEphemeralSmartWallet({ client: bundlerClient });
53
- const spendCalls = mockSpendCalls();
54
- const { prepareSpendCallData } = await setupPaymentMocks({ spendCalls });
55
- const paymentMaker = new BaseAppPaymentMaker(permission, smartWallet);
56
- const amount = new BigNumber(1.5); // 1.5 USDC
57
- const txHash = await paymentMaker.makePayment(amount, 'USDC', TEST_RECEIVER_ADDRESS, 'test payment');
58
- // Verify the transaction hash
59
- expect(txHash).toBe('0xtxhash');
60
- // Verify prepareSpendCallData was called with correct amount
61
- expect(prepareSpendCallData).toHaveBeenCalledWith(permission, 1500000n); // 1.5 USDC = 1,500,000 in smallest units
62
- // Verify sendUserOperation was called with correct parameters
63
- expect(bundlerClient.sendUserOperation).toHaveBeenCalledWith({
64
- account: smartWallet.account,
65
- calls: [
66
- // Spend permission calls
67
- { to: '0xcontract1', data: '0xdata1', value: 0n },
68
- { to: '0xcontract2', data: '0xdata2', value: 0n },
69
- // Transfer call
70
- {
71
- to: USDC_CONTRACT_ADDRESS_BASE,
72
- data: expect.any(String), // Encoded transfer function
73
- value: 0n
74
- }
75
- ],
76
- maxPriorityFeePerGas: expect.any(BigInt)
77
- });
78
- // Verify waitForUserOperationReceipt was called
79
- expect(bundlerClient.waitForUserOperationReceipt).toHaveBeenCalledWith({ hash: '0xoperationhash' });
80
- });
81
- it('should throw error for non-USDC currency', async () => {
82
- const permission = mockSpendPermission();
83
- const smartWallet = mockEphemeralSmartWallet();
84
- const paymentMaker = new BaseAppPaymentMaker(permission, smartWallet);
85
- const amount = new BigNumber(1.5);
86
- await expect(paymentMaker.makePayment(amount, 'ETH', TEST_RECEIVER_ADDRESS, 'test payment')).rejects.toThrow('Only usdc currency is supported');
87
- });
88
- it('should throw error if user operation fails', async () => {
89
- const permission = mockSpendPermission();
90
- const bundlerClient = mockFailedBundlerClient({ failureType: 'receipt' });
91
- const smartWallet = mockEphemeralSmartWallet({ client: bundlerClient });
92
- await setupPaymentMocks({ spendCalls: [] });
93
- const paymentMaker = new BaseAppPaymentMaker(permission, smartWallet);
94
- const amount = new BigNumber(1.5);
95
- await expect(paymentMaker.makePayment(amount, 'USDC', TEST_RECEIVER_ADDRESS, 'test payment')).rejects.toThrow('User operation failed');
96
- });
97
- it('should throw error if transaction hash is not returned', async () => {
98
- const permission = mockSpendPermission();
99
- const bundlerClient = mockFailedBundlerClient({ failureType: 'noTxHash' });
100
- const smartWallet = mockEphemeralSmartWallet({ client: bundlerClient });
101
- await setupPaymentMocks({ spendCalls: [] });
102
- const paymentMaker = new BaseAppPaymentMaker(permission, smartWallet);
103
- const amount = new BigNumber(1.5);
104
- await expect(paymentMaker.makePayment(amount, 'USDC', TEST_RECEIVER_ADDRESS, 'test payment')).rejects.toThrow('User operation was executed but no transaction hash was returned');
105
- });
106
- });
107
- //# sourceMappingURL=baseAppPaymentMaker.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"baseAppPaymentMaker.test.js","sourceRoot":"","sources":["../src/baseAppPaymentMaker.test.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAC/D,OAAO,EAAE,sBAAsB,EAAE,KAAK,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAC9F,YAAY,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,YAAY,IAAI,oBAAoB,EACzC,mBAAmB,IAAI,iBAAiB,EACxC,cAAc,EACd,aAAa,EACd,MAAM,cAAc,CAAC"}
@@ -1,22 +0,0 @@
1
- import { PaymentMaker } from '@atxp/client';
2
- import BigNumber from 'bignumber.js';
3
- import { Logger, Currency } from '@atxp/common';
4
- export type MainWalletProvider = {
5
- request: (params: {
6
- method: string;
7
- params?: any[];
8
- }) => Promise<any>;
9
- };
10
- export declare class MainWalletPaymentMaker implements PaymentMaker {
11
- private walletAddress;
12
- private provider;
13
- private logger;
14
- constructor(walletAddress: string, provider: MainWalletProvider, logger?: Logger);
15
- generateJWT(payload: {
16
- paymentRequestId: string;
17
- codeChallenge: string;
18
- }): Promise<string>;
19
- makePayment(amount: BigNumber, currency: Currency, receiver: string, _reason: string): Promise<string>;
20
- private waitForTransactionConfirmations;
21
- }
22
- //# sourceMappingURL=mainWalletPaymentMaker.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mainWalletPaymentMaker.d.ts","sourceRoot":"","sources":["../src/mainWalletPaymentMaker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG5C,OAAO,SAAS,MAAM,cAAc,CAAC;AACrC,OAAO,EAAiB,MAAM,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAiB/D,MAAM,MAAM,kBAAkB,GAAG;IAC/B,OAAO,EAAE,CAAC,MAAM,EAAE;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;KAChB,KAAK,OAAO,CAAC,GAAG,CAAC,CAAC;CACpB,CAAC;AAEF,qBAAa,sBAAuB,YAAW,YAAY;IAIvD,OAAO,CAAC,aAAa;IACrB,OAAO,CAAC,QAAQ;IAJlB,OAAO,CAAC,MAAM,CAAS;gBAGb,aAAa,EAAE,MAAM,EACrB,QAAQ,EAAE,kBAAkB,EACpC,MAAM,CAAC,EAAE,MAAM;IAKX,WAAW,CAAC,OAAO,EAAE;QACzB,gBAAgB,EAAE,MAAM,CAAC;QACzB,aAAa,EAAE,MAAM,CAAC;KACvB,GAAG,OAAO,CAAC,MAAM,CAAC;IAuEb,WAAW,CACf,MAAM,EAAE,SAAS,EACjB,QAAQ,EAAE,QAAQ,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,CAAC;YA6CJ,+BAA+B;CA2C9C"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=mainWalletPaymentMaker.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mainWalletPaymentMaker.test.d.ts","sourceRoot":"","sources":["../src/mainWalletPaymentMaker.test.ts"],"names":[],"mappings":""}