@atxp/base 0.7.0 → 0.7.1

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/README.md CHANGED
@@ -4,6 +4,12 @@ ATXP is a framework for building and running agents that can interact with the w
4
4
 
5
5
  ATXP Base provides a `BaseAppAccount` implementation for using `@atxp/client` with [Base Mini Apps](https://www.base.org/build/mini-apps).
6
6
 
7
+ ## Support
8
+
9
+ For detailed API documentation, configuration options, and advanced usage patterns, please refer to our [complete documentation](https://docs.atxp.ai/).
10
+
11
+ Have questions or need help? Join our [Discord community](https://discord.gg/FuJXHhe9aW) - we're happy to help!
12
+
7
13
  ## Initializing the account
8
14
  In your Base Mini App's React code:
9
15
  ```
@@ -73,4 +79,4 @@ When an MCP request requires payment, `BaseAppAccount` will:
73
79
  1. Use the ephemeral wallet to make a payment from the user's wallet to the destiniation using the Spend Permission
74
80
  2. It will use ATXP's paymaster, so all gas fees are paid by ATXP.
75
81
 
76
- The ephemeral wallet never holds any ETH or USDC.
82
+ The ephemeral wallet never holds any ETH or USDC.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@atxp/base",
3
- "version": "0.7.0",
3
+ "version": "0.7.1",
4
4
  "description": "ATXP for Base Mini Apps",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -33,8 +33,8 @@
33
33
  "pack:dry": "npm pack --dry-run"
34
34
  },
35
35
  "dependencies": {
36
- "@atxp/client": "0.7.0",
37
- "@atxp/common": "0.7.0",
36
+ "@atxp/client": "0.7.1",
37
+ "@atxp/common": "0.7.1",
38
38
  "bignumber.js": "^9.3.0"
39
39
  },
40
40
  "peerDependencies": {
@@ -1,83 +0,0 @@
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
@@ -1 +0,0 @@
1
- {"version":3,"file":"eip1271JwtHelper.js","sources":["../src/eip1271JwtHelper.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,19 +0,0 @@
1
- /**
2
- * Loads the browser-only spend permission module.
3
- * Throws an error if called in a server environment.
4
- *
5
- * Both BaseAppAccount and BaseAppPaymentMaker should only run in browser environments
6
- * since they require wallet interaction and browser APIs.
7
- */
8
- async function getSpendPermissionModule() {
9
- // Check if we're in a browser environment
10
- if (typeof window === 'undefined') {
11
- throw new Error('Spend permission operations require browser environment. ' +
12
- 'BaseAppAccount and BaseAppPaymentMaker should only be used client-side in Next.js apps.');
13
- }
14
- // Use browser version since both classes require browser environment
15
- return await import('@base-org/account/spend-permission/browser');
16
- }
17
-
18
- export { getSpendPermissionModule };
19
- //# sourceMappingURL=spendPermissionUtils.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"spendPermissionUtils.js","sources":["../src/spendPermissionUtils.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;AAMG;AACI,eAAe,wBAAwB,GAAA;;AAE5C,IAAA,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;QACjC,MAAM,IAAI,KAAK,CACb,2DAA2D;AAC3D,YAAA,yFAAyF,CAC1F;IACH;;AAGA,IAAA,OAAO,MAAM,OAAO,4CAA4C,CAAC;AACnE;;;;"}
package/dist/storage.js DELETED
@@ -1,11 +0,0 @@
1
- import { JsonCache } from '@atxp/common';
2
- export { BrowserCache, MemoryCache } from '@atxp/common';
3
-
4
- /**
5
- * Type-safe cache wrapper for permission data
6
- */
7
- class IntermediaryCache extends JsonCache {
8
- }
9
-
10
- export { IntermediaryCache };
11
- //# sourceMappingURL=storage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"storage.js","sources":["../src/storage.ts"],"sourcesContent":[null],"names":[],"mappings":";;;AAcA;;AAEG;AACG,MAAO,iBAAkB,SAAQ,SAAuB,CAAA;AAAG;;;;"}