@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
@@ -6,12 +6,13 @@ import { base } from 'viem/chains';
6
6
  import { BrowserStorage, IntermediaryStorage } from './storage.js';
7
7
  import { toEphemeralSmartWallet } from './smartWalletHelpers.js';
8
8
  import { ConsoleLogger } from '@atxp/common';
9
- import { createBaseAccountSDK } from "@base-org/account";
10
- import { requestSpendPermission } from "@base-org/account/spend-permission";
9
+ import { createBaseAccountSDK } from '@base-org/account';
10
+ import { getSpendPermissionModule } from './spendPermissionUtils.js';
11
+
11
12
  const DEFAULT_ALLOWANCE = 10n;
12
13
  const DEFAULT_PERIOD_IN_DAYS = 7;
13
14
  const PAYMASTER_URL = 'https://api.developer.coinbase.com/rpc/v1/base/snPdXqIzOGhRkGNJvEHM5bl9Hm3yRO3m';
14
- export class BaseAppAccount {
15
+ class BaseAppAccount {
15
16
  static toStorageKey(userWalletAddress) {
16
17
  return `atxp-base-permission-${userWalletAddress}`;
17
18
  }
@@ -63,6 +64,9 @@ export class BaseAppAccount {
63
64
  logger.info(`Generated ephemeral wallet: ${smartWallet.address}`);
64
65
  await this.deploySmartWallet(smartWallet);
65
66
  logger.info(`Deployed smart wallet: ${smartWallet.address}`);
67
+ // Dynamically import requestSpendPermission based on environment
68
+ // This function requires browser APIs and wallet interaction
69
+ const { requestSpendPermission } = await getSpendPermissionModule();
66
70
  const permission = await requestSpendPermission({
67
71
  account: config.walletAddress,
68
72
  spender: smartWallet.address,
@@ -127,6 +131,11 @@ export class BaseAppAccount {
127
131
  };
128
132
  }
129
133
  }
134
+ /**
135
+ * Dynamically import the appropriate spend-permission module based on environment.
136
+ * Uses browser version as requestSpendPermission only exists there.
137
+ * Throws error if used in server-side environment.
138
+ */
130
139
  static clearAllStoredData(userWalletAddress, storage) {
131
140
  // In non-browser environments, require an explicit storage parameter
132
141
  if (!storage) {
@@ -140,4 +149,6 @@ export class BaseAppAccount {
140
149
  storage.delete(this.toStorageKey(userWalletAddress));
141
150
  }
142
151
  }
143
- //# sourceMappingURL=baseAppAccount.js.map
152
+
153
+ export { BaseAppAccount };
154
+ //# sourceMappingURL=baseAppAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseAppAccount.js","sourceRoot":"","sources":["../src/baseAppAccount.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseAppAccount.js","sources":["../src/baseAppAccount.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,16 +1,9 @@
1
1
  import { USDC_CONTRACT_ADDRESS_BASE } from '@atxp/client';
2
2
  import { ConsoleLogger } from '@atxp/common';
3
3
  import { encodeFunctionData, parseEther } from 'viem';
4
- import { prepareSpendCallData } from '@base-org/account/spend-permission';
5
- // Helper function to convert to base64url that works in both Node.js and browsers
6
- function toBase64Url(data) {
7
- // Convert string to base64
8
- const base64 = typeof Buffer !== 'undefined'
9
- ? Buffer.from(data).toString('base64')
10
- : btoa(data);
11
- // Convert base64 to base64url
12
- return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
13
- }
4
+ import { getSpendPermissionModule } from './spendPermissionUtils.js';
5
+ import { constructEIP1271Message, createEIP1271AuthData, createEIP1271JWT } from './eip1271JwtHelper.js';
6
+
14
7
  const USDC_DECIMALS = 6;
15
8
  // Minimal ERC20 ABI for transfer function
16
9
  const ERC20_ABI = [
@@ -46,7 +39,7 @@ async function waitForTransactionConfirmations(smartWallet, txHash, confirmation
46
39
  // Continue anyway - the transaction is already mined
47
40
  }
48
41
  }
49
- export class BaseAppPaymentMaker {
42
+ class BaseAppPaymentMaker {
50
43
  constructor(spendPermission, smartWallet, logger) {
51
44
  if (!spendPermission) {
52
45
  throw new Error('Spend permission is required');
@@ -61,63 +54,61 @@ export class BaseAppPaymentMaker {
61
54
  async generateJWT({ paymentRequestId, codeChallenge }) {
62
55
  // Generate EIP-1271 auth data for smart wallet authentication
63
56
  const timestamp = Math.floor(Date.now() / 1000);
64
- const nonce = Math.random().toString(36).substring(2, 15); // Generate random nonce
65
- // Construct the message in the required format
66
- const messageParts = [
67
- `PayMCP Authorization Request`,
68
- ``,
69
- `Wallet: ${this.smartWallet.account.address}`,
70
- `Timestamp: ${timestamp}`,
71
- `Nonce: ${nonce}`
72
- ];
73
- if (codeChallenge) {
74
- messageParts.push(`Code Challenge: ${codeChallenge}`);
75
- }
76
- if (paymentRequestId) {
77
- messageParts.push(`Payment Request ID: ${paymentRequestId}`);
78
- }
79
- messageParts.push('', '', 'Sign this message to prove you control this wallet.');
80
- const message = messageParts.join('\n');
57
+ const message = constructEIP1271Message({
58
+ walletAddress: this.smartWallet.account.address,
59
+ timestamp,
60
+ codeChallenge,
61
+ paymentRequestId
62
+ });
81
63
  // Sign the message - this will return an ABI-encoded signature from the smart wallet
82
64
  const signature = await this.smartWallet.account.signMessage({
83
65
  message: message
84
66
  });
85
- // Create EIP-1271 auth data
86
- const authData = {
87
- type: 'EIP1271_AUTH',
67
+ const authData = createEIP1271AuthData({
88
68
  walletAddress: this.smartWallet.account.address,
89
- message: message,
90
- signature: signature,
91
- timestamp: timestamp,
92
- nonce: nonce,
93
- ...(codeChallenge && { code_challenge: codeChallenge }),
94
- ...(paymentRequestId && { payment_request_id: paymentRequestId })
95
- };
96
- // Encode as base64url
97
- const encodedAuth = toBase64Url(JSON.stringify(authData));
69
+ message,
70
+ signature,
71
+ timestamp,
72
+ codeChallenge,
73
+ paymentRequestId
74
+ });
75
+ const jwtToken = createEIP1271JWT(authData);
98
76
  this.logger.info(`codeChallenge: ${codeChallenge}`);
99
77
  this.logger.info(`paymentRequestId: ${paymentRequestId}`);
100
78
  this.logger.info(`walletAddress: ${this.smartWallet.account.address}`);
101
- this.logger.info(`Generated EIP-1271 auth data: ${encodedAuth}`);
102
- return encodedAuth;
79
+ this.logger.info(`Generated EIP-1271 JWT: ${jwtToken}`);
80
+ return jwtToken;
103
81
  }
104
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
105
82
  async makePayment(amount, currency, receiver, memo) {
106
83
  if (currency !== 'USDC') {
107
84
  throw new Error('Only usdc currency is supported; received ' + currency);
108
85
  }
109
- this.logger.info(`Making spendPermission payment of ${amount} ${currency} to ${receiver} on Base`);
86
+ this.logger.info(`Making spendPermission payment of ${amount} ${currency} to ${receiver} on Base with memo: ${memo}`);
110
87
  // Convert amount to USDC units (6 decimals) as BigInt for spendPermission
111
88
  const amountInUSDCUnits = BigInt(amount.multipliedBy(10 ** USDC_DECIMALS).toFixed(0));
89
+ // Dynamically import prepareSpendCallData based on environment
90
+ const { prepareSpendCallData } = await getSpendPermissionModule();
112
91
  const spendCalls = await prepareSpendCallData(this.spendPermission, amountInUSDCUnits);
113
92
  // Add a second call to transfer USDC from the smart wallet to the receiver
93
+ let transferCallData = encodeFunctionData({
94
+ abi: ERC20_ABI,
95
+ functionName: "transfer",
96
+ args: [receiver, amountInUSDCUnits],
97
+ });
98
+ // Append memo to transfer call data if present
99
+ // This works because the EVM ignores extra calldata beyond what a function expects.
100
+ // The ERC20 transfer() function only reads the first 68 bytes (4-byte selector + 32-byte address + 32-byte amount).
101
+ // Any additional data appended after those 68 bytes is safely ignored by the USDC contract
102
+ // but remains accessible in the transaction data for payment verification.
103
+ // This is a well-established pattern used by OpenSea, Uniswap, and other major protocols.
104
+ if (memo && memo.trim()) {
105
+ const memoHex = Buffer.from(memo.trim(), 'utf8').toString('hex');
106
+ transferCallData = (transferCallData + memoHex);
107
+ this.logger.info(`Added memo "${memo.trim()}" to transfer call`);
108
+ }
114
109
  const transferCall = {
115
110
  to: USDC_CONTRACT_ADDRESS_BASE,
116
- data: encodeFunctionData({
117
- abi: ERC20_ABI,
118
- functionName: "transfer",
119
- args: [receiver, amountInUSDCUnits],
120
- }),
111
+ data: transferCallData,
121
112
  value: '0x0'
122
113
  };
123
114
  // Combine spend permission calls with the transfer call
@@ -152,4 +143,6 @@ export class BaseAppPaymentMaker {
152
143
  return txHash;
153
144
  }
154
145
  }
155
- //# sourceMappingURL=baseAppPaymentMaker.js.map
146
+
147
+ export { BaseAppPaymentMaker };
148
+ //# sourceMappingURL=baseAppPaymentMaker.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"baseAppPaymentMaker.js","sourceRoot":"","sources":["../src/baseAppPaymentMaker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"baseAppPaymentMaker.js","sources":["../src/baseAppPaymentMaker.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ /**
2
+ * EIP-1271 JWT helper utilities for creating properly formatted JWTs
3
+ * from EIP-1271 auth data.
4
+ */
5
+ // Helper function to convert to base64url that works in both Node.js and browsers
6
+ function toBase64Url(data) {
7
+ // Convert string to base64
8
+ const base64 = typeof Buffer !== 'undefined'
9
+ ? Buffer.from(data).toString('base64')
10
+ : btoa(data);
11
+ // Convert base64 to base64url
12
+ return base64.replace(/\+/g, '-').replace(/\//g, '_').replace(/=/g, '');
13
+ }
14
+ /**
15
+ * Convert EIP-1271 auth data to JWT format
16
+ * @param authData The EIP-1271 auth data (signature will be moved to JWT signature section)
17
+ * @returns JWT string in the format header.payload.signature
18
+ */
19
+ function createEIP1271JWT(authData) {
20
+ // Create JWT header
21
+ const header = {
22
+ alg: 'EIP1271',
23
+ typ: 'JWT'
24
+ };
25
+ // Create payload without signature (signature goes in JWT signature section)
26
+ const payload = {
27
+ sub: authData.walletAddress,
28
+ iss: 'accounts.atxp.ai',
29
+ aud: 'https://auth.atxp.ai',
30
+ iat: authData.timestamp,
31
+ exp: authData.timestamp + 3600, // 1 hour expiration
32
+ msg: authData.message,
33
+ ...(authData.code_challenge && { code_challenge: authData.code_challenge }),
34
+ ...(authData.payment_request_id && { payment_request_id: authData.payment_request_id })
35
+ };
36
+ // Encode header and payload
37
+ const encodedHeader = toBase64Url(JSON.stringify(header));
38
+ const encodedPayload = toBase64Url(JSON.stringify(payload));
39
+ // EIP-1271 signature goes in JWT signature section
40
+ const encodedSignature = toBase64Url(authData.signature);
41
+ // Return JWT format: header.payload.signature
42
+ return `${encodedHeader}.${encodedPayload}.${encodedSignature}`;
43
+ }
44
+ /**
45
+ * Create auth data structure from signing parameters
46
+ */
47
+ function createEIP1271AuthData({ walletAddress, message, signature, timestamp, nonce, codeChallenge, paymentRequestId }) {
48
+ return {
49
+ type: 'EIP1271_AUTH',
50
+ walletAddress,
51
+ message,
52
+ signature,
53
+ timestamp,
54
+ ...(nonce && { nonce }),
55
+ ...(codeChallenge && { code_challenge: codeChallenge }),
56
+ ...(paymentRequestId && { payment_request_id: paymentRequestId })
57
+ };
58
+ }
59
+ /**
60
+ * Construct the standardized message format for EIP-1271 signing
61
+ */
62
+ function constructEIP1271Message({ walletAddress, timestamp, nonce, codeChallenge, paymentRequestId }) {
63
+ const messageParts = [
64
+ `PayMCP Authorization Request`,
65
+ ``,
66
+ `Wallet: ${walletAddress}`,
67
+ `Timestamp: ${timestamp}`
68
+ ];
69
+ if (nonce !== undefined && nonce !== null) {
70
+ messageParts.push(`Nonce: ${nonce}`);
71
+ }
72
+ if (codeChallenge) {
73
+ messageParts.push(`Code Challenge: ${codeChallenge}`);
74
+ }
75
+ if (paymentRequestId) {
76
+ messageParts.push(`Payment Request ID: ${paymentRequestId}`);
77
+ }
78
+ messageParts.push('', '', 'Sign this message to prove you control this wallet.');
79
+ return messageParts.join('\n');
80
+ }
81
+
82
+ export { constructEIP1271Message, createEIP1271AuthData, createEIP1271JWT };
83
+ //# sourceMappingURL=eip1271JwtHelper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip1271JwtHelper.js","sources":["../src/eip1271JwtHelper.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}